Merge "tests: Add compute v2 FakeClientMixin"

This commit is contained in:
Zuul 2023-10-27 16:38:55 +00:00 committed by Gerrit Code Review
commit 491e5b9e9a
26 changed files with 55 additions and 257 deletions

View File

@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
from openstackclient.common import availability_zone
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
from openstackclient.tests.unit.network.v2 import fakes as network_fakes
@ -78,22 +76,12 @@ def _build_network_az_datalist(network_az, long_datalist=False):
return (datalist,)
class TestAvailabilityZone(
class TestAvailabilityZoneList(
network_fakes.FakeClientMixin,
volume_fakes.FakeClientMixin,
compute_fakes.FakeClientMixin,
utils.TestCommand,
):
def setUp(self):
super().setUp()
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
self.compute_sdk_client.availability_zones = mock.Mock()
class TestAvailabilityZoneList(TestAvailabilityZone):
compute_azs = compute_fakes.create_availability_zones()
volume_azs = volume_fakes.create_availability_zones(count=1)
network_azs = network_fakes.create_availability_zones()

View File

@ -27,7 +27,6 @@ class TestComputeLimits(compute_fakes.TestComputev2):
def setUp(self):
super().setUp()
self.app.client_manager.volume_endpoint_enabled = False
self.compute_client = self.app.client_manager.compute
self.fake_limits = compute_fakes.FakeLimits()
self.compute_client.limits.get.return_value = self.fake_limits

View File

@ -48,7 +48,6 @@ class TestQuota(compute_fakes.TestComputev2):
self.projects_mock.reset_mock()
self.projects_mock.get.return_value = self.projects[0]
self.compute_client = self.app.client_manager.compute
self.compute_quotas_mock = self.compute_client.quotas
self.compute_quotas_mock.reset_mock()
self.compute_quotas_class_mock = self.compute_client.quota_classes

View File

@ -19,6 +19,7 @@ from unittest import mock
import uuid
from novaclient import api_versions
from openstack.compute.v2 import _proxy
from openstack.compute.v2 import aggregate as _aggregate
from openstack.compute.v2 import availability_zone as _availability_zone
from openstack.compute.v2 import extension as _extension
@ -148,12 +149,7 @@ class FakeComputev2Client(object):
self.api_version = api_versions.APIVersion('2.1')
class TestComputev2(
network_fakes.FakeClientMixin,
image_fakes.FakeClientMixin,
volume_fakes.FakeClientMixin,
utils.TestCommand,
):
class FakeClientMixin:
def setUp(self):
super().setUp()
@ -168,6 +164,26 @@ class TestComputev2(
endpoint=fakes.AUTH_URL,
)
# TODO(stephenfin): Rename to 'compute_client' once all commands are
# migrated to SDK
self.app.client_manager.sdk_connection.compute = mock.Mock(
_proxy.Proxy
)
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
class TestComputev2(
network_fakes.FakeClientMixin,
image_fakes.FakeClientMixin,
volume_fakes.FakeClientMixin,
FakeClientMixin,
utils.TestCommand,
):
def setUp(self):
super().setUp()
self.app.client_manager.identity = identity_fakes.FakeIdentityv2Client(
endpoint=fakes.AUTH_URL,
token=fakes.AUTH_TOKEN,

View File

@ -55,23 +55,6 @@ class TestAggregate(compute_fakes.TestComputev2):
fake_ag.uuid,
)
def setUp(self):
super(TestAggregate, self).setUp()
# Get a shortcut to the AggregateManager Mock
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
self.compute_sdk_client.aggregates = mock.Mock()
self.compute_sdk_client.find_aggregate = mock.Mock()
self.compute_sdk_client.create_aggregate = mock.Mock()
self.compute_sdk_client.update_aggregate = mock.Mock()
self.compute_sdk_client.update_aggregate = mock.Mock()
self.compute_sdk_client.set_aggregate_metadata = mock.Mock()
self.compute_sdk_client.add_host_to_aggregate = mock.Mock()
self.compute_sdk_client.remove_host_from_aggregate = mock.Mock()
class TestAggregateAddHost(TestAggregate):
def setUp(self):

View File

@ -20,20 +20,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
from openstackclient.tests.unit import utils
class TestConsole(compute_fakes.TestComputev2):
def setUp(self):
super(TestConsole, self).setUp()
# SDK mock
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
self.compute_sdk_client.find_server = mock.Mock()
self.compute_sdk_client.get_server_console_output = mock.Mock()
class TestConsoleLog(TestConsole):
class TestConsoleLog(compute_fakes.TestComputev2):
_server = compute_fakes.create_one_server()
def setUp(self):
@ -89,7 +76,7 @@ class TestConsoleLog(TestConsole):
)
class TestConsoleUrlShow(TestConsole):
class TestConsoleUrlShow(compute_fakes.TestComputev2):
_server = compute_fakes.create_one_server()
def setUp(self):

View File

@ -30,25 +30,6 @@ class TestFlavor(compute_fakes.TestComputev2):
def setUp(self):
super(TestFlavor, self).setUp()
# SDK mock
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
self.compute_sdk_client.flavors = mock.Mock()
self.compute_sdk_client.find_flavor = mock.Mock()
self.compute_sdk_client.delete_flavor = mock.Mock()
self.compute_sdk_client.update_flavor = mock.Mock()
self.compute_sdk_client.flavor_add_tenant_access = mock.Mock()
self.compute_sdk_client.flavor_remove_tenant_access = mock.Mock()
self.compute_sdk_client.create_flavor_extra_specs = mock.Mock()
self.compute_sdk_client.update_flavor_extra_specs_property = (
mock.Mock()
)
self.compute_sdk_client.delete_flavor_extra_specs_property = (
mock.Mock()
)
self.projects_mock = self.app.client_manager.identity.projects
self.projects_mock.reset_mock()
@ -1193,7 +1174,7 @@ class TestFlavorUnset(TestFlavor):
self.flavor.id,
self.project.id,
)
self.compute_sdk_client.delete_flavor_extra_specs_proerty.assert_not_called()
self.compute_sdk_client.delete_flavor_extra_specs_property.assert_not_called()
self.assertIsNone(result)
def test_flavor_unset_no_project(self):

View File

@ -21,20 +21,8 @@ from openstackclient.tests.unit import fakes
from openstackclient.tests.unit import utils as tests_utils
class TestHost(compute_fakes.TestComputev2):
def setUp(self):
super(TestHost, self).setUp()
# Get a shortcut to the compute client
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
self.compute_sdk_client.get = mock.Mock()
@mock.patch('openstackclient.api.compute_v2.APIv2.host_list')
class TestHostList(TestHost):
class TestHostList(compute_fakes.TestComputev2):
_host = compute_fakes.create_one_host()
def setUp(self):
@ -93,7 +81,7 @@ class TestHostList(TestHost):
@mock.patch('openstackclient.api.compute_v2.APIv2.host_set')
class TestHostSet(TestHost):
class TestHostSet(compute_fakes.TestComputev2):
def setUp(self):
super(TestHostSet, self).setUp()
@ -143,7 +131,7 @@ class TestHostSet(TestHost):
@mock.patch('openstackclient.api.compute_v2.APIv2.host_show')
class TestHostShow(TestHost):
class TestHostShow(compute_fakes.TestComputev2):
_host = compute_fakes.create_one_host()
def setUp(self):

View File

@ -25,18 +25,7 @@ from openstackclient.compute.v2 import hypervisor
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
class TestHypervisor(compute_fakes.TestComputev2):
def setUp(self):
super().setUp()
# Create and get a shortcut to the compute client mock
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
self.compute_sdk_client.reset_mock()
class TestHypervisorList(TestHypervisor):
class TestHypervisorList(compute_fakes.TestComputev2):
def setUp(self):
super().setUp()
@ -294,7 +283,7 @@ class TestHypervisorList(TestHypervisor):
)
class TestHypervisorShow(TestHypervisor):
class TestHypervisorShow(compute_fakes.TestComputev2):
def setUp(self):
super().setUp()

View File

@ -23,11 +23,6 @@ class TestHypervisorStats(compute_fakes.TestComputev2):
def setUp(self):
super(TestHypervisorStats, self).setUp()
# Get a shortcut to the compute client hypervisors mock
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
self.compute_sdk_client.get = mock.Mock()

View File

@ -40,15 +40,6 @@ class TestKeypair(compute_fakes.TestComputev2):
loaded=True,
)
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
self.compute_sdk_client.keypairs = mock.Mock()
self.compute_sdk_client.create_keypair = mock.Mock()
self.compute_sdk_client.delete_keypair = mock.Mock()
self.compute_sdk_client.find_keypair = mock.Mock()
class TestKeypairCreate(TestKeypair):
def setUp(self):

View File

@ -70,11 +70,6 @@ class TestServer(compute_fakes.TestComputev2):
self.servers_mock = self.compute_client.servers
self.servers_mock.reset_mock()
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
# Get a shortcut to the compute client ServerMigrationsManager Mock
self.server_migrations_mock = self.compute_client.server_migrations
self.server_migrations_mock.reset_mock()

View File

@ -23,21 +23,8 @@ from openstackclient.tests.unit.image.v2 import fakes as image_fakes
class TestServerBackup(compute_fakes.TestComputev2):
def setUp(self):
super(TestServerBackup, self).setUp()
# Get a shortcut to the compute client ServerManager Mock
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
# Set object attributes to be tested. Could be overwritten in subclass.
self.attrs = {}
def setup_servers_mock(self, count):
servers = compute_fakes.create_sdk_servers(
attrs=self.attrs,
count=count,
)

View File

@ -29,15 +29,6 @@ class TestServerEvent(compute_fakes.TestComputev2):
def setUp(self):
super(TestServerEvent, self).setUp()
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
self.compute_sdk_client.find_server = mock.Mock()
self.compute_sdk_client.server_actions = mock.Mock()
self.compute_sdk_client.get_server_action = mock.Mock()
self.compute_sdk_client.reset_mock()
patcher = mock.patch.object(
sdk_utils, 'supports_microversion', return_value=True
)

View File

@ -47,15 +47,6 @@ class TestServerGroup(compute_fakes.TestComputev2):
fake_server_group.user_id,
)
def setUp(self):
super().setUp()
# Create and get a shortcut to the compute client mock
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
self.compute_sdk_client.reset_mock()
class TestServerGroupCreate(TestServerGroup):
def setUp(self):

View File

@ -22,21 +22,8 @@ from openstackclient.tests.unit.image.v2 import fakes as image_fakes
class TestServerImage(compute_fakes.TestComputev2):
def setUp(self):
super().setUp()
# Get a shortcut to the compute client ServerManager Mock
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
# Set object attributes to be tested. Could be overwritten in subclass.
self.attrs = {}
def setup_servers_mock(self, count):
servers = compute_fakes.create_sdk_servers(
attrs=self.attrs,
count=count,
)

View File

@ -34,11 +34,6 @@ class TestServerMigration(compute_fakes.TestComputev2):
self.server_migrations_mock = self.compute_client.server_migrations
self.server_migrations_mock.reset_mock()
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
patcher = mock.patch.object(
sdk_utils, 'supports_microversion', return_value=True
)

View File

@ -20,17 +20,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes
class TestServerVolume(compute_fakes.TestComputev2):
def setUp(self):
super().setUp()
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
class TestServerVolumeList(TestServerVolume):
class TestServerVolumeList(compute_fakes.TestComputev2):
def setUp(self):
super().setUp()
@ -230,7 +220,7 @@ class TestServerVolumeList(TestServerVolume):
)
class TestServerVolumeUpdate(TestServerVolume):
class TestServerVolumeUpdate(compute_fakes.TestComputev2):
def setUp(self):
super().setUp()

View File

@ -22,17 +22,7 @@ from openstackclient.compute.v2 import service
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
class TestService(compute_fakes.TestComputev2):
def setUp(self):
super(TestService, self).setUp()
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
class TestServiceDelete(TestService):
class TestServiceDelete(compute_fakes.TestComputev2):
services = compute_fakes.create_services(count=2)
def setUp(self):
@ -105,7 +95,7 @@ class TestServiceDelete(TestService):
)
class TestServiceList(TestService):
class TestServiceList(compute_fakes.TestComputev2):
service = compute_fakes.create_one_service()
columns = (
@ -233,7 +223,7 @@ class TestServiceList(TestService):
self.assertEqual(data_long, list(data))
class TestServiceSet(TestService):
class TestServiceSet(compute_fakes.TestComputev2):
def setUp(self):
super(TestServiceSet, self).setUp()

View File

@ -22,11 +22,6 @@ class TestUsage(compute_fakes.TestComputev2):
def setUp(self):
super(TestUsage, self).setUp()
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.compute_sdk_client = (
self.app.client_manager.sdk_connection.compute
)
self.projects_mock = self.app.client_manager.identity.projects
self.projects_mock.reset_mock()

View File

@ -24,16 +24,8 @@ from openstackclient.tests.unit import utils as tests_utils
# Tests for Nova network
class TestFloatingIPCompute(compute_fakes.TestComputev2):
def setUp(self):
super(TestFloatingIPCompute, self).setUp()
# Get a shortcut to the compute client
self.compute_client = self.app.client_manager.compute
@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_create')
class TestCreateFloatingIPCompute(TestFloatingIPCompute):
class TestCreateFloatingIPCompute(compute_fakes.TestComputev2):
# The floating ip to be deleted.
_floating_ip = compute_fakes.create_one_floating_ip()
@ -93,7 +85,7 @@ class TestCreateFloatingIPCompute(TestFloatingIPCompute):
@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_delete')
class TestDeleteFloatingIPCompute(TestFloatingIPCompute):
class TestDeleteFloatingIPCompute(compute_fakes.TestComputev2):
# The floating ips to be deleted.
_floating_ips = compute_fakes.create_floating_ips(count=2)
@ -169,7 +161,7 @@ class TestDeleteFloatingIPCompute(TestFloatingIPCompute):
@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_list')
class TestListFloatingIPCompute(TestFloatingIPCompute):
class TestListFloatingIPCompute(compute_fakes.TestComputev2):
# The floating ips to be list up
_floating_ips = compute_fakes.create_floating_ips(count=3)
@ -215,7 +207,7 @@ class TestListFloatingIPCompute(TestFloatingIPCompute):
@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_find')
class TestShowFloatingIPCompute(TestFloatingIPCompute):
class TestShowFloatingIPCompute(compute_fakes.TestComputev2):
# The floating ip to display.
_floating_ip = compute_fakes.create_one_floating_ip()

View File

@ -20,16 +20,8 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
# Tests for Compute network
class TestFloatingIPPoolCompute(compute_fakes.TestComputev2):
def setUp(self):
super(TestFloatingIPPoolCompute, self).setUp()
# Get a shortcut to the compute client
self.compute_client = self.app.client_manager.compute
@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_pool_list')
class TestListFloatingIPPoolCompute(TestFloatingIPPoolCompute):
class TestListFloatingIPPoolCompute(compute_fakes.TestComputev2):
# The floating ip pools to list up
_floating_ip_pools = compute_fakes.create_floating_ip_pools(count=3)

View File

@ -23,16 +23,10 @@ from openstackclient.tests.unit import utils as tests_utils
# Tests for Nova network
#
class TestNetworkCompute(compute_fakes.TestComputev2):
def setUp(self):
super(TestNetworkCompute, self).setUp()
# Get a shortcut to the compute client
self.compute_client = self.app.client_manager.compute
@mock.patch('openstackclient.api.compute_v2.APIv2.network_create')
class TestCreateNetworkCompute(TestNetworkCompute):
class TestCreateNetworkCompute(compute_fakes.TestComputev2):
# The network to create.
_network = compute_fakes.create_one_network()
@ -172,7 +166,7 @@ class TestCreateNetworkCompute(TestNetworkCompute):
@mock.patch('openstackclient.api.compute_v2.APIv2.network_delete')
class TestDeleteNetworkCompute(TestNetworkCompute):
class TestDeleteNetworkCompute(compute_fakes.TestComputev2):
def setUp(self):
super(TestDeleteNetworkCompute, self).setUp()
@ -252,7 +246,7 @@ class TestDeleteNetworkCompute(TestNetworkCompute):
@mock.patch('openstackclient.api.compute_v2.APIv2.network_list')
class TestListNetworkCompute(TestNetworkCompute):
class TestListNetworkCompute(compute_fakes.TestComputev2):
# The networks going to be listed up.
_networks = compute_fakes.create_networks(count=3)
@ -297,7 +291,7 @@ class TestListNetworkCompute(TestNetworkCompute):
@mock.patch('openstackclient.api.compute_v2.APIv2.network_find')
class TestShowNetworkCompute(TestNetworkCompute):
class TestShowNetworkCompute(compute_fakes.TestComputev2):
# The network to show.
_network = compute_fakes.create_one_network()

View File

@ -22,16 +22,8 @@ from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
from openstackclient.tests.unit import utils as tests_utils
class TestSecurityGroupCompute(compute_fakes.TestComputev2):
def setUp(self):
super(TestSecurityGroupCompute, self).setUp()
# Get a shortcut to the compute client
self.compute_client = self.app.client_manager.compute
@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_create')
class TestCreateSecurityGroupCompute(TestSecurityGroupCompute):
class TestCreateSecurityGroupCompute(compute_fakes.TestComputev2):
project = identity_fakes.FakeProject.create_one_project()
domain = identity_fakes.FakeDomain.create_one_domain()
@ -110,7 +102,7 @@ class TestCreateSecurityGroupCompute(TestSecurityGroupCompute):
@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_delete')
class TestDeleteSecurityGroupCompute(TestSecurityGroupCompute):
class TestDeleteSecurityGroupCompute(compute_fakes.TestComputev2):
# The security groups to be deleted.
_security_groups = compute_fakes.create_security_groups()
@ -192,7 +184,7 @@ class TestDeleteSecurityGroupCompute(TestSecurityGroupCompute):
@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_list')
class TestListSecurityGroupCompute(TestSecurityGroupCompute):
class TestListSecurityGroupCompute(compute_fakes.TestComputev2):
# The security group to be listed.
_security_groups = compute_fakes.create_security_groups(count=3)
@ -270,7 +262,7 @@ class TestListSecurityGroupCompute(TestSecurityGroupCompute):
@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_set')
class TestSetSecurityGroupCompute(TestSecurityGroupCompute):
class TestSetSecurityGroupCompute(compute_fakes.TestComputev2):
# The security group to be set.
_security_group = compute_fakes.create_one_security_group()
@ -337,7 +329,7 @@ class TestSetSecurityGroupCompute(TestSecurityGroupCompute):
@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_find')
class TestShowSecurityGroupCompute(TestSecurityGroupCompute):
class TestShowSecurityGroupCompute(compute_fakes.TestComputev2):
# The security group rule to be shown with the group.
_security_group_rule = compute_fakes.create_one_security_group_rule()

View File

@ -23,16 +23,8 @@ from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
from openstackclient.tests.unit import utils as tests_utils
class TestSecurityGroupRuleCompute(compute_fakes.TestComputev2):
def setUp(self):
super(TestSecurityGroupRuleCompute, self).setUp()
# Get a shortcut to the network client
self.compute_client = self.app.client_manager.compute
@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_rule_create')
class TestCreateSecurityGroupRuleCompute(TestSecurityGroupRuleCompute):
class TestCreateSecurityGroupRuleCompute(compute_fakes.TestComputev2):
project = identity_fakes.FakeProject.create_one_project()
domain = identity_fakes.FakeDomain.create_one_domain()
@ -305,7 +297,7 @@ class TestCreateSecurityGroupRuleCompute(TestSecurityGroupRuleCompute):
@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_rule_delete')
class TestDeleteSecurityGroupRuleCompute(TestSecurityGroupRuleCompute):
class TestDeleteSecurityGroupRuleCompute(compute_fakes.TestComputev2):
# The security group rule to be deleted.
_security_group_rules = compute_fakes.create_security_group_rules(count=2)
@ -373,7 +365,7 @@ class TestDeleteSecurityGroupRuleCompute(TestSecurityGroupRuleCompute):
sgr_mock.assert_any_call('unexist_rule')
class TestListSecurityGroupRuleCompute(TestSecurityGroupRuleCompute):
class TestListSecurityGroupRuleCompute(compute_fakes.TestComputev2):
# The security group to hold the rules.
_security_group = compute_fakes.create_one_security_group()
@ -509,7 +501,7 @@ class TestListSecurityGroupRuleCompute(TestSecurityGroupRuleCompute):
self.assertEqual(self.expected_data_no_group, list(data))
class TestShowSecurityGroupRuleCompute(TestSecurityGroupRuleCompute):
class TestShowSecurityGroupRuleCompute(compute_fakes.TestComputev2):
# The security group rule to be shown.
_security_group_rule = compute_fakes.create_one_security_group_rule()

View File

@ -33,7 +33,6 @@ class TestVolumeAttachment(volume_fakes.TestVolume):
self.projects_mock = self.app.client_manager.identity.projects
self.projects_mock.reset_mock()
self.compute_client = self.app.client_manager.compute
self.servers_mock = self.compute_client.servers
self.servers_mock.reset_mock()