diff options
Diffstat (limited to 'openstackclient/tests')
| -rw-r--r-- | openstackclient/tests/common/test_clientmanager.py | 11 | ||||
| -rw-r--r-- | openstackclient/tests/common/test_utils.py | 10 | ||||
| -rw-r--r-- | openstackclient/tests/compute/v2/test_server.py | 56 | ||||
| -rw-r--r-- | openstackclient/tests/fakes.py | 2 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_catalog.py | 18 | ||||
| -rw-r--r-- | openstackclient/tests/image/v1/test_image.py | 132 | ||||
| -rw-r--r-- | openstackclient/tests/network/common.py | 27 | ||||
| -rw-r--r-- | openstackclient/tests/network/v2/test_network.py | 8 | ||||
| -rw-r--r-- | openstackclient/tests/test_shell.py | 8 | ||||
| -rw-r--r-- | openstackclient/tests/volume/v1/test_qos_specs.py | 2 | ||||
| -rw-r--r-- | openstackclient/tests/volume/v2/test_qos_specs.py | 2 |
11 files changed, 167 insertions, 109 deletions
diff --git a/openstackclient/tests/common/test_clientmanager.py b/openstackclient/tests/common/test_clientmanager.py index 4e2f46b4..e86ef509 100644 --- a/openstackclient/tests/common/test_clientmanager.py +++ b/openstackclient/tests/common/test_clientmanager.py @@ -54,6 +54,7 @@ class FakeOptions(object): self.identity_api_version = '2.0' self.timing = None self.region_name = None + self.endpoint_type = None self.url = None self.auth = {} self.default_domain = 'default' @@ -123,6 +124,8 @@ class TestClientManager(utils.TestCase): auth_url=fakes.AUTH_URL, ), auth_type='v2token', + endpoint_type=fakes.ENDPOINT_TYPE, + region_name=fakes.REGION_NAME, ), api_version=API_VERSION, verify=True @@ -137,6 +140,14 @@ class TestClientManager(utils.TestCase): client_manager.auth, auth_v2.Token, ) + self.assertEqual( + fakes.ENDPOINT_TYPE, + client_manager._endpoint_type, + ) + self.assertEqual( + fakes.REGION_NAME, + client_manager._region_name, + ) self.assertFalse(client_manager._insecure) self.assertTrue(client_manager._verify) diff --git a/openstackclient/tests/common/test_utils.py b/openstackclient/tests/common/test_utils.py index d9f5b7a5..a25a5ba5 100644 --- a/openstackclient/tests/common/test_utils.py +++ b/openstackclient/tests/common/test_utils.py @@ -159,6 +159,16 @@ class TestUtils(test_utils.TestCase): self.assertFalse(utils.wait_for_delete(manager, res_id)) self.assertFalse(mock_sleep.called) + def test_build_kwargs_dict_value_set(self): + self.assertEqual({'arg_bla': 'bla'}, + utils.build_kwargs_dict('arg_bla', 'bla')) + + def test_build_kwargs_dict_value_None(self): + self.assertEqual({}, utils.build_kwargs_dict('arg_bla', None)) + + def test_build_kwargs_dict_value_empty_str(self): + self.assertEqual({}, utils.build_kwargs_dict('arg_bla', '')) + class NoUniqueMatch(Exception): pass diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py index a8a1936d..4df18f05 100644 --- a/openstackclient/tests/compute/v2/test_server.py +++ b/openstackclient/tests/compute/v2/test_server.py @@ -15,7 +15,9 @@ import copy import mock +import testtools +from openstackclient.common import exceptions from openstackclient.common import utils as common_utils from openstackclient.compute.v2 import server from openstackclient.tests.compute.v2 import fakes as compute_fakes @@ -250,7 +252,7 @@ class TestServerCreate(TestServer): mock_open.assert_called_with('userdata.sh') # Ensure the userdata file is closed - mock_file.close.assert_called() + mock_file.close.assert_called_with() # Set expected values kwargs = dict( @@ -580,3 +582,55 @@ class TestServerResize(TestServer): self.servers_mock.revert_resize.assert_called_with( self.servers_get_return_value, ) + + +class TestServerGeneral(testtools.TestCase): + OLD = { + 'private': [ + { + 'addr': '192.168.0.3', + 'version': 4, + }, + ] + } + NEW = { + 'foo': [ + { + 'OS-EXT-IPS-MAC:mac_addr': 'fa:16:3e:93:b3:01', + 'version': 4, + 'addr': '10.10.1.2', + 'OS-EXT-IPS:type': 'fixed', + }, + { + 'OS-EXT-IPS-MAC:mac_addr': 'fa:16:3e:93:b3:02', + 'version': 6, + 'addr': '0:0:0:0:0:ffff:a0a:103', + 'OS-EXT-IPS:type': 'floating', + }, + ] + } + ODD = {'jenkins': ['10.3.3.18', '124.12.125.4']} + + def test_get_ip_address(self): + self.assertEqual("192.168.0.3", + server._get_ip_address(self.OLD, 'private', [4, 6])) + self.assertEqual("10.10.1.2", + server._get_ip_address(self.NEW, 'fixed', [4, 6])) + self.assertEqual("10.10.1.2", + server._get_ip_address(self.NEW, 'private', [4, 6])) + self.assertEqual("0:0:0:0:0:ffff:a0a:103", + server._get_ip_address(self.NEW, 'public', [6])) + self.assertEqual("0:0:0:0:0:ffff:a0a:103", + server._get_ip_address(self.NEW, 'floating', [6])) + self.assertEqual("124.12.125.4", + server._get_ip_address(self.ODD, 'public', [4, 6])) + self.assertEqual("10.3.3.18", + server._get_ip_address(self.ODD, 'private', [4, 6])) + self.assertRaises(exceptions.CommandError, + server._get_ip_address, self.NEW, 'public', [4]) + self.assertRaises(exceptions.CommandError, + server._get_ip_address, self.NEW, 'admin', [4]) + self.assertRaises(exceptions.CommandError, + server._get_ip_address, self.OLD, 'public', [4, 6]) + self.assertRaises(exceptions.CommandError, + server._get_ip_address, self.OLD, 'private', [6]) diff --git a/openstackclient/tests/fakes.py b/openstackclient/tests/fakes.py index 323f9543..a9322ec3 100644 --- a/openstackclient/tests/fakes.py +++ b/openstackclient/tests/fakes.py @@ -26,6 +26,8 @@ AUTH_URL = "http://0.0.0.0" USERNAME = "itchy" PASSWORD = "scratchy" PROJECT_NAME = "poochie" +REGION_NAME = "richie" +ENDPOINT_TYPE = "catchy" TEST_RESPONSE_DICT = fixture.V2Token(token_id=AUTH_TOKEN, user_name=USERNAME) diff --git a/openstackclient/tests/identity/v2_0/test_catalog.py b/openstackclient/tests/identity/v2_0/test_catalog.py index 50445954..fe13d78d 100644 --- a/openstackclient/tests/identity/v2_0/test_catalog.py +++ b/openstackclient/tests/identity/v2_0/test_catalog.py @@ -27,11 +27,13 @@ class TestCatalog(utils.TestCommand): { 'region': 'one', 'publicURL': 'https://public.one.example.com', + 'internalURL': 'https://internal.one.example.com', 'adminURL': 'https://admin.one.example.com', }, { 'region': 'two', 'publicURL': 'https://public.two.example.com', + 'internalURL': 'https://internal.two.example.com', 'adminURL': 'https://admin.two.example.com', }, ], @@ -74,11 +76,11 @@ class TestCatalogList(TestCatalog): 'supernova', 'compute', 'one\n publicURL: https://public.one.example.com\n ' - 'internalURL: https://public.one.example.com\n ' - 'adminURL: https://public.one.example.com\n' + 'internalURL: https://internal.one.example.com\n ' + 'adminURL: https://admin.one.example.com\n' 'two\n publicURL: https://public.two.example.com\n ' - 'internalURL: https://public.two.example.com\n ' - 'adminURL: https://public.two.example.com\n', + 'internalURL: https://internal.two.example.com\n ' + 'adminURL: https://admin.two.example.com\n', ), ) self.assertEqual(datalist, tuple(data)) @@ -108,11 +110,11 @@ class TestCatalogShow(TestCatalog): self.assertEqual(collist, columns) datalist = ( 'one\n publicURL: https://public.one.example.com\n ' - 'internalURL: https://public.one.example.com\n ' - 'adminURL: https://public.one.example.com\n' + 'internalURL: https://internal.one.example.com\n ' + 'adminURL: https://admin.one.example.com\n' 'two\n publicURL: https://public.two.example.com\n ' - 'internalURL: https://public.two.example.com\n ' - 'adminURL: https://public.two.example.com\n', + 'internalURL: https://internal.two.example.com\n ' + 'adminURL: https://admin.two.example.com\n', 'qwertyuiop', 'supernova', 'compute', diff --git a/openstackclient/tests/image/v1/test_image.py b/openstackclient/tests/image/v1/test_image.py index eec8cfa5..a79df8b4 100644 --- a/openstackclient/tests/image/v1/test_image.py +++ b/openstackclient/tests/image/v1/test_image.py @@ -178,8 +178,8 @@ class TestImageCreate(TestImage): # Ensure the input file is closed mock_file.close.assert_called_with() - # ImageManager.get(name) - self.images_mock.get.assert_called_with(image_fakes.image_name) + # ImageManager.get(name) not to be called since update action exists + self.images_mock.get.assert_not_called() # ImageManager.create(name=, **) self.images_mock.create.assert_called_with( @@ -201,71 +201,6 @@ class TestImageCreate(TestImage): self.assertEqual(image_fakes.IMAGE_columns, columns) self.assertEqual(image_fakes.IMAGE_data, data) - def test_image_create_volume(self): - # Set up VolumeManager Mock - volumes_mock = self.app.client_manager.volume.volumes - volumes_mock.reset_mock() - volumes_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy({'id': 'vol1', 'name': 'volly'}), - loaded=True, - ) - response = { - "id": 'volume_id', - "updated_at": 'updated_at', - "status": 'uploading', - "display_description": 'desc', - "size": 'size', - "volume_type": 'volume_type', - "image_id": 'image1', - "container_format": image.DEFAULT_CONTAINER_FORMAT, - "disk_format": image.DEFAULT_DISK_FORMAT, - "image_name": image_fakes.image_name, - } - full_response = {"os-volume_upload_image": response} - volumes_mock.upload_to_image.return_value = (201, full_response) - - arglist = [ - '--volume', 'volly', - image_fakes.image_name, - ] - verifylist = [ - ('private', False), - ('protected', False), - ('public', False), - ('unprotected', False), - ('volume', 'volly'), - ('force', False), - ('name', image_fakes.image_name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # DisplayCommandBase.take_action() returns two tuples - columns, data = self.cmd.take_action(parsed_args) - - # VolumeManager.upload_to_image(volume, force, image_name, - # container_format, disk_format) - volumes_mock.upload_to_image.assert_called_with( - 'vol1', - False, - image_fakes.image_name, - 'bare', - 'raw', - ) - - # ImageManager.update(image_id, remove_props=, **) - self.images_mock.update.assert_called_with( - image_fakes.image_id, - name=image_fakes.image_name, - container_format=image.DEFAULT_CONTAINER_FORMAT, - disk_format=image.DEFAULT_DISK_FORMAT, - properties=image_fakes.image_properties, - volume='volly', - ) - - self.assertEqual(image_fakes.IMAGE_columns, columns) - self.assertEqual(image_fakes.IMAGE_data, data) - class TestImageDelete(TestImage): @@ -669,6 +604,69 @@ class TestImageSet(TestImage): **kwargs ) + def test_image_update_volume(self): + # Set up VolumeManager Mock + volumes_mock = self.app.client_manager.volume.volumes + volumes_mock.reset_mock() + volumes_mock.get.return_value = fakes.FakeResource( + None, + copy.deepcopy({'id': 'vol1', 'name': 'volly'}), + loaded=True, + ) + response = { + "id": 'volume_id', + "updated_at": 'updated_at', + "status": 'uploading', + "display_description": 'desc', + "size": 'size', + "volume_type": 'volume_type', + "container_format": image.DEFAULT_CONTAINER_FORMAT, + "disk_format": image.DEFAULT_DISK_FORMAT, + "image": image_fakes.image_name, + } + full_response = {"os-volume_upload_image": response} + volumes_mock.upload_to_image.return_value = (201, full_response) + + arglist = [ + '--volume', 'volly', + '--name', 'updated_image', + image_fakes.image_name, + ] + verifylist = [ + ('private', False), + ('protected', False), + ('public', False), + ('unprotected', False), + ('volume', 'volly'), + ('force', False), + ('name', 'updated_image'), + ('image', image_fakes.image_name), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # DisplayCommandBase.take_action() returns two tuples + columns, data = self.cmd.take_action(parsed_args) + + # VolumeManager.upload_to_image(volume, force, image_name, + # container_format, disk_format) + volumes_mock.upload_to_image.assert_called_with( + 'vol1', + False, + image_fakes.image_name, + '', + '', + ) + + # ImageManager.update(image_id, remove_props=, **) + self.images_mock.update.assert_called_with( + image_fakes.image_id, + name='updated_image', + volume='volly', + ) + + self.assertEqual(image_fakes.IMAGE_columns, columns) + self.assertEqual(image_fakes.IMAGE_data, data) + class TestImageShow(TestImage): diff --git a/openstackclient/tests/network/common.py b/openstackclient/tests/network/common.py index 7162f97b..31fde257 100644 --- a/openstackclient/tests/network/common.py +++ b/openstackclient/tests/network/common.py @@ -33,30 +33,3 @@ class TestNetworkBase(utils.TestCommand): service_type="network", ) self.api = self.app.client_manager.network.api - - given_show_options = [ - '-f', - 'shell', - '-c', - 'id', - '--prefix', - 'TST', - ] - then_show_options = [ - ('formatter', 'shell'), - ('columns', ['id']), - ('prefix', 'TST'), - ] - given_list_options = [ - '-f', - 'csv', - '-c', - 'id', - '--quote', - 'all', - ] - then_list_options = [ - ('formatter', 'csv'), - ('columns', ['id']), - ('quote_mode', 'all'), - ] diff --git a/openstackclient/tests/network/v2/test_network.py b/openstackclient/tests/network/v2/test_network.py index 36133a3b..87a44066 100644 --- a/openstackclient/tests/network/v2/test_network.py +++ b/openstackclient/tests/network/v2/test_network.py @@ -92,14 +92,14 @@ class TestCreateNetwork(common.TestNetworkBase): "--project", identity_fakes_v3.project_name, "--project-domain", identity_fakes_v3.domain_name, FAKE_NAME, - ] + self.given_show_options + ] verifylist = [ ('admin_state', False), ('shared', True), ('project', identity_fakes_v3.project_name), ('project_domain', identity_fakes_v3.domain_name), ('name', FAKE_NAME), - ] + self.then_show_options + ] mocker = mock.Mock(return_value=copy.deepcopy(RESPONSE)) self.app.client_manager.network.create_network = mocker identity_client = identity_fakes_v3.FakeIdentityv3Client( @@ -519,8 +519,8 @@ class TestShowNetwork(common.TestNetworkBase): self.assertEqual(FILTERED, result) def test_show_all_options(self, n_mock): - arglist = [FAKE_NAME] + self.given_show_options - verifylist = [('identifier', FAKE_NAME)] + self.then_show_options + arglist = [FAKE_NAME] + verifylist = [('identifier', FAKE_NAME)] n_mock.return_value = copy.deepcopy(RECORD) self.cmd = network.ShowNetwork(self.app, self.namespace) diff --git a/openstackclient/tests/test_shell.py b/openstackclient/tests/test_shell.py index b080ae91..674d8345 100644 --- a/openstackclient/tests/test_shell.py +++ b/openstackclient/tests/test_shell.py @@ -38,6 +38,7 @@ DEFAULT_REGION_NAME = "ZZ9_Plural_Z_Alpha" DEFAULT_TOKEN = "token" DEFAULT_SERVICE_URL = "http://127.0.0.1:8771/v3.0/" DEFAULT_AUTH_PLUGIN = "v2password" +DEFAULT_ENDPOINT_TYPE = "internal" DEFAULT_COMPUTE_API_VERSION = "2" DEFAULT_IDENTITY_API_VERSION = "2" @@ -61,6 +62,7 @@ CLOUD_1 = { }, 'region_name': 'occ-cloud', 'donut': 'glazed', + 'endpoint_type': 'public', } } } @@ -104,6 +106,7 @@ global_options = { '--os-default-domain': (DEFAULT_DOMAIN_NAME, True, True), '--os-cacert': ('/dev/null', True, True), '--timing': (True, True, False), + '--os-endpoint-type': (DEFAULT_ENDPOINT_TYPE, True, True) } auth_options = { @@ -123,6 +126,7 @@ auth_options = { '--os-auth-type': ("v2password", True, True), '--os-token': (DEFAULT_TOKEN, True, True), '--os-url': (DEFAULT_SERVICE_URL, True, True), + '--os-endpoint-type': (DEFAULT_ENDPOINT_TYPE, True, True), } @@ -608,6 +612,10 @@ class TestShellCli(TestShell): 'glazed', _shell.cloud.config['donut'], ) + self.assertEqual( + 'public', + _shell.cloud.config['endpoint_type'], + ) @mock.patch("os_client_config.config.OpenStackConfig._load_vendor_file") @mock.patch("os_client_config.config.OpenStackConfig._load_config_file") diff --git a/openstackclient/tests/volume/v1/test_qos_specs.py b/openstackclient/tests/volume/v1/test_qos_specs.py index 0a5d14e6..226fe673 100644 --- a/openstackclient/tests/volume/v1/test_qos_specs.py +++ b/openstackclient/tests/volume/v1/test_qos_specs.py @@ -312,7 +312,7 @@ class TestQosList(TestQos): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.qos_mock.list.assert_called() + self.qos_mock.list.assert_called_with() collist = ( 'ID', diff --git a/openstackclient/tests/volume/v2/test_qos_specs.py b/openstackclient/tests/volume/v2/test_qos_specs.py index 92b3f179..6a550988 100644 --- a/openstackclient/tests/volume/v2/test_qos_specs.py +++ b/openstackclient/tests/volume/v2/test_qos_specs.py @@ -312,7 +312,7 @@ class TestQosList(TestQos): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.qos_mock.list.assert_called() + self.qos_mock.list.assert_called_with() collist = ( 'ID', |
