Update unit test test_extension with fake class
Add FakeExtension class in networkv2, computev2, volumev2, identityv2_0 and update unit test test/common/test_extension.py Change-Id: I94815de7801860edb7fa91a7d146455cab946652
This commit is contained in:
parent
5293bb103e
commit
0fd3a8c787
@ -11,7 +11,6 @@
|
||||
# under the License.
|
||||
#
|
||||
|
||||
import copy
|
||||
import mock
|
||||
|
||||
from openstackclient.common import extension
|
||||
@ -29,26 +28,38 @@ class TestExtension(utils.TestCommand):
|
||||
def setUp(self):
|
||||
super(TestExtension, self).setUp()
|
||||
|
||||
self.app.client_manager.identity = identity_fakes.FakeIdentityv2Client(
|
||||
identity_client = identity_fakes.FakeIdentityv2Client(
|
||||
endpoint=fakes.AUTH_URL,
|
||||
token=fakes.AUTH_TOKEN,
|
||||
)
|
||||
self.identity_extensions_mock = (
|
||||
self.app.client_manager.identity.extensions)
|
||||
self.app.client_manager.identity = identity_client
|
||||
self.identity_extensions_mock = identity_client.extensions
|
||||
self.identity_extensions_mock.reset_mock()
|
||||
|
||||
self.app.client_manager.compute = compute_fakes.FakeComputev2Client(
|
||||
compute_client = compute_fakes.FakeComputev2Client(
|
||||
endpoint=fakes.AUTH_URL,
|
||||
token=fakes.AUTH_TOKEN,
|
||||
)
|
||||
self.app.client_manager.compute = compute_client
|
||||
compute_client.list_extensions = mock.Mock()
|
||||
self.compute_extensions_mock = compute_client.list_extensions
|
||||
self.compute_extensions_mock.reset_mock()
|
||||
|
||||
self.app.client_manager.volume = volume_fakes.FakeVolumeClient(
|
||||
volume_client = volume_fakes.FakeVolumeClient(
|
||||
endpoint=fakes.AUTH_URL,
|
||||
token=fakes.AUTH_TOKEN,
|
||||
)
|
||||
self.app.client_manager.volume = volume_client
|
||||
volume_client.list_extensions = mock.Mock()
|
||||
self.volume_extensions_mock = volume_client.list_extensions
|
||||
self.volume_extensions_mock.reset_mock()
|
||||
|
||||
network_client = network_fakes.FakeNetworkV2Client()
|
||||
network_client = network_fakes.FakeNetworkV2Client(
|
||||
endpoint=fakes.AUTH_URL,
|
||||
token=fakes.AUTH_TOKEN,
|
||||
)
|
||||
self.app.client_manager.network = network_client
|
||||
network_client.extensions = mock.Mock()
|
||||
self.network_extensions_mock = network_client.extensions
|
||||
self.network_extensions_mock.reset_mock()
|
||||
|
||||
@ -59,38 +70,21 @@ class TestExtensionList(TestExtension):
|
||||
long_columns = ('Name', 'Namespace', 'Description', 'Alias', 'Updated',
|
||||
'Links')
|
||||
|
||||
volume_extension = volume_fakes.FakeExtension.create_one_extension()
|
||||
identity_extension = identity_fakes.FakeExtension.create_one_extension()
|
||||
compute_extension = compute_fakes.FakeExtension.create_one_extension()
|
||||
network_extension = network_fakes.FakeExtension.create_one_extension()
|
||||
|
||||
def setUp(self):
|
||||
super(TestExtensionList, self).setUp()
|
||||
|
||||
self.identity_extensions_mock.list.return_value = [
|
||||
fakes.FakeResource(
|
||||
None,
|
||||
copy.deepcopy(identity_fakes.EXTENSION),
|
||||
loaded=True,
|
||||
),
|
||||
]
|
||||
|
||||
self.app.client_manager.compute.list_extensions = mock.Mock()
|
||||
self.compute_extensions_mock = (
|
||||
self.app.client_manager.compute.list_extensions)
|
||||
self.identity_extension]
|
||||
self.compute_extensions_mock.show_all.return_value = [
|
||||
fakes.FakeResource(
|
||||
None,
|
||||
copy.deepcopy(compute_fakes.EXTENSION),
|
||||
loaded=True,
|
||||
),
|
||||
]
|
||||
|
||||
self.app.client_manager.volume.list_extensions = mock.Mock()
|
||||
self.volume_extensions_mock = (
|
||||
self.app.client_manager.volume.list_extensions)
|
||||
self.compute_extension]
|
||||
self.volume_extensions_mock.show_all.return_value = [
|
||||
fakes.FakeResource(
|
||||
None,
|
||||
copy.deepcopy(volume_fakes.EXTENSION),
|
||||
loaded=True,
|
||||
),
|
||||
]
|
||||
self.volume_extension]
|
||||
self.network_extensions_mock.return_value = [self.network_extension]
|
||||
|
||||
# Get the command object to test
|
||||
self.cmd = extension.ListExtension(self.app, None)
|
||||
@ -115,24 +109,24 @@ class TestExtensionList(TestExtension):
|
||||
verifylist = []
|
||||
datalist = (
|
||||
(
|
||||
identity_fakes.extension_name,
|
||||
identity_fakes.extension_alias,
|
||||
identity_fakes.extension_description,
|
||||
self.identity_extension.name,
|
||||
self.identity_extension.alias,
|
||||
self.identity_extension.description,
|
||||
),
|
||||
(
|
||||
compute_fakes.extension_name,
|
||||
compute_fakes.extension_alias,
|
||||
compute_fakes.extension_description,
|
||||
self.compute_extension.name,
|
||||
self.compute_extension.alias,
|
||||
self.compute_extension.description,
|
||||
),
|
||||
(
|
||||
volume_fakes.extension_name,
|
||||
volume_fakes.extension_alias,
|
||||
volume_fakes.extension_description,
|
||||
self.volume_extension.name,
|
||||
self.volume_extension.alias,
|
||||
self.volume_extension.description,
|
||||
),
|
||||
(
|
||||
network_fakes.extension_name,
|
||||
network_fakes.extension_alias,
|
||||
network_fakes.extension_description,
|
||||
self.network_extension.name,
|
||||
self.network_extension.alias,
|
||||
self.network_extension.description,
|
||||
),
|
||||
)
|
||||
self._test_extension_list_helper(arglist, verifylist, datalist)
|
||||
@ -150,36 +144,36 @@ class TestExtensionList(TestExtension):
|
||||
]
|
||||
datalist = (
|
||||
(
|
||||
identity_fakes.extension_name,
|
||||
identity_fakes.extension_namespace,
|
||||
identity_fakes.extension_description,
|
||||
identity_fakes.extension_alias,
|
||||
identity_fakes.extension_updated,
|
||||
identity_fakes.extension_links,
|
||||
self.identity_extension.name,
|
||||
self.identity_extension.namespace,
|
||||
self.identity_extension.description,
|
||||
self.identity_extension.alias,
|
||||
self.identity_extension.updated,
|
||||
self.identity_extension.links,
|
||||
),
|
||||
(
|
||||
compute_fakes.extension_name,
|
||||
compute_fakes.extension_namespace,
|
||||
compute_fakes.extension_description,
|
||||
compute_fakes.extension_alias,
|
||||
compute_fakes.extension_updated,
|
||||
compute_fakes.extension_links,
|
||||
self.compute_extension.name,
|
||||
self.compute_extension.namespace,
|
||||
self.compute_extension.description,
|
||||
self.compute_extension.alias,
|
||||
self.compute_extension.updated,
|
||||
self.compute_extension.links,
|
||||
),
|
||||
(
|
||||
volume_fakes.extension_name,
|
||||
volume_fakes.extension_namespace,
|
||||
volume_fakes.extension_description,
|
||||
volume_fakes.extension_alias,
|
||||
volume_fakes.extension_updated,
|
||||
volume_fakes.extension_links,
|
||||
self.volume_extension.name,
|
||||
self.volume_extension.namespace,
|
||||
self.volume_extension.description,
|
||||
self.volume_extension.alias,
|
||||
self.volume_extension.updated,
|
||||
self.volume_extension.links,
|
||||
),
|
||||
(
|
||||
network_fakes.extension_name,
|
||||
network_fakes.extension_namespace,
|
||||
network_fakes.extension_description,
|
||||
network_fakes.extension_alias,
|
||||
network_fakes.extension_updated,
|
||||
network_fakes.extension_links,
|
||||
self.network_extension.name,
|
||||
self.network_extension.namespace,
|
||||
self.network_extension.description,
|
||||
self.network_extension.alias,
|
||||
self.network_extension.updated,
|
||||
self.network_extension.links,
|
||||
),
|
||||
)
|
||||
self._test_extension_list_helper(arglist, verifylist, datalist, True)
|
||||
@ -196,9 +190,9 @@ class TestExtensionList(TestExtension):
|
||||
('identity', True),
|
||||
]
|
||||
datalist = ((
|
||||
identity_fakes.extension_name,
|
||||
identity_fakes.extension_alias,
|
||||
identity_fakes.extension_description,
|
||||
self.identity_extension.name,
|
||||
self.identity_extension.alias,
|
||||
self.identity_extension.description,
|
||||
), )
|
||||
self._test_extension_list_helper(arglist, verifylist, datalist)
|
||||
self.identity_extensions_mock.list.assert_called_with()
|
||||
@ -212,9 +206,9 @@ class TestExtensionList(TestExtension):
|
||||
]
|
||||
datalist = (
|
||||
(
|
||||
network_fakes.extension_name,
|
||||
network_fakes.extension_alias,
|
||||
network_fakes.extension_description,
|
||||
self.network_extension.name,
|
||||
self.network_extension.alias,
|
||||
self.network_extension.description,
|
||||
),
|
||||
)
|
||||
self._test_extension_list_helper(arglist, verifylist, datalist)
|
||||
@ -228,9 +222,9 @@ class TestExtensionList(TestExtension):
|
||||
('compute', True),
|
||||
]
|
||||
datalist = ((
|
||||
compute_fakes.extension_name,
|
||||
compute_fakes.extension_alias,
|
||||
compute_fakes.extension_description,
|
||||
self.compute_extension.name,
|
||||
self.compute_extension.alias,
|
||||
self.compute_extension.description,
|
||||
), )
|
||||
self._test_extension_list_helper(arglist, verifylist, datalist)
|
||||
self.compute_extensions_mock.show_all.assert_called_with()
|
||||
@ -243,9 +237,9 @@ class TestExtensionList(TestExtension):
|
||||
('volume', True),
|
||||
]
|
||||
datalist = ((
|
||||
volume_fakes.extension_name,
|
||||
volume_fakes.extension_alias,
|
||||
volume_fakes.extension_description,
|
||||
self.volume_extension.name,
|
||||
self.volume_extension.alias,
|
||||
self.volume_extension.description,
|
||||
), )
|
||||
self._test_extension_list_helper(arglist, verifylist, datalist)
|
||||
self.volume_extensions_mock.show_all.assert_called_with()
|
||||
|
@ -24,26 +24,6 @@ from openstackclient.tests.network.v2 import fakes as network_fakes
|
||||
from openstackclient.tests import utils
|
||||
from openstackclient.tests.volume.v2 import fakes as volume_fakes
|
||||
|
||||
|
||||
extension_name = 'Multinic'
|
||||
extension_namespace = 'http://docs.openstack.org/compute/ext/'\
|
||||
'multinic/api/v1.1'
|
||||
extension_description = 'Multiple network support'
|
||||
extension_updated = '2014-01-07T12:00:0-00:00'
|
||||
extension_alias = 'NMN'
|
||||
extension_links = '[{"href":'\
|
||||
'"https://github.com/openstack/compute-api", "type":'\
|
||||
' "text/html", "rel": "describedby"}]'
|
||||
|
||||
EXTENSION = {
|
||||
'name': extension_name,
|
||||
'namespace': extension_namespace,
|
||||
'description': extension_description,
|
||||
'updated': extension_updated,
|
||||
'alias': extension_alias,
|
||||
'links': extension_links,
|
||||
}
|
||||
|
||||
floating_ip_num = 100
|
||||
fix_ip_num = 100
|
||||
injected_file_num = 100
|
||||
@ -259,6 +239,42 @@ class FakeAgent(object):
|
||||
return agents
|
||||
|
||||
|
||||
class FakeExtension(object):
|
||||
"""Fake one or more extension."""
|
||||
|
||||
@staticmethod
|
||||
def create_one_extension(attrs=None):
|
||||
"""Create a fake extension.
|
||||
|
||||
:param Dictionary attrs:
|
||||
A dictionary with all attributes
|
||||
:return:
|
||||
A FakeResource object with name, namespace, etc.
|
||||
"""
|
||||
attrs = attrs or {}
|
||||
|
||||
# Set default attributes.
|
||||
extension_info = {
|
||||
'name': 'name-' + uuid.uuid4().hex,
|
||||
'namespace': (
|
||||
'http://docs.openstack.org/compute/ext/multinic/api/v1.1'),
|
||||
'description': 'description-' + uuid.uuid4().hex,
|
||||
'updated': '2014-01-07T12:00:0-00:00',
|
||||
'alias': 'NMN',
|
||||
'links': ('[{"href":'
|
||||
'"https://github.com/openstack/compute-api", "type":'
|
||||
' "text/html", "rel": "describedby"}]')
|
||||
}
|
||||
|
||||
# Overwrite default attributes.
|
||||
extension_info.update(attrs)
|
||||
|
||||
extension = fakes.FakeResource(
|
||||
info=copy.deepcopy(extension_info),
|
||||
loaded=True)
|
||||
return extension
|
||||
|
||||
|
||||
class FakeHypervisor(object):
|
||||
"""Fake one or more hypervisor."""
|
||||
|
||||
|
@ -13,7 +13,9 @@
|
||||
# under the License.
|
||||
#
|
||||
|
||||
import copy
|
||||
import mock
|
||||
import uuid
|
||||
|
||||
from openstackclient.tests import fakes
|
||||
from openstackclient.tests import utils
|
||||
@ -106,26 +108,6 @@ ENDPOINT = {
|
||||
'service_id': endpoint_service_id,
|
||||
}
|
||||
|
||||
extension_name = 'OpenStack Keystone User CRUD'
|
||||
extension_namespace = 'http://docs.openstack.org/identity/'\
|
||||
'api/ext/OS-KSCRUD/v1.0'
|
||||
extension_description = 'OpenStack extensions to Keystone v2.0 API'\
|
||||
' enabling User Operations.'
|
||||
extension_updated = '2013-07-07T12:00:0-00:00'
|
||||
extension_alias = 'OS-KSCRUD'
|
||||
extension_links = '[{"href":'\
|
||||
'"https://github.com/openstack/identity-api", "type":'\
|
||||
' "text/html", "rel": "describedby"}]'
|
||||
|
||||
EXTENSION = {
|
||||
'name': extension_name,
|
||||
'namespace': extension_namespace,
|
||||
'description': extension_description,
|
||||
'updated': extension_updated,
|
||||
'alias': extension_alias,
|
||||
'links': extension_links,
|
||||
}
|
||||
|
||||
|
||||
class FakeIdentityv2Client(object):
|
||||
|
||||
@ -166,3 +148,39 @@ class TestIdentityv2(utils.TestCommand):
|
||||
endpoint=fakes.AUTH_URL,
|
||||
token=fakes.AUTH_TOKEN,
|
||||
)
|
||||
|
||||
|
||||
class FakeExtension(object):
|
||||
"""Fake one or more extension."""
|
||||
|
||||
@staticmethod
|
||||
def create_one_extension(attrs=None):
|
||||
"""Create a fake extension.
|
||||
|
||||
:param Dictionary attrs:
|
||||
A dictionary with all attributes
|
||||
:return:
|
||||
A FakeResource object with name, namespace, etc.
|
||||
"""
|
||||
attrs = attrs or {}
|
||||
|
||||
# Set default attributes.
|
||||
extension_info = {
|
||||
'name': 'name-' + uuid.uuid4().hex,
|
||||
'namespace': ('http://docs.openstack.org/identity/'
|
||||
'api/ext/OS-KSCRUD/v1.0'),
|
||||
'description': 'description-' + uuid.uuid4().hex,
|
||||
'updated': '2013-07-07T12:00:0-00:00',
|
||||
'alias': 'OS-KSCRUD',
|
||||
'links': ('[{"href":'
|
||||
'"https://github.com/openstack/identity-api", "type":'
|
||||
' "text/html", "rel": "describedby"}]')
|
||||
}
|
||||
|
||||
# Overwrite default attributes.
|
||||
extension_info.update(attrs)
|
||||
|
||||
extension = fakes.FakeResource(
|
||||
info=copy.deepcopy(extension_info),
|
||||
loaded=True)
|
||||
return extension
|
||||
|
@ -19,12 +19,6 @@ import uuid
|
||||
from openstackclient.tests import fakes
|
||||
from openstackclient.tests import utils
|
||||
|
||||
extension_name = 'Matrix'
|
||||
extension_namespace = 'http://docs.openstack.org/network/'
|
||||
extension_description = 'Simulated reality'
|
||||
extension_updated = '2013-07-09T12:00:0-00:00'
|
||||
extension_alias = 'Dystopian'
|
||||
extension_links = '[{"href":''"https://github.com/os/network", "type"}]'
|
||||
|
||||
QUOTA = {
|
||||
"subnet": 10,
|
||||
@ -42,21 +36,11 @@ QUOTA = {
|
||||
}
|
||||
|
||||
|
||||
def create_extension():
|
||||
extension = mock.Mock()
|
||||
extension.name = extension_name
|
||||
extension.namespace = extension_namespace
|
||||
extension.description = extension_description
|
||||
extension.updated = extension_updated
|
||||
extension.alias = extension_alias
|
||||
extension.links = extension_links
|
||||
return extension
|
||||
|
||||
|
||||
class FakeNetworkV2Client(object):
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
self.extensions = mock.Mock(return_value=[create_extension()])
|
||||
self.extensions = mock.Mock()
|
||||
self.extensions.resource_class = fakes.FakeResource(None, {})
|
||||
|
||||
|
||||
class TestNetworkV2(utils.TestCommand):
|
||||
@ -240,6 +224,39 @@ class FakeIPAvailability(object):
|
||||
return network_ip_availabilities
|
||||
|
||||
|
||||
class FakeExtension(object):
|
||||
"""Fake one or more extension."""
|
||||
|
||||
@staticmethod
|
||||
def create_one_extension(attrs=None):
|
||||
"""Create a fake extension.
|
||||
|
||||
:param Dictionary attrs:
|
||||
A dictionary with all attributes
|
||||
:return:
|
||||
A FakeResource object with name, namespace, etc.
|
||||
"""
|
||||
attrs = attrs or {}
|
||||
|
||||
# Set default attributes.
|
||||
extension_info = {
|
||||
'name': 'name-' + uuid.uuid4().hex,
|
||||
'namespace': 'http://docs.openstack.org/network/',
|
||||
'description': 'description-' + uuid.uuid4().hex,
|
||||
'updated': '2013-07-09T12:00:0-00:00',
|
||||
'alias': 'Dystopian',
|
||||
'links': '[{"href":''"https://github.com/os/network", "type"}]',
|
||||
}
|
||||
|
||||
# Overwrite default attributes.
|
||||
extension_info.update(attrs)
|
||||
|
||||
extension = fakes.FakeResource(
|
||||
info=copy.deepcopy(extension_info),
|
||||
loaded=True)
|
||||
return extension
|
||||
|
||||
|
||||
class FakeNetwork(object):
|
||||
"""Fake one or more networks."""
|
||||
|
||||
|
@ -211,26 +211,6 @@ IMAGE = {
|
||||
'name': image_name
|
||||
}
|
||||
|
||||
extension_name = 'SchedulerHints'
|
||||
extension_namespace = 'http://docs.openstack.org/'\
|
||||
'block-service/ext/scheduler-hints/api/v2'
|
||||
extension_description = 'Pass arbitrary key/value'\
|
||||
'pairs to the scheduler.'
|
||||
extension_updated = '2013-04-18T00:00:00+00:00'
|
||||
extension_alias = 'OS-SCH-HNT'
|
||||
extension_links = '[{"href":'\
|
||||
'"https://github.com/openstack/block-api", "type":'\
|
||||
' "text/html", "rel": "describedby"}]'
|
||||
|
||||
EXTENSION = {
|
||||
'name': extension_name,
|
||||
'namespace': extension_namespace,
|
||||
'description': extension_description,
|
||||
'updated': extension_updated,
|
||||
'alias': extension_alias,
|
||||
'links': extension_links,
|
||||
}
|
||||
|
||||
|
||||
class FakeTransferClient(object):
|
||||
|
||||
@ -379,6 +359,8 @@ class FakeVolumeClient(object):
|
||||
def __init__(self, **kwargs):
|
||||
self.volumes = mock.Mock()
|
||||
self.volumes.resource_class = fakes.FakeResource(None, {})
|
||||
self.extensions = mock.Mock()
|
||||
self.extensions.resource_class = fakes.FakeResource(None, {})
|
||||
self.volume_snapshots = mock.Mock()
|
||||
self.volume_snapshots.resource_class = fakes.FakeResource(None, {})
|
||||
self.backups = mock.Mock()
|
||||
@ -643,6 +625,42 @@ class FakeBackup(object):
|
||||
return backups
|
||||
|
||||
|
||||
class FakeExtension(object):
|
||||
"""Fake one or more extension."""
|
||||
|
||||
@staticmethod
|
||||
def create_one_extension(attrs=None):
|
||||
"""Create a fake extension.
|
||||
|
||||
:param Dictionary attrs:
|
||||
A dictionary with all attributes
|
||||
:return:
|
||||
A FakeResource object with name, namespace, etc.
|
||||
"""
|
||||
attrs = attrs or {}
|
||||
|
||||
# Set default attributes.
|
||||
extension_info = {
|
||||
'name': 'name-' + uuid.uuid4().hex,
|
||||
'namespace': ('http://docs.openstack.org/'
|
||||
'block-service/ext/scheduler-hints/api/v2'),
|
||||
'description': 'description-' + uuid.uuid4().hex,
|
||||
'updated': '2013-04-18T00:00:00+00:00',
|
||||
'alias': 'OS-SCH-HNT',
|
||||
'links': ('[{"href":'
|
||||
'"https://github.com/openstack/block-api", "type":'
|
||||
' "text/html", "rel": "describedby"}]'),
|
||||
}
|
||||
|
||||
# Overwrite default attributes.
|
||||
extension_info.update(attrs)
|
||||
|
||||
extension = fakes.FakeResource(
|
||||
info=copy.deepcopy(extension_info),
|
||||
loaded=True)
|
||||
return extension
|
||||
|
||||
|
||||
class FakeQos(object):
|
||||
"""Fake one or more Qos specification."""
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user