Prevent NFV unit tests from randomly failing
Several unit tests were declaring a table as a class variable. Depending on the order of the tests, there could be unexpected data in those tables causing tests to randomly fail. The change is to make those tables instance variables in the test classes. Story: 2004241 Task: 27764 Change-Id: I0157f297f5d2a7a0ab5ada4f58623850cbfb72ff Signed-off-by: Al Bailey <Al.Bailey@windriver.com>
This commit is contained in:
parent
be64087c7b
commit
da24ad07a3
|
@ -42,30 +42,30 @@ def fake_event_issue(a, b, c, d):
|
||||||
# nova/tests/unit/virt/libvirt/test_driver.py
|
# nova/tests/unit/virt/libvirt/test_driver.py
|
||||||
class TestInstance(testcase.NFVTestCase):
|
class TestInstance(testcase.NFVTestCase):
|
||||||
|
|
||||||
_tenant_table = Table()
|
|
||||||
_instance_type_table = InstanceTypeTable()
|
|
||||||
_image_table = ImageTable()
|
|
||||||
_instance_table = InstanceTable()
|
|
||||||
_instance_group_table = InstanceGroupTable()
|
|
||||||
_host_table = HostTable()
|
|
||||||
_host_group_table = HostGroupTable()
|
|
||||||
_host_aggregate_table = HostAggregateTable()
|
|
||||||
|
|
||||||
# Don't attempt to write to the database while unit testing
|
|
||||||
_tenant_table.persist = False
|
|
||||||
_image_table.persist = False
|
|
||||||
_instance_type_table.persist = False
|
|
||||||
_instance_table.persist = False
|
|
||||||
_instance_group_table.persist = False
|
|
||||||
_host_table.persist = False
|
|
||||||
_host_group_table.persist = False
|
|
||||||
_host_aggregate_table.persist = False
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
"""
|
"""
|
||||||
Setup for testing.
|
Setup for testing.
|
||||||
"""
|
"""
|
||||||
super(TestInstance, self).setUp()
|
super(TestInstance, self).setUp()
|
||||||
|
self._tenant_table = Table()
|
||||||
|
self._instance_type_table = InstanceTypeTable()
|
||||||
|
self._image_table = ImageTable()
|
||||||
|
self._instance_table = InstanceTable()
|
||||||
|
self._instance_group_table = InstanceGroupTable()
|
||||||
|
self._host_table = HostTable()
|
||||||
|
self._host_group_table = HostGroupTable()
|
||||||
|
self._host_aggregate_table = HostAggregateTable()
|
||||||
|
|
||||||
|
# Don't attempt to write to the database while unit testing
|
||||||
|
self._tenant_table.persist = False
|
||||||
|
self._image_table.persist = False
|
||||||
|
self._instance_type_table.persist = False
|
||||||
|
self._instance_table.persist = False
|
||||||
|
self._instance_group_table.persist = False
|
||||||
|
self._host_table.persist = False
|
||||||
|
self._host_group_table.persist = False
|
||||||
|
self._host_aggregate_table.persist = False
|
||||||
|
|
||||||
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._tenant_table._tenant_table',
|
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._tenant_table._tenant_table',
|
||||||
self._tenant_table))
|
self._tenant_table))
|
||||||
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._host_table._host_table',
|
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._host_table._host_table',
|
||||||
|
|
|
@ -30,28 +30,29 @@ def fake_timer(a, b, c, d):
|
||||||
|
|
||||||
|
|
||||||
class TestInstanceDirector(testcase.NFVTestCase):
|
class TestInstanceDirector(testcase.NFVTestCase):
|
||||||
_image_table = ImageTable()
|
|
||||||
_instance_table = Table()
|
|
||||||
_instance_type_table = Table()
|
|
||||||
_tenant_table = Table()
|
|
||||||
|
|
||||||
# Don't attempt to write to the database while unit testing
|
|
||||||
_image_table.persist = False
|
|
||||||
_instance_table.persist = False
|
|
||||||
_instance_type_table.persist = False
|
|
||||||
_tenant_table.persist = False
|
|
||||||
|
|
||||||
_director = None
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestInstanceDirector, self).setUp()
|
super(TestInstanceDirector, self).setUp()
|
||||||
|
self._image_table = ImageTable()
|
||||||
|
self._instance_table = Table()
|
||||||
|
self._instance_type_table = Table()
|
||||||
|
self._tenant_table = Table()
|
||||||
|
|
||||||
|
# Don't attempt to write to the database while unit testing
|
||||||
|
self._image_table.persist = False
|
||||||
|
self._instance_table.persist = False
|
||||||
|
self._instance_type_table.persist = False
|
||||||
|
self._tenant_table.persist = False
|
||||||
|
self._director = None
|
||||||
|
|
||||||
self.instance_setup_func()
|
self.instance_setup_func()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
super(TestInstanceDirector, self).tearDown()
|
super(TestInstanceDirector, self).tearDown()
|
||||||
self._tenant_table.clear()
|
self._image_table.clear()
|
||||||
self._instance_table.clear()
|
self._instance_table.clear()
|
||||||
self._instance_type_table.clear()
|
self._instance_type_table.clear()
|
||||||
|
self._tenant_table.clear()
|
||||||
self._director = None
|
self._director = None
|
||||||
|
|
||||||
def create_instance(self, instance_type_name, instance_name, recovery_priority=None):
|
def create_instance(self, instance_type_name, instance_name, recovery_priority=None):
|
||||||
|
@ -91,34 +92,33 @@ class TestInstanceDirector(testcase.NFVTestCase):
|
||||||
"""
|
"""
|
||||||
instance_type_uuid = uuid.uuid4()
|
instance_type_uuid = uuid.uuid4()
|
||||||
|
|
||||||
if 0 == len(self._instance_type_table):
|
instance_type = objects.InstanceType(instance_type_uuid, 'small')
|
||||||
instance_type = objects.InstanceType(instance_type_uuid, 'small')
|
instance_type.update_details(vcpus=1,
|
||||||
instance_type.update_details(vcpus=1, mem_mb=64, disk_gb=1, ephemeral_gb=0,
|
mem_mb=64,
|
||||||
swap_gb=0, guest_services=None,
|
disk_gb=1,
|
||||||
auto_recovery=True,
|
ephemeral_gb=0,
|
||||||
live_migration_timeout=800,
|
swap_gb=0,
|
||||||
live_migration_max_downtime=500,
|
guest_services=None,
|
||||||
storage_type='local_image')
|
auto_recovery=True,
|
||||||
self._instance_type_table[instance_type_uuid] = instance_type
|
live_migration_timeout=800,
|
||||||
|
live_migration_max_downtime=500,
|
||||||
|
storage_type='local_image')
|
||||||
|
self._instance_type_table[instance_type_uuid] = instance_type
|
||||||
|
|
||||||
self._instance_table.clear()
|
self._director = InstanceDirector(
|
||||||
|
max_concurrent_recovering_instances=4,
|
||||||
if self._director is None:
|
max_concurrent_migrates_per_host=1,
|
||||||
self._director = InstanceDirector(
|
max_concurrent_evacuates_per_host=1,
|
||||||
max_concurrent_recovering_instances=4,
|
recovery_audit_interval=_audit_interval,
|
||||||
max_concurrent_migrates_per_host=1,
|
recovery_audit_cooldown=_audit_cooldown,
|
||||||
max_concurrent_evacuates_per_host=1,
|
recovery_audit_batch_interval=2,
|
||||||
recovery_audit_interval=_audit_interval,
|
recovery_cooldown=_recovery_cooldown,
|
||||||
recovery_audit_cooldown=_audit_cooldown,
|
rebuild_timeout=_rebuild_timeout,
|
||||||
recovery_audit_batch_interval=2,
|
reboot_timeout=_reboot_timeout,
|
||||||
recovery_cooldown=_recovery_cooldown,
|
migrate_timeout=_migrate_timeout,
|
||||||
rebuild_timeout=_rebuild_timeout,
|
single_hypervisor=False,
|
||||||
reboot_timeout=_reboot_timeout,
|
recovery_threshold=250,
|
||||||
migrate_timeout=_migrate_timeout,
|
max_throttled_recovering_instances=2)
|
||||||
single_hypervisor=False,
|
|
||||||
recovery_threshold=250,
|
|
||||||
max_throttled_recovering_instances=2
|
|
||||||
)
|
|
||||||
|
|
||||||
@mock.patch('nfv_vim.tables.tables_get_tenant_table')
|
@mock.patch('nfv_vim.tables.tables_get_tenant_table')
|
||||||
@mock.patch('nfv_vim.tables.tables_get_instance_type_table')
|
@mock.patch('nfv_vim.tables.tables_get_instance_type_table')
|
||||||
|
|
|
@ -48,10 +48,10 @@ class TestNFVPluginsK8SNodeTaint(testcase.NFVTestCase):
|
||||||
test_value1 = 'testValue1'
|
test_value1 = 'testValue1'
|
||||||
test_key2 = 'testKey2'
|
test_key2 = 'testKey2'
|
||||||
test_value2 = 'testValue2'
|
test_value2 = 'testValue2'
|
||||||
test_node_repo = {}
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestNFVPluginsK8SNodeTaint, self).setUp()
|
super(TestNFVPluginsK8SNodeTaint, self).setUp()
|
||||||
|
self.test_node_repo = {}
|
||||||
self.setup_node_repo(self.test_node_name)
|
self.setup_node_repo(self.test_node_name)
|
||||||
|
|
||||||
def mock_patch_node(obj, node_name, body):
|
def mock_patch_node(obj, node_name, body):
|
||||||
|
|
|
@ -149,28 +149,28 @@ def fake_event_issue(a, b, c, d):
|
||||||
@mock.patch('nfv_vim.event_log._instance._event_issue', fake_event_issue)
|
@mock.patch('nfv_vim.event_log._instance._event_issue', fake_event_issue)
|
||||||
class TestSwPatchStrategy(testcase.NFVTestCase):
|
class TestSwPatchStrategy(testcase.NFVTestCase):
|
||||||
|
|
||||||
_tenant_table = Table()
|
|
||||||
_instance_type_table = Table()
|
|
||||||
_instance_table = InstanceTable()
|
|
||||||
_instance_group_table = InstanceGroupTable()
|
|
||||||
_host_table = HostTable()
|
|
||||||
_host_group_table = HostGroupTable()
|
|
||||||
_host_aggregate_table = HostAggregateTable()
|
|
||||||
|
|
||||||
# Don't attempt to write to the database while unit testing
|
|
||||||
_tenant_table.persist = False
|
|
||||||
_instance_type_table.persist = False
|
|
||||||
_instance_table.persist = False
|
|
||||||
_instance_group_table.persist = False
|
|
||||||
_host_table.persist = False
|
|
||||||
_host_group_table.persist = False
|
|
||||||
_host_aggregate_table.persist = False
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
"""
|
"""
|
||||||
Setup for testing.
|
Setup for testing.
|
||||||
"""
|
"""
|
||||||
super(TestSwPatchStrategy, self).setUp()
|
super(TestSwPatchStrategy, self).setUp()
|
||||||
|
self._tenant_table = Table()
|
||||||
|
self._instance_type_table = Table()
|
||||||
|
self._instance_table = InstanceTable()
|
||||||
|
self._instance_group_table = InstanceGroupTable()
|
||||||
|
self._host_table = HostTable()
|
||||||
|
self._host_group_table = HostGroupTable()
|
||||||
|
self._host_aggregate_table = HostAggregateTable()
|
||||||
|
|
||||||
|
# Don't attempt to write to the database while unit testing
|
||||||
|
self._tenant_table.persist = False
|
||||||
|
self._instance_type_table.persist = False
|
||||||
|
self._instance_table.persist = False
|
||||||
|
self._instance_group_table.persist = False
|
||||||
|
self._host_table.persist = False
|
||||||
|
self._host_group_table.persist = False
|
||||||
|
self._host_aggregate_table.persist = False
|
||||||
|
|
||||||
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._tenant_table._tenant_table',
|
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._tenant_table._tenant_table',
|
||||||
self._tenant_table))
|
self._tenant_table))
|
||||||
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._host_table._host_table',
|
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._host_table._host_table',
|
||||||
|
@ -187,15 +187,18 @@ class TestSwPatchStrategy(testcase.NFVTestCase):
|
||||||
self._instance_type_table))
|
self._instance_type_table))
|
||||||
|
|
||||||
instance_type_uuid = str(uuid.uuid4())
|
instance_type_uuid = str(uuid.uuid4())
|
||||||
if 0 == len(self._instance_type_table):
|
instance_type = objects.InstanceType(instance_type_uuid, 'small')
|
||||||
instance_type = objects.InstanceType(instance_type_uuid, 'small')
|
instance_type.update_details(vcpus=1,
|
||||||
instance_type.update_details(vcpus=1, mem_mb=64, disk_gb=1, ephemeral_gb=0,
|
mem_mb=64,
|
||||||
swap_gb=0, guest_services=None,
|
disk_gb=1,
|
||||||
auto_recovery=True,
|
ephemeral_gb=0,
|
||||||
live_migration_timeout=800,
|
swap_gb=0,
|
||||||
live_migration_max_downtime=500,
|
guest_services=None,
|
||||||
storage_type='local_image')
|
auto_recovery=True,
|
||||||
self._instance_type_table[instance_type_uuid] = instance_type
|
live_migration_timeout=800,
|
||||||
|
live_migration_max_downtime=500,
|
||||||
|
storage_type='local_image')
|
||||||
|
self._instance_type_table[instance_type_uuid] = instance_type
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -128,25 +128,26 @@ def fake_event_issue(a, b, c, d):
|
||||||
@mock.patch('nfv_vim.objects._sw_update.SwUpdate.save', fake_save)
|
@mock.patch('nfv_vim.objects._sw_update.SwUpdate.save', fake_save)
|
||||||
@mock.patch('nfv_vim.objects._sw_update.timers.timers_create_timer', fake_timer)
|
@mock.patch('nfv_vim.objects._sw_update.timers.timers_create_timer', fake_timer)
|
||||||
class TestSwUpgradeStrategy(testcase.NFVTestCase):
|
class TestSwUpgradeStrategy(testcase.NFVTestCase):
|
||||||
_tenant_table = Table()
|
|
||||||
_instance_type_table = Table()
|
|
||||||
_instance_table = InstanceTable()
|
|
||||||
_instance_group_table = InstanceGroupTable()
|
|
||||||
_host_table = HostTable()
|
|
||||||
_host_group_table = HostGroupTable()
|
|
||||||
_host_aggregate_table = HostAggregateTable()
|
|
||||||
|
|
||||||
# Don't attempt to write to the database while unit testing
|
|
||||||
_tenant_table.persist = False
|
|
||||||
_instance_type_table.persist = False
|
|
||||||
_instance_table.persist = False
|
|
||||||
_instance_group_table.persist = False
|
|
||||||
_host_table.persist = False
|
|
||||||
_host_group_table.persist = False
|
|
||||||
_host_aggregate_table.persist = False
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestSwUpgradeStrategy, self).setUp()
|
super(TestSwUpgradeStrategy, self).setUp()
|
||||||
|
self._tenant_table = Table()
|
||||||
|
self._instance_type_table = Table()
|
||||||
|
self._instance_table = InstanceTable()
|
||||||
|
self._instance_group_table = InstanceGroupTable()
|
||||||
|
self._host_table = HostTable()
|
||||||
|
self._host_group_table = HostGroupTable()
|
||||||
|
self._host_aggregate_table = HostAggregateTable()
|
||||||
|
|
||||||
|
# Don't attempt to write to the database while unit testing
|
||||||
|
self._tenant_table.persist = False
|
||||||
|
self._instance_type_table.persist = False
|
||||||
|
self._instance_table.persist = False
|
||||||
|
self._instance_group_table.persist = False
|
||||||
|
self._host_table.persist = False
|
||||||
|
self._host_group_table.persist = False
|
||||||
|
self._host_aggregate_table.persist = False
|
||||||
|
|
||||||
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._host_aggregate_table._host_aggregate_table',
|
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._host_aggregate_table._host_aggregate_table',
|
||||||
self._host_aggregate_table))
|
self._host_aggregate_table))
|
||||||
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._host_group_table._host_group_table',
|
self.useFixture(fixtures.MonkeyPatch('nfv_vim.tables._host_group_table._host_group_table',
|
||||||
|
@ -164,15 +165,18 @@ class TestSwUpgradeStrategy(testcase.NFVTestCase):
|
||||||
|
|
||||||
instance_type_uuid = str(uuid.uuid4())
|
instance_type_uuid = str(uuid.uuid4())
|
||||||
|
|
||||||
if 0 == len(self._instance_type_table):
|
instance_type = objects.InstanceType(instance_type_uuid, 'small')
|
||||||
instance_type = objects.InstanceType(instance_type_uuid, 'small')
|
instance_type.update_details(vcpus=1,
|
||||||
instance_type.update_details(vcpus=1, mem_mb=64, disk_gb=1, ephemeral_gb=0,
|
mem_mb=64,
|
||||||
swap_gb=0, guest_services=None,
|
disk_gb=1,
|
||||||
auto_recovery=True,
|
ephemeral_gb=0,
|
||||||
live_migration_timeout=800,
|
swap_gb=0,
|
||||||
live_migration_max_downtime=500,
|
guest_services=None,
|
||||||
storage_type='local_image')
|
auto_recovery=True,
|
||||||
self._instance_type_table[instance_type_uuid] = instance_type
|
live_migration_timeout=800,
|
||||||
|
live_migration_max_downtime=500,
|
||||||
|
storage_type='local_image')
|
||||||
|
self._instance_type_table[instance_type_uuid] = instance_type
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue