[wp-trac] [WordPress Trac] #31130: WP_INSTALLING causes leakage between unit tests

WordPress Trac noreply at wordpress.org
Mon Oct 5 15:05:29 UTC 2015


#31130: WP_INSTALLING causes leakage between unit tests
------------------------------------+---------------------------
 Reporter:  boonebgorges            |       Owner:  boonebgorges
     Type:  defect (bug)            |      Status:  assigned
 Priority:  normal                  |   Milestone:  4.4
Component:  Build/Test Tools        |     Version:
 Severity:  normal                  |  Resolution:
 Keywords:  has-patch dev-feedback  |     Focuses:
------------------------------------+---------------------------

Comment (by boonebgorges):

 In [changeset:"34828"]:
 {{{
 #!CommitTicketReference repository="" revision="34828"
 Use `wp_installing()` instead of `WP_INSTALLING` constant.

 The `WP_INSTALLING` constant is a flag that WordPress sets in a number of
 places, telling the system that options should be fetched directly from
 the
 database instead of from the cache, that WP should not ping wordpress.org
 for
 updates, that the normal "not installed" checks should be bypassed, and so
 on.

 A constant is generally necessary for this purpose, because the flag is
 typically set before the WP bootstrap, meaning that WP functions are not
 yet
 available.  However, it is possible - notably, during `wpmu_create_blog()`
 -
 for the "installing" flag to be set after WP has already loaded. In these
 cases, `WP_INSTALLING` would be set for the remainder of the process,
 since
 there's no way to change a constant once it's defined. This, in turn,
 polluted
 later function calls that ought to have been outside the scope of site
 creation, particularly the non-caching of option data. The problem was
 particularly evident in the case of the automated tests, where
 `WP_INSTALLING`
 was set the first time a site was created, and remained set for the rest
 of the
 suite.

 The new `wp_installing()` function allows developers to fetch the current
 installation status (when called without any arguments) or to set the
 installation status (when called with a boolean `true` or `false`). Use of
 the `WP_INSTALLING` constant is still supported; `wp_installing()` will
 default
 to `true` if the constant is defined during the bootstrap.

 Props boonebgorges, jeremyfelt.
 See #31130.
 }}}

--
Ticket URL: <https://core.trac.wordpress.org/ticket/31130#comment:21>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list