nova/nova/tests/functional/regressions
Balazs Gibizer 23d3b8fbc9 Remove global state from the FakeDriver
The virt driver FakeDriver used in both the functional and in the unit
test used a global state to configure the host and node names the driver
reports. This was hard to use when more then one compute service is started.
Also global state is dangerous.

It turned out that only a set of unit tests are using multiple nodes per
compute the rest of the tests can simply use host=<hostname>,
nodes=[<hostname>] setup.

So this removes the global state.

On stable/stein:
* Changes in functional/regressions/test_bug_1764556.py just removes the
  usage of the global state as that test was backported before the patch
  being backported was introduced

* Changes in functional/regressions/test_bug_1839560.py is a re-backport
  of If822509e906d5094f13a8700b2b9ed3c40580431 adapted to the current
  patch.

Related-Bug: #1859766

Change-Id: I2cf2fcbaebc706f897ce5dfbff47d32117064f9c
(cherry picked from commit b5666fb492)
2020-01-17 16:04:46 +01:00
..
__init__.py add a place for functional test to block specific regressions 2016-02-24 18:14:27 +00:00
README.rst add a place for functional test to block specific regressions 2016-02-24 18:14:27 +00:00
test_bug_1404867.py fixtures: Track volume attachments within CinderFixtureNewAttachFlow 2018-10-22 17:19:31 +01:00
test_bug_1522536.py replace chance with filter scheduler in func tests 2017-08-16 14:42:51 +00:00
test_bug_1541691.py Remove unused conf 2016-09-02 09:02:23 +08:00
test_bug_1548980.py replace chance with filter scheduler in func tests 2017-08-16 14:42:51 +00:00
test_bug_1552888.py Trivial-Fix: Fix typos 2016-06-13 06:41:08 +00:00
test_bug_1554631.py Catching OverQuota Exception 2017-05-03 19:00:34 +00:00
test_bug_1558866.py remove unnecessary conf imports 2018-03-09 14:30:10 -05:00
test_bug_1568208.py Fix generation of Guru Meditation Report 2016-04-13 17:00:32 +03:00
test_bug_1595962.py Use external placement in functional tests 2018-12-12 18:46:49 +00:00
test_bug_1620248.py Stop using mox stubs in cast_as_call.py 2017-07-25 00:40:41 +00:00
test_bug_1669054.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1670627.py Clean up ports and volumes when deleting ERROR instance 2018-02-20 10:32:07 -05:00
test_bug_1671648.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1675570.py Use external placement in functional tests 2018-12-12 18:46:49 +00:00
test_bug_1678326.py Commit usage decrement after destroying instance 2017-04-05 15:19:15 -04:00
test_bug_1679750.py Don't register placement opts mutiple times in a test 2019-03-20 22:33:32 +00:00
test_bug_1682693.py Use external placement in functional tests 2018-12-12 18:46:49 +00:00
test_bug_1689692.py Clean up ports and volumes when deleting ERROR instance 2018-02-20 10:32:07 -05:00
test_bug_1702454.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1713783.py Use external placement in functional tests 2018-12-12 18:46:49 +00:00
test_bug_1718455.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1718512.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1719730.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1732947.py Implement new attach Cinder flow 2017-12-07 10:29:15 -05:00
test_bug_1735407.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1741125.py Remove the CachingScheduler 2018-10-18 17:55:36 -04:00
test_bug_1741307.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1746483.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1746509.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
test_bug_1764556.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1764883.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1778305.py Don't generate service UUID for deleted services 2019-08-07 21:04:07 +00:00
test_bug_1780373.py Use external placement in functional tests 2018-12-12 18:46:49 +00:00
test_bug_1781710.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1784353.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1790204.py Add functional regression recreate test for bug 1790204 2018-12-20 18:09:02 -05:00
test_bug_1794996.py Refactor TestEvacuateDeleteServerRestartOriginalCompute 2018-11-27 12:42:48 -05:00
test_bug_1797580.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1806064.py Use external placement in functional tests 2018-12-12 18:46:49 +00:00
test_bug_1806515.py Handle tags in _bury_in_cell0 2018-12-11 12:40:22 -05:00
test_bug_1815153.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1825020.py Fix volume-backed resize with a smaller disk flavor 2019-05-01 12:13:07 -04:00
test_bug_1825034.py Exclude fake marker instance when listing servers 2019-05-06 13:59:47 -04:00
test_bug_1825537.py Drop source node allocations if finish_resize fails 2019-07-01 15:19:19 -04:00
test_bug_1830747.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1837955.py Cleanup when hitting MaxRetriesExceeded from no host_available 2019-07-30 10:10:17 -04:00
test_bug_1839560.py Remove global state from the FakeDriver 2020-01-17 16:04:46 +01:00
test_bug_1843090.py Handle legacy request spec dict in ComputeTaskManager._cold_migrate 2019-09-26 11:00:11 -04:00
test_bug_1849409.py Fix listing deleted servers with a marker 2019-10-23 15:03:13 -04:00

Tests for Specific Regressions

When we have a bug reported by end users that we can write a full stack reproduce on, we should. And we should keep a regression test for that bug in our tree. It can be deleted at some future date if needed, but largely should not be changed.

Writing Regression Tests

  • These should be full stack tests which inherit from nova.test.TestCase directly. (This is to prevent coupling with other tests).
  • They should setup a full stack cloud in their setUp via fixtures
  • They should each live in a file which is named test_bug######.py

Writing Tests Before the Bug is Fixed

TODO describe writing and landing tests before the bug is fixed as a reproduce.