nova/nova/tests/functional/regressions
Balazs Gibizer 930bf0ae1b 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.

Conflicts:
    nova/tests/functional/compute/test_live_migration.py
    nova/tests/functional/integrated_helpers.py
    nova/tests/functional/regressions/test_bug_1671648.py
    nova/tests/functional/regressions/test_bug_1702454.py
    nova/tests/functional/regressions/test_bug_1718455.py
    nova/tests/functional/regressions/test_bug_1718512.py
    nova/tests/functional/regressions/test_bug_1719730.py
    nova/tests/functional/regressions/test_bug_1735407.py
    nova/tests/functional/regressions/test_bug_1741307.py
    nova/tests/functional/regressions/test_bug_1746483.py
    nova/tests/functional/regressions/test_bug_1764883.py
    nova/tests/functional/regressions/test_bug_1781710.py
    nova/tests/functional/regressions/test_bug_1784353.py
    nova/tests/functional/regressions/test_bug_1797580.py
    nova/tests/functional/test_aggregates.py
    nova/tests/functional/test_server_group.py
    nova/tests/functional/test_servers.py
    nova/tests/unit/compute/test_compute_mgr.py

Note(elod.illes): cause of conflicts of the files:
* test_live_migration.py:
    Patch Icb0bdaf454935b3713c35339394d260b33520de5 had to be
    refactored during backport to Rocky as uuidsentinel moved to oslo
    in Stein.
* integrated_helpers.py:
    Patches I4c12502c86c7ac27369d119e0f97768cf41695b5 and
    I7f5f08691ca3f73073c66c29dddb996fb2c2b266 were only added in Stein.
* test_bug_1671648.py, test_bug_1702454.py, test_bug_1718455.py,
  test_bug_1718512.py, test_bug_1719730.py, test_bug_1735407.py,
  test_bug_1741307.py, test_bug_1746483.py, test_bug_1764883.py,
  test_bug_1781710.py, test_bug_1784353.py, test_bug_1797580.py,
  test_servers.py:
    Duplicate cleanup removal patch
    Iaae6fc4a66145576f4a4fc1cea452ef6acbadb15 is not backported to
    Rocky.
* test_aggregates.py:
    Patches Ic55b88e7ad21ab5b7ad063eac743ff9406aae559 and
    Ic55b88e7ad21ab5b7ad063eac743ff9406aae559 were not backported to
    Rocky.
* test_server_group.py:
    Iaae6fc4a66145576f4a4fc1cea452ef6acbadb15 (Duplicate cleanup
    removal) and Ie07b419732e0832a9b9d16565f6c9d00ba85d654 (Add
    functional test for live migrate with anti-affinity group) patches
    were only added in Stein and were not backported to Rocky.
* test_compute_mgr.py:
    Patch I17543ecb572934ecc7d0bbc7a4ad2f537fa499bc (Raise
    InstanceFaultRollback for UnableToMigrateToSelf from _prep_resize)
    isn't backported to Rocky.

Related-Bug: #1859766

Change-Id: I2cf2fcbaebc706f897ce5dfbff47d32117064f9c
(cherry picked from commit b5666fb492)
(cherry picked from commit 23d3b8fbc9)
2020-03-12 18:46:18 +01:00
..
README.rst add a place for functional test to block specific regressions 2016-02-24 18:14:27 +00:00
__init__.py 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-23 13:46:26 +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 libvirt: Remove usage of migrateToURI{2} APIs 2018-07-31 18:57:28 +02: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-03-12 18:46:18 +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-03-12 18:46:18 +01:00
test_bug_1675570.py fixtures: Track volume attachments within CinderFixtureNewAttachFlow 2018-10-23 13:46:26 +01:00
test_bug_1678326.py Commit usage decrement after destroying instance 2017-04-05 15:19:15 -04:00
test_bug_1679750.py Cleanup ugly stub in TestLocalDeleteAllocations 2018-05-16 09:23:55 -04:00
test_bug_1682693.py replace chance with filter scheduler in func tests 2017-08-16 14:42:51 +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-03-12 18:46:18 +01:00
test_bug_1713783.py Set server status to ERROR if rebuild failed 2018-01-23 11:39:45 -05:00
test_bug_1718455.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +01:00
test_bug_1718512.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +01:00
test_bug_1719730.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +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-03-12 18:46:18 +01:00
test_bug_1741125.py Fix TypeError in prep_resize allocation cleanup 2018-07-10 22:11:05 -04:00
test_bug_1741307.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +01:00
test_bug_1746483.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +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-03-12 18:46:18 +01:00
test_bug_1764883.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +01:00
test_bug_1778305.py Don't generate service UUID for deleted services 2019-08-08 17:03:07 +00:00
test_bug_1780373.py Fix server_group_members quota check 2018-07-06 16:57:31 -04:00
test_bug_1781710.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +01:00
test_bug_1784353.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +01:00
test_bug_1794996.py Fix InstanceNotFound during _destroy_evacuated_instances 2018-12-06 18:22:11 -05:00
test_bug_1797580.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +01:00
test_bug_1806064.py Create BDMs/tags in cell with instance when over-quota 2018-12-09 14:28:21 +03:00
test_bug_1806515.py Handle tags in _bury_in_cell0 2018-12-12 17:07:21 -05:00
test_bug_1815153.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +01:00
test_bug_1825537.py Drop source node allocations if finish_resize fails 2019-07-05 12:30:02 -04:00
test_bug_1830747.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +01:00
test_bug_1837955.py Cleanup when hitting MaxRetriesExceeded from no host_available 2019-07-30 12:16:15 -04:00
test_bug_1839560.py Remove global state from the FakeDriver 2020-03-12 18:46:18 +01:00
test_bug_1849409.py Fix listing deleted servers with a marker 2019-10-29 15:25:24 -04:00

README.rst

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.