Skip to content

Commit 5e8cad2

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Remove double mocking... again" into stable/xena
2 parents 2d98e8f + b36bc92 commit 5e8cad2

File tree

20 files changed

+158
-187
lines changed

20 files changed

+158
-187
lines changed

nova/tests/fixtures/libvirt.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2180,8 +2180,8 @@ def setUp(self):
21802180

21812181
self.useFixture(
21822182
fixtures.MockPatch('nova.virt.libvirt.utils.get_fs_info'))
2183-
self.useFixture(
2184-
fixtures.MockPatch('nova.compute.utils.get_machine_ips'))
2183+
self.mock_get_machine_ips = self.useFixture(
2184+
fixtures.MockPatch('nova.compute.utils.get_machine_ips')).mock
21852185

21862186
# libvirt driver needs to call out to the filesystem to get the
21872187
# parent_ifname for the SRIOV VFs.
@@ -2191,20 +2191,25 @@ def setUp(self):
21912191

21922192
self.useFixture(fixtures.MockPatch(
21932193
'nova.pci.utils.get_mac_by_pci_address',
2194-
new=self.fake_get_mac_by_pci_address))
2194+
side_effect=self.fake_get_mac_by_pci_address))
21952195

21962196
# libvirt calls out to sysfs to get the vfs ID during macvtap plug
2197-
self.useFixture(fixtures.MockPatch(
2198-
'nova.pci.utils.get_vf_num_by_pci_address', return_value=1))
2197+
self.mock_get_vf_num_by_pci_address = self.useFixture(
2198+
fixtures.MockPatch(
2199+
'nova.pci.utils.get_vf_num_by_pci_address', return_value=1
2200+
)
2201+
).mock
21992202

22002203
# libvirt calls out to privsep to set the mac and vlan of a macvtap
2201-
self.useFixture(fixtures.MockPatch(
2202-
'nova.privsep.linux_net.set_device_macaddr_and_vlan'))
2204+
self.mock_set_device_macaddr_and_vlan = self.useFixture(
2205+
fixtures.MockPatch(
2206+
'nova.privsep.linux_net.set_device_macaddr_and_vlan')).mock
22032207

22042208
# libvirt calls out to privsep to set the port state during macvtap
22052209
# plug
2206-
self.useFixture(fixtures.MockPatch(
2207-
'nova.privsep.linux_net.set_device_macaddr'))
2210+
self.mock_set_device_macaddr = self.useFixture(
2211+
fixtures.MockPatch(
2212+
'nova.privsep.linux_net.set_device_macaddr')).mock
22082213

22092214
# Don't assume that the system running tests has a valid machine-id
22102215
self.useFixture(fixtures.MockPatch(
@@ -2219,8 +2224,8 @@ def setUp(self):
22192224
# Ensure tests perform the same on all host architectures
22202225
fake_uname = os_uname(
22212226
'Linux', '', '5.4.0-0-generic', '', obj_fields.Architecture.X86_64)
2222-
self.useFixture(
2223-
fixtures.MockPatch('os.uname', return_value=fake_uname))
2227+
self.mock_uname = self.useFixture(
2228+
fixtures.MockPatch('os.uname', return_value=fake_uname)).mock
22242229

22252230
# ...and on all machine types
22262231
fake_loaders = [

nova/tests/fixtures/nova.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -949,9 +949,18 @@ def setUp(self):
949949
base_url += '/' + self.project_id
950950

951951
self.api = client.TestOpenStackClient(
952-
'fake', base_url, project_id=self.project_id)
952+
'fake', base_url, project_id=self.project_id,
953+
)
954+
self.alternative_api = client.TestOpenStackClient(
955+
'fake', base_url, project_id=self.project_id,
956+
)
953957
self.admin_api = client.TestOpenStackClient(
954-
'admin', base_url, project_id=self.project_id)
958+
'admin', base_url, project_id=self.project_id,
959+
)
960+
self.alternative_admin_api = client.TestOpenStackClient(
961+
'admin', base_url, project_id=self.project_id,
962+
)
963+
955964
# Provide a way to access the wsgi application to tests using
956965
# the fixture.
957966
self.app = app
@@ -1039,9 +1048,9 @@ def evloop(*args, **kwargs):
10391048
# Don't poison the function if it's already mocked
10401049
import nova.virt.libvirt.host
10411050
if not isinstance(nova.virt.libvirt.host.Host._init_events, mock.Mock):
1042-
self.useFixture(fixtures.MockPatch(
1051+
self.useFixture(fixtures.MonkeyPatch(
10431052
'nova.virt.libvirt.host.Host._init_events',
1044-
side_effect=evloop))
1053+
evloop))
10451054

10461055

10471056
class IndirectionAPIFixture(fixtures.Fixture):

nova/tests/functional/compute/test_resource_tracker.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
from nova import context
3030
from nova import objects
3131
from nova import test
32-
from nova.tests import fixtures as nova_fixtures
3332
from nova.tests.functional import fixtures as func_fixtures
3433
from nova.tests.functional import integrated_helpers
3534
from nova.virt import driver as virt_driver
@@ -694,15 +693,6 @@ def test_end_to_end(self):
694693
feature a vm cannot be spawning using a custom trait and then start a
695694
compute service that provides that trait.
696695
"""
697-
698-
self.useFixture(nova_fixtures.NeutronFixture(self))
699-
self.useFixture(nova_fixtures.GlanceFixture(self))
700-
701-
# Start nova services.
702-
self.api = self.useFixture(nova_fixtures.OSAPIFixture(
703-
api_version='v2.1')).admin_api
704-
self.api.microversion = 'latest'
705-
self.start_service('conductor')
706696
# start nova-compute that will not have the additional trait.
707697
self._start_compute("fake-host-1")
708698

nova/tests/functional/libvirt/base.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,12 @@ def setUp(self):
5151
self.useFixture(fixtures.MockPatch(
5252
'nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
5353
return_value={'total': 128, 'used': 44, 'free': 84}))
54-
self.useFixture(fixtures.MockPatch(
54+
self.mock_is_valid_hostname = self.useFixture(fixtures.MockPatch(
5555
'nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
56-
return_value=True))
57-
self.useFixture(fixtures.MockPatch(
56+
return_value=True)).mock
57+
self.mock_file_open = self.useFixture(fixtures.MockPatch(
5858
'nova.virt.libvirt.driver.libvirt_utils.file_open',
59-
side_effect=lambda *a, **k: io.BytesIO(b'')))
59+
side_effect=lambda *a, **k: io.BytesIO(b''))).mock
6060
self.useFixture(fixtures.MockPatch(
6161
'nova.privsep.utils.supports_direct_io',
6262
return_value=True))

nova/tests/functional/libvirt/test_reshape.py

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,7 @@
3030

3131
class VGPUReshapeTests(base.ServersTestBase):
3232

33-
@mock.patch('nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
34-
return_value={'total': 128,
35-
'used': 44,
36-
'free': 84})
37-
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
38-
return_value=True)
39-
@mock.patch('nova.virt.libvirt.driver.libvirt_utils.file_open',
40-
side_effect=[io.BytesIO(b''), io.BytesIO(b''),
41-
io.BytesIO(b'')])
42-
def test_create_servers_with_vgpu(
43-
self, mock_file_open, mock_valid_hostname, mock_get_fs_info):
33+
def test_create_servers_with_vgpu(self):
4434
"""Verify that vgpu reshape works with libvirt driver
4535
4636
1) create two servers with an old tree where the VGPU resource is on
@@ -49,7 +39,8 @@ def test_create_servers_with_vgpu(
4939
3) check that the allocations of the servers are still valid
5040
4) create another server now against the new tree
5141
"""
52-
42+
self.mock_file_open.side_effect = [
43+
io.BytesIO(b''), io.BytesIO(b''), io.BytesIO(b'')]
5344
# NOTE(gibi): We cannot simply ask the virt driver to create an old
5445
# RP tree with vgpu on the root RP as that code path does not exist
5546
# any more. So we have to hack a "bit". We will create a compute

nova/tests/functional/libvirt/test_vgpu.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ class VGPUTestBase(base.ServersTestBase):
4949

5050
def setUp(self):
5151
super(VGPUTestBase, self).setUp()
52-
self.useFixture(fixtures.MockPatch(
53-
'nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
54-
return_value={'total': 128,
55-
'used': 44,
56-
'free': 84}))
52+
libvirt_driver.LibvirtDriver._get_local_gb_info.return_value = {
53+
'total': 128,
54+
'used': 44,
55+
'free': 84,
56+
}
5757
self.useFixture(fixtures.MockPatch(
5858
'nova.privsep.libvirt.create_mdev',
5959
side_effect=self._create_mdev))

nova/tests/functional/test_aggregates.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -826,11 +826,11 @@ def setUp(self):
826826

827827
# Start nova services.
828828
self.start_service('conductor')
829-
self.admin_api = self.useFixture(
830-
nova_fixtures.OSAPIFixture(api_version='v2.1')).admin_api
831-
self.api = self.useFixture(
832-
nova_fixtures.OSAPIFixture(api_version='v2.1',
833-
project_id=uuids.non_admin)).api
829+
api_fixture = self.useFixture(
830+
nova_fixtures.OSAPIFixture(api_version='v2.1'))
831+
self.admin_api = api_fixture.admin_api
832+
self.api = api_fixture.api
833+
self.api.project_id = uuids.non_admin
834834
# Add the AggregateMultiTenancyIsolation to the list of enabled
835835
# filters since it is not enabled by default.
836836
enabled_filters = CONF.filter_scheduler.enabled_filters
@@ -928,15 +928,15 @@ def setUp(self):
928928
self.glance = self.useFixture(nova_fixtures.GlanceFixture(self))
929929
self.useFixture(nova_fixtures.NeutronFixture(self))
930930
self.useFixture(func_fixtures.PlacementFixture())
931-
# Intentionally keep these separate since we want to create the
932-
# server with the non-admin user in a different project.
933-
admin_api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
931+
# Intentionally define different project id for the two client since
932+
# we want to create the server with the non-admin user in a different
933+
# project.
934+
api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
934935
api_version='v2.1', project_id=uuids.admin_project))
935-
self.admin_api = admin_api_fixture.admin_api
936+
self.admin_api = api_fixture.admin_api
936937
self.admin_api.microversion = 'latest'
937-
user_api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
938-
api_version='v2.1', project_id=uuids.user_project))
939-
self.api = user_api_fixture.api
938+
self.api = api_fixture.api
939+
self.api.project_id = uuids.user_project
940940
self.api.microversion = 'latest'
941941

942942
self.start_service('conductor')

nova/tests/functional/test_images.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
from oslo_utils.fixture import uuidsentinel as uuids
1414

15-
from nova.tests import fixtures as nova_fixtures
1615
from nova.tests.functional.api import client
1716
from nova.tests.functional import integrated_helpers
1817

@@ -70,10 +69,9 @@ def test_admin_snapshot_user_image_access_member(self):
7069
server = self.api.post_server({"server": server})
7170
server = self._wait_for_state_change(server, 'ACTIVE')
7271

73-
# Create an admin API fixture with a unique project ID.
74-
admin_api = self.useFixture(
75-
nova_fixtures.OSAPIFixture(
76-
project_id=uuids.admin_project)).admin_api
72+
# use an admin API with a unique project ID.
73+
admin_api = self.api_fixture.alternative_admin_api
74+
admin_api.project_id = uuids.admin_project
7775

7876
# Create a snapshot of the server using the admin project.
7977
name = 'admin-created-snapshot'

nova/tests/functional/test_server_group.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ def setUp(self):
6464
self.useFixture(nova_fixtures.NeutronFixture(self))
6565

6666
self.useFixture(func_fixtures.PlacementFixture())
67-
api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
67+
self.api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
6868
api_version='v2.1'))
6969

70-
self.api = api_fixture.api
70+
self.api = self.api_fixture.api
7171
self.api.microversion = self.microversion
72-
self.admin_api = api_fixture.admin_api
72+
self.admin_api = self.api_fixture.admin_api
7373
self.admin_api.microversion = self.microversion
7474

7575
self.start_service('conductor')
@@ -174,13 +174,8 @@ def test_get_groups_all_projects(self):
174174

175175
# Create an API using project 'openstack1'.
176176
# This is a non-admin API.
177-
#
178-
# NOTE(sdague): this is actually very much *not* how this
179-
# fixture should be used. This actually spawns a whole
180-
# additional API server. Should be addressed in the future.
181-
api_openstack1 = self.useFixture(nova_fixtures.OSAPIFixture(
182-
api_version=self.api_major_version,
183-
project_id=PROJECT_ID_ALT)).api
177+
api_openstack1 = self.api_fixture.alternative_api
178+
api_openstack1.project_id = PROJECT_ID_ALT
184179
api_openstack1.microversion = self.microversion
185180

186181
# Create a server group in project 'openstack'

nova/tests/functional/test_servers.py

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1253,19 +1253,15 @@ def test_get_servers_detail_non_admin_with_deleted_flag(self):
12531253
def test_get_servers_detail_filters(self):
12541254
# We get the results only from the up cells, this ignoring the down
12551255
# cells if list_records_by_skipping_down_cells config option is True.
1256-
api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
1257-
api_version='v2.1'))
1258-
self.admin_api = api_fixture.admin_api
1256+
self.admin_api = self.api_fixture.admin_api
12591257
self.admin_api.microversion = '2.69'
12601258
servers = self.admin_api.get_servers(
12611259
search_opts={'hostname': "cell3-inst0"})
12621260
self.assertEqual(1, len(servers))
12631261
self.assertEqual(self.up_cell_insts[2], servers[0]['id'])
12641262

12651263
def test_get_servers_detail_all_tenants_with_down_cells(self):
1266-
api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
1267-
api_version='v2.1'))
1268-
self.admin_api = api_fixture.admin_api
1264+
self.admin_api = self.api_fixture.admin_api
12691265
self.admin_api.microversion = '2.69'
12701266
servers = self.admin_api.get_servers(search_opts={'all_tenants': True})
12711267
# 4 servers from the up cells and 4 servers from the down cells
@@ -1523,10 +1519,8 @@ class ServersTestV280(integrated_helpers._IntegratedTestBase):
15231519

15241520
def setUp(self):
15251521
super(ServersTestV280, self).setUp()
1526-
api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
1527-
api_version='v2.1'))
1528-
self.api = api_fixture.api
1529-
self.admin_api = api_fixture.admin_api
1522+
self.api = self.api_fixture.api
1523+
self.admin_api = self.api_fixture.admin_api
15301524

15311525
self.api.microversion = '2.80'
15321526
self.admin_api.microversion = '2.80'
@@ -1585,9 +1579,8 @@ def test_get_migrations_after_live_migrate_server_in_different_project(
15851579

15861580
project_id_1 = '4906260553374bf0a5d566543b320516'
15871581
project_id_2 = 'c850298c1b6b4796a8f197ac310b2469'
1588-
new_api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
1589-
api_version=self.api_major_version, project_id=project_id_1))
1590-
new_admin_api = new_api_fixture.admin_api
1582+
new_admin_api = self.api_fixture.alternative_admin_api
1583+
new_admin_api.project_id = project_id_1
15911584
new_admin_api.microversion = '2.80'
15921585

15931586
post = {

0 commit comments

Comments
 (0)