diff options
author | Stephen Finucane <sfinucan@redhat.com> | 2023-05-08 10:48:54 +0100 |
---|---|---|
committer | Stephen Finucane <sfinucan@redhat.com> | 2023-05-10 10:51:30 +0100 |
commit | 28ffa2bf9f017212da5eb84b0cf74df62e2f5eb9 (patch) | |
tree | e272d2bd82826a10df7e00855e35c78a27d2b6c9 /openstackclient/tests | |
parent | 5cb16aebcc53033ff1fd785b957eef0b7c9773e2 (diff) | |
download | python-openstackclient-28ffa2bf9f017212da5eb84b0cf74df62e2f5eb9.tar.gz |
Blacken openstackclient.compute
Black used with the '-l 79 -S' flags.
A future change will ignore this commit in git-blame history by adding a
'git-blame-ignore-revs' file.
Change-Id: I9af45c062d179ab3dc2a5e969e1c467932753a2b
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Diffstat (limited to 'openstackclient/tests')
26 files changed, 3947 insertions, 3403 deletions
diff --git a/openstackclient/tests/functional/compute/v2/common.py b/openstackclient/tests/functional/compute/v2/common.py index 7eca4603..885dc1d9 100644 --- a/openstackclient/tests/functional/compute/v2/common.py +++ b/openstackclient/tests/functional/compute/v2/common.py @@ -53,9 +53,10 @@ class ComputeTestCase(base.TestCase): images = cls.openstack("image list", parse_output=True) server_image = None for image in images: - if (image['Name'].startswith('cirros-') and - (image['Name'].endswith('-uec') or - image['Name'].endswith('-disk'))): + if image['Name'].startswith('cirros-') and ( + image['Name'].endswith('-uec') + or image['Name'].endswith('-disk') + ): server_image = image['Name'] break return server_image @@ -83,12 +84,17 @@ class ComputeTestCase(base.TestCase): self.network_arg = self.get_network() name = name or uuid.uuid4().hex cmd_output = self.openstack( - 'server create ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + - self.network_arg + ' ' + - '--wait ' + - name, + 'server create ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + self.network_arg + + ' ' + + '--wait ' + + name, parse_output=True, ) self.assertIsNotNone(cmd_output["id"]) @@ -106,11 +112,11 @@ class ComputeTestCase(base.TestCase): self.assertOutput('', raw_output) def wait_for_status( - self, - name, - expected_status='ACTIVE', - wait=900, - interval=10, + self, + name, + expected_status='ACTIVE', + wait=900, + interval=10, ): """Wait until server reaches expected status""" # TODO(thowe): Add a server wait command to osc @@ -118,24 +124,24 @@ class ComputeTestCase(base.TestCase): total_sleep = 0 while total_sleep < wait: cmd_output = self.openstack( - 'server show ' + - name, + 'server show ' + name, parse_output=True, ) status = cmd_output['status'] if status == expected_status: - print('Server {} now has status {}'.format( - name, status)) + print('Server {} now has status {}'.format(name, status)) break - print('Server {}: Waiting for {}, current status: {}'.format( - name, expected_status, status)) + print( + 'Server {}: Waiting for {}, current status: {}'.format( + name, expected_status, status + ) + ) self.assertNotIn(status, failures) time.sleep(interval) total_sleep += interval cmd_output = self.openstack( - 'server show ' + - name, + 'server show ' + name, parse_output=True, ) status = cmd_output['status'] diff --git a/openstackclient/tests/functional/compute/v2/test_aggregate.py b/openstackclient/tests/functional/compute/v2/test_aggregate.py index 80750faf..d5d7c579 100644 --- a/openstackclient/tests/functional/compute/v2/test_aggregate.py +++ b/openstackclient/tests/functional/compute/v2/test_aggregate.py @@ -27,24 +27,12 @@ class AggregateTests(base.TestCase): fail_ok=True, ) cmd_output = self.openstack( - 'aggregate create ' + - '--zone nova ' + - '--property a=b ' + - name1, + 'aggregate create ' + '--zone nova ' + '--property a=b ' + name1, parse_output=True, ) - self.assertEqual( - name1, - cmd_output['name'] - ) - self.assertEqual( - 'nova', - cmd_output['availability_zone'] - ) - self.assertIn( - 'a', - cmd_output['properties'] - ) + self.assertEqual(name1, cmd_output['name']) + self.assertEqual('nova', cmd_output['availability_zone']) + self.assertIn('a', cmd_output['properties']) cmd_output = self.openstack( 'aggregate show ' + name1, parse_output=True, @@ -58,19 +46,11 @@ class AggregateTests(base.TestCase): fail_ok=True, ) cmd_output = self.openstack( - 'aggregate create ' + - '--zone external ' + - name2, + 'aggregate create ' + '--zone external ' + name2, parse_output=True, ) - self.assertEqual( - name2, - cmd_output['name'] - ) - self.assertEqual( - 'external', - cmd_output['availability_zone'] - ) + self.assertEqual(name2, cmd_output['name']) + self.assertEqual('external', cmd_output['availability_zone']) cmd_output = self.openstack( 'aggregate show ' + name2, parse_output=True, @@ -85,36 +65,25 @@ class AggregateTests(base.TestCase): fail_ok=True, ) raw_output = self.openstack( - 'aggregate set ' + - '--name ' + name3 + ' ' + - '--zone internal ' + - '--no-property ' + - '--property c=d ' + - name1 + 'aggregate set ' + + '--name ' + + name3 + + ' ' + + '--zone internal ' + + '--no-property ' + + '--property c=d ' + + name1 ) self.assertOutput('', raw_output) cmd_output = self.openstack( - 'aggregate show ' + - name3, + 'aggregate show ' + name3, parse_output=True, ) - self.assertEqual( - name3, - cmd_output['name'] - ) - self.assertEqual( - 'internal', - cmd_output['availability_zone'] - ) - self.assertIn( - 'c', - cmd_output['properties'] - ) - self.assertNotIn( - 'a', - cmd_output['properties'] - ) + self.assertEqual(name3, cmd_output['name']) + self.assertEqual('internal', cmd_output['availability_zone']) + self.assertIn('c', cmd_output['properties']) + self.assertNotIn('a', cmd_output['properties']) # Test aggregate list cmd_output = self.openstack( @@ -145,28 +114,18 @@ class AggregateTests(base.TestCase): # Test unset raw_output = self.openstack( - 'aggregate unset ' + - '--property c ' + - name3 + 'aggregate unset ' + '--property c ' + name3 ) self.assertOutput('', raw_output) cmd_output = self.openstack( - 'aggregate show ' + - name3, + 'aggregate show ' + name3, parse_output=True, ) - self.assertNotIn( - "c='d'", - cmd_output['properties'] - ) + self.assertNotIn("c='d'", cmd_output['properties']) # test aggregate delete - del_output = self.openstack( - 'aggregate delete ' + - name3 + ' ' + - name2 - ) + del_output = self.openstack('aggregate delete ' + name3 + ' ' + name2) self.assertOutput('', del_output) def test_aggregate_add_and_remove_host(self): @@ -185,31 +144,18 @@ class AggregateTests(base.TestCase): name = uuid.uuid4().hex self.addCleanup(self.openstack, 'aggregate delete ' + name) - self.openstack( - 'aggregate create ' + - name - ) + self.openstack('aggregate create ' + name) # Test add host cmd_output = self.openstack( - 'aggregate add host ' + - name + ' ' + - host_name, + 'aggregate add host ' + name + ' ' + host_name, parse_output=True, ) - self.assertIn( - host_name, - cmd_output['hosts'] - ) + self.assertIn(host_name, cmd_output['hosts']) # Test remove host cmd_output = self.openstack( - 'aggregate remove host ' + - name + ' ' + - host_name, + 'aggregate remove host ' + name + ' ' + host_name, parse_output=True, ) - self.assertNotIn( - host_name, - cmd_output['hosts'] - ) + self.assertNotIn(host_name, cmd_output['hosts']) diff --git a/openstackclient/tests/functional/compute/v2/test_flavor.py b/openstackclient/tests/functional/compute/v2/test_flavor.py index 98bf1ca5..227e21d5 100644 --- a/openstackclient/tests/functional/compute/v2/test_flavor.py +++ b/openstackclient/tests/functional/compute/v2/test_flavor.py @@ -42,21 +42,25 @@ class FlavorTests(base.TestCase): """Test create w/project, delete multiple""" name1 = uuid.uuid4().hex cmd_output = self.openstack( - "flavor create " + - "--project " + self.PROJECT_NAME + " " + - "--private " + - name1, + "flavor create " + + "--project " + + self.PROJECT_NAME + + " " + + "--private " + + name1, parse_output=True, ) self.assertIsNotNone(cmd_output["id"]) name2 = uuid.uuid4().hex cmd_output = self.openstack( - "flavor create " + - "--id qaz " + - "--project " + self.PROJECT_NAME + " " + - "--private " + - name2, + "flavor create " + + "--id qaz " + + "--project " + + self.PROJECT_NAME + + " " + + "--private " + + name2, parse_output=True, ) self.assertIsNotNone(cmd_output["id"]) @@ -74,10 +78,7 @@ class FlavorTests(base.TestCase): """Test create defaults, list filters, delete""" name1 = uuid.uuid4().hex cmd_output = self.openstack( - "flavor create " + - "--property a=b " + - "--property c=d " + - name1, + "flavor create " + "--property a=b " + "--property c=d " + name1, parse_output=True, ) self.addCleanup(self.openstack, "flavor delete " + name1) @@ -89,13 +90,13 @@ class FlavorTests(base.TestCase): name2 = uuid.uuid4().hex cmd_output = self.openstack( - "flavor create " + - "--id qaz " + - "--ram 123 " + - "--private " + - "--property a=b2 " + - "--property b=d2 " + - name2, + "flavor create " + + "--id qaz " + + "--ram 123 " + + "--private " + + "--property a=b2 " + + "--property b=d2 " + + name2, parse_output=True, ) self.addCleanup(self.openstack, "flavor delete " + name2) @@ -135,8 +136,7 @@ class FlavorTests(base.TestCase): # Test list --long cmd_output = self.openstack( - "flavor list " + - "--long", + "flavor list " + "--long", parse_output=True, ) # We have list of complex json objects @@ -154,8 +154,7 @@ class FlavorTests(base.TestCase): # Test list --public cmd_output = self.openstack( - "flavor list " + - "--public", + "flavor list " + "--public", parse_output=True, ) col_name = [x["Name"] for x in cmd_output] @@ -164,8 +163,7 @@ class FlavorTests(base.TestCase): # Test list --private cmd_output = self.openstack( - "flavor list " + - "--private", + "flavor list " + "--private", parse_output=True, ) col_name = [x["Name"] for x in cmd_output] @@ -174,8 +172,7 @@ class FlavorTests(base.TestCase): # Test list --all cmd_output = self.openstack( - "flavor list " + - "--all", + "flavor list " + "--all", parse_output=True, ) col_name = [x["Name"] for x in cmd_output] @@ -186,14 +183,14 @@ class FlavorTests(base.TestCase): """Test create defaults, list filters, delete""" name1 = uuid.uuid4().hex cmd_output = self.openstack( - "flavor create " + - "--id qaz " + - "--ram 123 " + - "--disk 20 " + - "--private " + - "--property a=first " + - "--property b=second " + - name1, + "flavor create " + + "--id qaz " + + "--ram 123 " + + "--disk 20 " + + "--private " + + "--property a=first " + + "--property b=second " + + name1, parse_output=True, ) self.addCleanup(self.openstack, "flavor delete " + name1) @@ -223,42 +220,30 @@ class FlavorTests(base.TestCase): ) raw_output = self.openstack( - "flavor set " + - "--property a='third and 10' " + - "--property g=fourth " + - name1 + "flavor set " + + "--property a='third and 10' " + + "--property g=fourth " + + name1 ) self.assertEqual('', raw_output) cmd_output = self.openstack( - "flavor show " + - name1, + "flavor show " + name1, parse_output=True, ) self.assertEqual( "qaz", cmd_output["id"], ) - self.assertEqual( - 'third and 10', - cmd_output['properties']['a']) - self.assertEqual( - 'second', - cmd_output['properties']['b']) - self.assertEqual( - 'fourth', - cmd_output['properties']['g']) + self.assertEqual('third and 10', cmd_output['properties']['a']) + self.assertEqual('second', cmd_output['properties']['b']) + self.assertEqual('fourth', cmd_output['properties']['g']) - raw_output = self.openstack( - "flavor unset " + - "--property b " + - name1 - ) + raw_output = self.openstack("flavor unset " + "--property b " + name1) self.assertEqual('', raw_output) cmd_output = self.openstack( - "flavor show " + - name1, + "flavor show " + name1, parse_output=True, ) diff --git a/openstackclient/tests/functional/compute/v2/test_hypervisor.py b/openstackclient/tests/functional/compute/v2/test_hypervisor.py index 9bc23280..7e90b743 100644 --- a/openstackclient/tests/functional/compute/v2/test_hypervisor.py +++ b/openstackclient/tests/functional/compute/v2/test_hypervisor.py @@ -21,32 +21,32 @@ class HypervisorTests(base.TestCase): def test_hypervisor_list(self): """Test create defaults, list filters, delete""" # Test list - cmd_output = json.loads(self.openstack( - "hypervisor list -f json --os-compute-api-version 2.1" - )) + cmd_output = json.loads( + self.openstack( + "hypervisor list -f json --os-compute-api-version 2.1" + ) + ) ids1 = [x["ID"] for x in cmd_output] self.assertIsNotNone(cmd_output) - cmd_output = json.loads(self.openstack( - "hypervisor list -f json" - )) + cmd_output = json.loads(self.openstack("hypervisor list -f json")) ids2 = [x["ID"] for x in cmd_output] self.assertIsNotNone(cmd_output) # Show test - old microversion for i in ids1: - cmd_output = json.loads(self.openstack( - "hypervisor show %s -f json " - " --os-compute-api-version 2.1" - % (i) - )) + cmd_output = json.loads( + self.openstack( + "hypervisor show %s -f json " + " --os-compute-api-version 2.1" % (i) + ) + ) self.assertIsNotNone(cmd_output) # When we list hypervisors with older MV we get ids as integers. We # need to verify that show finds resources independently # Show test - latest microversion for i in ids2: - cmd_output = json.loads(self.openstack( - "hypervisor show %s -f json" - % (i) - )) + cmd_output = json.loads( + self.openstack("hypervisor show %s -f json" % (i)) + ) self.assertIsNotNone(cmd_output) diff --git a/openstackclient/tests/functional/compute/v2/test_keypair.py b/openstackclient/tests/functional/compute/v2/test_keypair.py index e1d12977..148e9451 100644 --- a/openstackclient/tests/functional/compute/v2/test_keypair.py +++ b/openstackclient/tests/functional/compute/v2/test_keypair.py @@ -68,8 +68,11 @@ class KeypairTests(KeypairBase): 1) Create keypair in setUp 2) Try to create duplicate keypair with the same name """ - self.assertRaises(exceptions.CommandFailed, - self.openstack, 'keypair create ' + self.KPName) + self.assertRaises( + exceptions.CommandFailed, + self.openstack, + 'keypair create ' + self.KPName, + ) def test_keypair_create_noname(self): """Try to create keypair without name. @@ -77,8 +80,9 @@ class KeypairTests(KeypairBase): Test steps: 1) Try to create keypair without a name """ - self.assertRaises(exceptions.CommandFailed, - self.openstack, 'keypair create') + self.assertRaises( + exceptions.CommandFailed, self.openstack, 'keypair create' + ) def test_keypair_create_public_key(self): """Test for create keypair with --public-key option. @@ -118,11 +122,13 @@ class KeypairTests(KeypairBase): self.assertIsNotNone(cmd_output.get('fingerprint')) pk_content = f.read() self.assertInOutput( - '-----BEGIN OPENSSH PRIVATE KEY-----', pk_content, + '-----BEGIN OPENSSH PRIVATE KEY-----', + pk_content, ) self.assertRegex(pk_content, "[0-9A-Za-z+/]+[=]{0,3}\n") self.assertInOutput( - '-----END OPENSSH PRIVATE KEY-----', pk_content, + '-----END OPENSSH PRIVATE KEY-----', + pk_content, ) def test_keypair_create(self): @@ -148,8 +154,11 @@ class KeypairTests(KeypairBase): 1) Create keypair in setUp 2) Try to delete not existing keypair """ - self.assertRaises(exceptions.CommandFailed, - self.openstack, 'keypair delete not_existing') + self.assertRaises( + exceptions.CommandFailed, + self.openstack, + 'keypair delete not_existing', + ) def test_keypair_delete(self): """Test keypair delete command. diff --git a/openstackclient/tests/functional/compute/v2/test_server.py b/openstackclient/tests/functional/compute/v2/test_server.py index 05945a02..7ce1ddcb 100644 --- a/openstackclient/tests/functional/compute/v2/test_server.py +++ b/openstackclient/tests/functional/compute/v2/test_server.py @@ -52,16 +52,14 @@ class ServerTests(common.ComputeTestCase): self.assertEqual("", raw_output) self.wait_for_status(name2, "PAUSED") cmd_output = self.openstack( - 'server list ' + - '--status ACTIVE', + 'server list ' + '--status ACTIVE', parse_output=True, ) col_name = [x["Name"] for x in cmd_output] self.assertIn(name1, col_name) self.assertNotIn(name2, col_name) cmd_output = self.openstack( - 'server list ' + - '--status PAUSED', + 'server list ' + '--status PAUSED', parse_output=True, ) col_name = [x["Name"] for x in cmd_output] @@ -112,8 +110,9 @@ class ServerTests(common.ComputeTestCase): parse_output=True, ) except exceptions.CommandFailed as e: - self.assertIn('marker [%s] not found' % (name2), - e.stderr.decode('utf-8')) + self.assertIn( + 'marker [%s] not found' % (name2), e.stderr.decode('utf-8') + ) def test_server_list_with_changes_before(self): """Test server list. @@ -132,8 +131,7 @@ class ServerTests(common.ComputeTestCase): server_name3 = cmd_output['name'] cmd_output = self.openstack( - '--os-compute-api-version 2.66 ' + - 'server list ' + '--os-compute-api-version 2.66 ' + 'server list ' '--changes-before ' + updated_at2, parse_output=True, ) @@ -158,8 +156,7 @@ class ServerTests(common.ComputeTestCase): server_name3 = cmd_output['name'] cmd_output = self.openstack( - 'server list ' - '--changes-since ' + updated_at2, + 'server list ' '--changes-since ' + updated_at2, parse_output=True, ) @@ -184,10 +181,12 @@ class ServerTests(common.ComputeTestCase): updated_at3 = cmd_output['updated'] cmd_output = self.openstack( - '--os-compute-api-version 2.66 ' + - 'server list ' + - '--changes-since ' + updated_at2 + - ' --changes-before ' + updated_at3, + '--os-compute-api-version 2.66 ' + + 'server list ' + + '--changes-since ' + + updated_at2 + + ' --changes-before ' + + updated_at3, parse_output=True, ) @@ -204,8 +203,7 @@ class ServerTests(common.ComputeTestCase): # Have a look at some other fields flavor = self.openstack( - 'flavor show ' + - self.flavor_name, + 'flavor show ' + self.flavor_name, parse_output=True, ) self.assertEqual( @@ -217,8 +215,7 @@ class ServerTests(common.ComputeTestCase): cmd_output["flavor"], ) image = self.openstack( - 'image show ' + - self.image_name, + 'image show ' + self.image_name, parse_output=True, ) self.assertEqual( @@ -232,15 +229,12 @@ class ServerTests(common.ComputeTestCase): # Test properties set raw_output = self.openstack( - 'server set ' + - '--property a=b --property c=d ' + - name + 'server set ' + '--property a=b --property c=d ' + name ) self.assertOutput('', raw_output) cmd_output = self.openstack( - 'server show ' + - name, + 'server show ' + name, parse_output=True, ) # Really, shouldn't this be a list? @@ -249,14 +243,9 @@ class ServerTests(common.ComputeTestCase): cmd_output['properties'], ) - raw_output = self.openstack( - 'server unset ' + - '--property a ' + - name - ) + raw_output = self.openstack('server unset ' + '--property a ' + name) cmd_output = self.openstack( - 'server show ' + - name, + 'server show ' + name, parse_output=True, ) self.assertEqual( @@ -267,14 +256,11 @@ class ServerTests(common.ComputeTestCase): # Test set --name new_name = uuid.uuid4().hex raw_output = self.openstack( - 'server set ' + - '--name ' + new_name + ' ' + - name + 'server set ' + '--name ' + new_name + ' ' + name ) self.assertOutput("", raw_output) cmd_output = self.openstack( - 'server show ' + - new_name, + 'server show ' + new_name, parse_output=True, ) self.assertEqual( @@ -283,9 +269,7 @@ class ServerTests(common.ComputeTestCase): ) # Put it back so we clean up properly raw_output = self.openstack( - 'server set ' + - '--name ' + name + ' ' + - new_name + 'server set ' + '--name ' + name + ' ' + new_name ) self.assertOutput("", raw_output) @@ -295,25 +279,25 @@ class ServerTests(common.ComputeTestCase): name = cmd_output['name'] # Simple show - cmd_output = json.loads(self.openstack( - f'server show -f json {name}' - )) + cmd_output = json.loads(self.openstack(f'server show -f json {name}')) self.assertEqual( name, cmd_output["name"], ) # Show diagnostics - cmd_output = json.loads(self.openstack( - f'server show -f json {name} --diagnostics' - )) + cmd_output = json.loads( + self.openstack(f'server show -f json {name} --diagnostics') + ) self.assertIn('driver', cmd_output) # Show topology - cmd_output = json.loads(self.openstack( - f'server show -f json {name} --topology ' - f'--os-compute-api-version 2.78' - )) + cmd_output = json.loads( + self.openstack( + f'server show -f json {name} --topology ' + f'--os-compute-api-version 2.78' + ) + ) self.assertIn('topology', cmd_output) def test_server_actions(self): @@ -358,8 +342,9 @@ class ServerTests(common.ComputeTestCase): self.wait_for_status(name, "ACTIVE") # rescue with image - raw_output = self.openstack('server rescue --image ' + - self.image_name + ' ' + name) + raw_output = self.openstack( + 'server rescue --image ' + self.image_name + ' ' + name + ) self.assertEqual("", raw_output) self.wait_for_status(name, "RESCUE") @@ -403,8 +388,7 @@ class ServerTests(common.ComputeTestCase): # attach ip cmd_output = self.openstack( - 'floating ip create ' + - 'public', + 'floating ip create ' + 'public', parse_output=True, ) @@ -419,14 +403,11 @@ class ServerTests(common.ComputeTestCase): self.assertNotEqual('', cmd_output['id']) self.assertNotEqual('', floating_ip) self.addCleanup( - self.openstack, - 'floating ip delete ' + str(cmd_output['id']) + self.openstack, 'floating ip delete ' + str(cmd_output['id']) ) raw_output = self.openstack( - 'server add floating ip ' + - name + ' ' + - floating_ip + 'server add floating ip ' + name + ' ' + floating_ip ) self.assertEqual("", raw_output) @@ -436,8 +417,7 @@ class ServerTests(common.ComputeTestCase): wait_time = 0 while wait_time < 60: cmd_output = self.openstack( - 'server show ' + - name, + 'server show ' + name, parse_output=True, ) if floating_ip not in _chain_addresses(cmd_output['addresses']): @@ -455,9 +435,7 @@ class ServerTests(common.ComputeTestCase): # detach ip raw_output = self.openstack( - 'server remove floating ip ' + - name + ' ' + - floating_ip + 'server remove floating ip ' + name + ' ' + floating_ip ) self.assertEqual("", raw_output) @@ -467,8 +445,7 @@ class ServerTests(common.ComputeTestCase): wait_time = 0 while wait_time < 60: cmd_output = self.openstack( - 'server show ' + - name, + 'server show ' + name, parse_output=True, ) if floating_ip in _chain_addresses(cmd_output['addresses']): @@ -480,8 +457,7 @@ class ServerTests(common.ComputeTestCase): break cmd_output = self.openstack( - 'server show ' + - name, + 'server show ' + name, parse_output=True, ) self.assertNotIn( @@ -506,8 +482,7 @@ class ServerTests(common.ComputeTestCase): # get image size cmd_output = self.openstack( - 'image show ' + - self.image_name, + 'image show ' + self.image_name, parse_output=True, ) try: @@ -520,10 +495,14 @@ class ServerTests(common.ComputeTestCase): # create volume from image volume_name = uuid.uuid4().hex cmd_output = self.openstack( - 'volume create ' + - '--image ' + self.image_name + ' ' + - '--size ' + str(image_size) + ' ' + - volume_name, + 'volume create ' + + '--image ' + + self.image_name + + ' ' + + '--size ' + + str(image_size) + + ' ' + + volume_name, parse_output=True, ) self.assertIsNotNone(cmd_output["id"]) @@ -537,9 +516,11 @@ class ServerTests(common.ComputeTestCase): # create empty volume empty_volume_name = uuid.uuid4().hex cmd_output = self.openstack( - 'volume create ' + - '--size ' + str(image_size) + ' ' + - empty_volume_name, + 'volume create ' + + '--size ' + + str(image_size) + + ' ' + + empty_volume_name, parse_output=True, ) self.assertIsNotNone(cmd_output["id"]) @@ -553,13 +534,20 @@ class ServerTests(common.ComputeTestCase): # create server server_name = uuid.uuid4().hex server = self.openstack( - 'server create ' + - '--flavor ' + self.flavor_name + ' ' + - '--volume ' + volume_name + ' ' + - '--block-device-mapping vdb=' + empty_volume_name + ' ' + - self.network_arg + ' ' + - '--wait ' + - server_name, + 'server create ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--volume ' + + volume_name + + ' ' + + '--block-device-mapping vdb=' + + empty_volume_name + + ' ' + + self.network_arg + + ' ' + + '--wait ' + + server_name, parse_output=True, ) self.assertIsNotNone(server["id"]) @@ -579,15 +567,11 @@ class ServerTests(common.ComputeTestCase): 'server list', parse_output=True, ) - self.assertEqual( - v2_server.IMAGE_STRING_FOR_BFV, - servers[0]['Image'] - ) + self.assertEqual(v2_server.IMAGE_STRING_FOR_BFV, servers[0]['Image']) # check volumes cmd_output = self.openstack( - 'volume show ' + - volume_name, + 'volume show ' + volume_name, parse_output=True, ) attachments = cmd_output['attachments'] @@ -609,8 +593,7 @@ class ServerTests(common.ComputeTestCase): # present on the command line. Now we should see the # attachment. cmd_output = self.openstack( - 'volume show ' + - empty_volume_name, + 'volume show ' + empty_volume_name, parse_output=True, ) attachments = cmd_output['attachments'] @@ -635,9 +618,7 @@ class ServerTests(common.ComputeTestCase): # create source empty volume volume_name = uuid.uuid4().hex cmd_output = self.openstack( - 'volume create ' + - '--size 1 ' + - volume_name, + 'volume create ' + '--size 1 ' + volume_name, parse_output=True, ) volume_id = cmd_output["id"] @@ -658,13 +639,19 @@ class ServerTests(common.ComputeTestCase): # create server server_name = uuid.uuid4().hex server = self.openstack( - 'server create ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + - bdm_arg + ' ' + - self.network_arg + ' ' + - '--wait ' + - server_name, + 'server create ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + bdm_arg + + ' ' + + self.network_arg + + ' ' + + '--wait ' + + server_name, parse_output=True, ) self.assertIsNotNone(server["id"]) @@ -677,8 +664,7 @@ class ServerTests(common.ComputeTestCase): # check server volumes_attached, format is # {"volumes_attached": "id='2518bc76-bf0b-476e-ad6b-571973745bb5'",} cmd_output = self.openstack( - 'server show ' + - server_name, + 'server show ' + server_name, parse_output=True, ) volumes_attached = cmd_output['volumes_attached'] @@ -686,8 +672,7 @@ class ServerTests(common.ComputeTestCase): # check volumes cmd_output = self.openstack( - 'volume show ' + - volume_name, + 'volume show ' + volume_name, parse_output=True, ) attachments = cmd_output['attachments'] @@ -723,9 +708,7 @@ class ServerTests(common.ComputeTestCase): # create source empty volume empty_volume_name = uuid.uuid4().hex cmd_output = self.openstack( - 'volume create ' + - '--size 1 ' + - empty_volume_name, + 'volume create ' + '--size 1 ' + empty_volume_name, parse_output=True, ) self.assertIsNotNone(cmd_output["id"]) @@ -736,9 +719,11 @@ class ServerTests(common.ComputeTestCase): # create snapshot of source empty volume empty_snapshot_name = uuid.uuid4().hex cmd_output = self.openstack( - 'volume snapshot create ' + - '--volume ' + empty_volume_name + ' ' + - empty_snapshot_name, + 'volume snapshot create ' + + '--volume ' + + empty_volume_name + + ' ' + + empty_snapshot_name, parse_output=True, ) empty_snapshot_id = cmd_output["id"] @@ -746,10 +731,12 @@ class ServerTests(common.ComputeTestCase): # Deleting volume snapshot take time, so we need to wait until the # snapshot goes. Entries registered by self.addCleanup will be called # in the reverse order, so we need to register wait_for_delete first. - self.addCleanup(volume_wait_for_delete, - 'volume snapshot', empty_snapshot_name) - self.addCleanup(self.openstack, - 'volume snapshot delete ' + empty_snapshot_name) + self.addCleanup( + volume_wait_for_delete, 'volume snapshot', empty_snapshot_name + ) + self.addCleanup( + self.openstack, 'volume snapshot delete ' + empty_snapshot_name + ) self.assertEqual( empty_snapshot_name, cmd_output['name'], @@ -772,13 +759,19 @@ class ServerTests(common.ComputeTestCase): # create server with bdm snapshot server_name = uuid.uuid4().hex server = self.openstack( - 'server create ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + - bdm_arg + ' ' + - self.network_arg + ' ' + - '--wait ' + - server_name, + 'server create ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + bdm_arg + + ' ' + + self.network_arg + + ' ' + + '--wait ' + + server_name, parse_output=True, ) self.assertIsNotNone(server["id"]) @@ -791,8 +784,7 @@ class ServerTests(common.ComputeTestCase): # check server volumes_attached, format is # {"volumes_attached": "id='2518bc76-bf0b-476e-ad6b-571973745bb5'",} cmd_output = self.openstack( - 'server show ' + - server_name, + 'server show ' + server_name, parse_output=True, ) volumes_attached = cmd_output['volumes_attached'] @@ -801,8 +793,7 @@ class ServerTests(common.ComputeTestCase): # check the volume that attached on server cmd_output = self.openstack( - 'volume show ' + - attached_volume_id, + 'volume show ' + attached_volume_id, parse_output=True, ) attachments = cmd_output['attachments'] @@ -826,9 +817,11 @@ class ServerTests(common.ComputeTestCase): 'volume list', parse_output=True, ) - target_volume = [each_volume - for each_volume in cmd_output - if each_volume['ID'] == attached_volume_id] + target_volume = [ + each_volume + for each_volume in cmd_output + if each_volume['ID'] == attached_volume_id + ] if target_volume: # check the attached volume is 'deleting' status self.assertEqual('deleting', target_volume[0]['Status']) @@ -865,8 +858,7 @@ class ServerTests(common.ComputeTestCase): else: # get image ID cmd_output = self.openstack( - 'image show ' + - self.image_name, + 'image show ' + self.image_name, parse_output=True, ) image_id = cmd_output['id'] @@ -889,13 +881,19 @@ class ServerTests(common.ComputeTestCase): # that volume to the server. server_name = uuid.uuid4().hex server = self.openstack( - 'server create ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + - bdm_arg + ' ' + - self.network_arg + ' ' + - '--wait ' + - server_name, + 'server create ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + bdm_arg + + ' ' + + self.network_arg + + ' ' + + '--wait ' + + server_name, parse_output=True, ) self.assertIsNotNone(server["id"]) @@ -908,8 +906,7 @@ class ServerTests(common.ComputeTestCase): # check server volumes_attached, format is # {"volumes_attached": "id='2518bc76-bf0b-476e-ad6b-571973745bb5'",} cmd_output = self.openstack( - 'server show ' + - server_name, + 'server show ' + server_name, parse_output=True, ) volumes_attached = cmd_output['volumes_attached'] @@ -918,8 +915,7 @@ class ServerTests(common.ComputeTestCase): # check the volume that attached on server cmd_output = self.openstack( - 'volume show ' + - attached_volume_id, + 'volume show ' + attached_volume_id, parse_output=True, ) attachments = cmd_output['attachments'] @@ -950,9 +946,11 @@ class ServerTests(common.ComputeTestCase): 'volume list', parse_output=True, ) - target_volume = [each_volume - for each_volume in cmd_output - if each_volume['ID'] == attached_volume_id] + target_volume = [ + each_volume + for each_volume in cmd_output + if each_volume['ID'] == attached_volume_id + ] if target_volume: # check the attached volume is 'deleting' status self.assertEqual('deleting', target_volume[0]['Status']) @@ -975,13 +973,18 @@ class ServerTests(common.ComputeTestCase): # and not delete the volume when the server is deleted. server_name = uuid.uuid4().hex server = self.openstack( - 'server create ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + - '--boot-from-volume 1 ' + # create a 1GB volume from the image - self.network_arg + ' ' + - '--wait ' + - server_name, + 'server create ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + '--boot-from-volume 1 ' + + self.network_arg # create a 1GB volume from the image + + ' ' + + '--wait ' + + server_name, parse_output=True, ) self.assertIsNotNone(server["id"]) @@ -994,8 +997,7 @@ class ServerTests(common.ComputeTestCase): # check server volumes_attached, format is # {"volumes_attached": "id='2518bc76-bf0b-476e-ad6b-571973745bb5'",} cmd_output = self.openstack( - 'server show ' + - server_name, + 'server show ' + server_name, parse_output=True, ) volumes_attached = cmd_output['volumes_attached'] @@ -1012,8 +1014,7 @@ class ServerTests(common.ComputeTestCase): # check the volume that attached on server cmd_output = self.openstack( - 'volume show ' + - volumes_attached[0]["id"], + 'volume show ' + volumes_attached[0]["id"], parse_output=True, ) # The volume size should be what we specified on the command line. @@ -1043,8 +1044,7 @@ class ServerTests(common.ComputeTestCase): # delete server, then check the attached volume was not deleted self.openstack('server delete --wait ' + server_name) cmd_output = self.openstack( - 'volume show ' + - attached_volume_id, + 'volume show ' + attached_volume_id, parse_output=True, ) # check the volume is in 'available' status @@ -1055,12 +1055,16 @@ class ServerTests(common.ComputeTestCase): server_name = uuid.uuid4().hex server = self.openstack( # auto/none enable in nova micro version (v2.37+) - '--os-compute-api-version 2.37 ' + - 'server create ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + - '--nic none ' + - server_name, + '--os-compute-api-version 2.37 ' + + 'server create ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + '--nic none ' + + server_name, parse_output=True, ) self.assertIsNotNone(server["id"]) @@ -1099,14 +1103,24 @@ class ServerTests(common.ComputeTestCase): server_name = uuid.uuid4().hex server = self.openstack( - 'server create ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + + 'server create ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + # Security group id is integer in nova-network, convert to string - '--security-group ' + str(security_group1['id']) + ' ' + - '--security-group ' + security_group2['name'] + ' ' + - self.network_arg + ' ' + - server_name, + '--security-group ' + + str(security_group1['id']) + + ' ' + + '--security-group ' + + security_group2['name'] + + ' ' + + self.network_arg + + ' ' + + server_name, parse_output=True, ) self.addCleanup(self.openstack, 'server delete --wait ' + server_name) @@ -1136,29 +1150,38 @@ class ServerTests(common.ComputeTestCase): try: self.openstack( # auto/none enable in nova micro version (v2.37+) - '--os-compute-api-version 2.37 ' + - 'server create ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + - server_name + '--os-compute-api-version 2.37 ' + + 'server create ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + server_name ) except exceptions.CommandFailed as e: # If we got here, it shouldn't be because a nics value wasn't # provided to the server; it is likely due to something else in # the functional tests like there being multiple available # networks and the test didn't specify a specific network. - self.assertNotIn('nics are required after microversion 2.36', - e.stderr) + self.assertNotIn( + 'nics are required after microversion 2.36', e.stderr + ) def test_server_add_remove_network(self): name = uuid.uuid4().hex cmd_output = self.openstack( - 'server create ' + - '--network private ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + - '--wait ' + - name, + 'server create ' + + '--network private ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + '--wait ' + + name, parse_output=True, ) @@ -1167,8 +1190,7 @@ class ServerTests(common.ComputeTestCase): self.addCleanup(self.openstack, 'server delete --wait ' + name) # add network and check 'public' is in server show - self.openstack( - 'server add network ' + name + ' public') + self.openstack('server add network ' + name + ' public') wait_time = 0 while wait_time < 60: @@ -1209,12 +1231,16 @@ class ServerTests(common.ComputeTestCase): def test_server_add_remove_port(self): name = uuid.uuid4().hex cmd_output = self.openstack( - 'server create ' + - '--network private ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + - '--wait ' + - name, + 'server create ' + + '--network private ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + '--wait ' + + name, parse_output=True, ) @@ -1232,8 +1258,7 @@ class ServerTests(common.ComputeTestCase): self.assertNotIn(port_name, cmd_output) cmd_output = self.openstack( - 'port create ' + - '--network private ' + port_name, + 'port create ' + '--network private ' + port_name, parse_output=True, ) self.assertIsNotNone(cmd_output['id']) @@ -1281,12 +1306,16 @@ class ServerTests(common.ComputeTestCase): def test_server_add_fixed_ip(self): name = uuid.uuid4().hex cmd_output = self.openstack( - 'server create ' + - '--network private ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + - '--wait ' + - name, + 'server create ' + + '--network private ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + '--wait ' + + name, parse_output=True, ) @@ -1306,8 +1335,7 @@ class ServerTests(common.ComputeTestCase): self.assertNotIn(port_name, cmd_output) cmd_output = self.openstack( - 'port create ' + - '--network private ' + port_name, + 'port create ' + '--network private ' + port_name, parse_output=True, ) self.assertIsNotNone(cmd_output['id']) @@ -1315,8 +1343,13 @@ class ServerTests(common.ComputeTestCase): self.openstack('port delete ' + port_name) # add fixed ip to server, assert the ip address appears - self.openstack('server add fixed ip --fixed-ip-address ' + ip_address + - ' ' + name + ' private') + self.openstack( + 'server add fixed ip --fixed-ip-address ' + + ip_address + + ' ' + + name + + ' private' + ) wait_time = 0 while wait_time < 60: @@ -1339,12 +1372,16 @@ class ServerTests(common.ComputeTestCase): server_name = uuid.uuid4().hex cmd_output = self.openstack( - 'server create ' + - '--network private ' + - '--flavor ' + self.flavor_name + ' ' + - '--image ' + self.image_name + ' ' + - '--wait ' + - server_name, + 'server create ' + + '--network private ' + + '--flavor ' + + self.flavor_name + + ' ' + + '--image ' + + self.image_name + + ' ' + + '--wait ' + + server_name, parse_output=True, ) @@ -1355,9 +1392,7 @@ class ServerTests(common.ComputeTestCase): volume_name = uuid.uuid4().hex cmd_output = self.openstack( - 'volume create ' + - '--size 1 ' + - volume_name, + 'volume create ' + '--size 1 ' + volume_name, parse_output=True, ) @@ -1368,10 +1403,12 @@ class ServerTests(common.ComputeTestCase): volume_id = cmd_output['id'] cmd_output = self.openstack( - 'server add volume ' + - server_name + ' ' + - volume_name + ' ' + - '--tag bar', + 'server add volume ' + + server_name + + ' ' + + volume_name + + ' ' + + '--tag bar', parse_output=True, ) @@ -1379,8 +1416,7 @@ class ServerTests(common.ComputeTestCase): self.assertEqual(volume_id, cmd_output['Volume ID']) cmd_output = self.openstack( - 'server volume list ' + - server_name, + 'server volume list ' + server_name, parse_output=True, ) @@ -1390,8 +1426,7 @@ class ServerTests(common.ComputeTestCase): volume_wait_for('volume', volume_name, 'in-use') cmd_output = self.openstack( - 'server event list ' + - server_name, + 'server event list ' + server_name, parse_output=True, ) self.assertEqual(2, len(cmd_output)) @@ -1403,8 +1438,7 @@ class ServerTests(common.ComputeTestCase): volume_wait_for('volume', volume_name, 'available') cmd_output = self.openstack( - 'server event list ' + - server_name, + 'server event list ' + server_name, parse_output=True, ) self.assertEqual(3, len(cmd_output)) diff --git a/openstackclient/tests/functional/compute/v2/test_server_event.py b/openstackclient/tests/functional/compute/v2/test_server_event.py index 47b5020f..c7ead814 100644 --- a/openstackclient/tests/functional/compute/v2/test_server_event.py +++ b/openstackclient/tests/functional/compute/v2/test_server_event.py @@ -93,8 +93,7 @@ class ServerEventTests(common.ComputeTestCase): # And verify we can get the event list after it's deleted # Test 'server event list' for deleting cmd_output = self.openstack( - '--os-compute-api-version 2.21 ' - 'server event list ' + server_id, + '--os-compute-api-version 2.21 ' 'server event list ' + server_id, parse_output=True, ) request_id = None diff --git a/openstackclient/tests/functional/compute/v2/test_server_group.py b/openstackclient/tests/functional/compute/v2/test_server_group.py index a599951c..e29f307e 100644 --- a/openstackclient/tests/functional/compute/v2/test_server_group.py +++ b/openstackclient/tests/functional/compute/v2/test_server_group.py @@ -23,37 +23,22 @@ class ServerGroupTests(base.TestCase): name1 = uuid.uuid4().hex name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'server group create ' + - '--policy affinity ' + - name1, + 'server group create ' + '--policy affinity ' + name1, parse_output=True, ) - self.assertEqual( - name1, - cmd_output['name'] - ) - self.assertEqual( - 'affinity', - cmd_output['policy'] - ) + self.assertEqual(name1, cmd_output['name']) + self.assertEqual('affinity', cmd_output['policy']) cmd_output = self.openstack( - 'server group create ' + - '--policy anti-affinity ' + - name2, + 'server group create ' + '--policy anti-affinity ' + name2, parse_output=True, ) - self.assertEqual( - name2, - cmd_output['name'] - ) - self.assertEqual( - 'anti-affinity', - cmd_output['policy'] - ) + self.assertEqual(name2, cmd_output['name']) + self.assertEqual('anti-affinity', cmd_output['policy']) del_output = self.openstack( - 'server group delete ' + name1 + ' ' + name2) + 'server group delete ' + name1 + ' ' + name2 + ) self.assertOutput('', del_output) def test_server_group_show_and_list(self): @@ -63,9 +48,7 @@ class ServerGroupTests(base.TestCase): # test server group show cmd_output = self.openstack( - 'server group create ' + - '--policy affinity ' + - name1, + 'server group create ' + '--policy affinity ' + name1, parse_output=True, ) self.addCleanup(self.openstack, 'server group delete ' + name1) @@ -73,19 +56,11 @@ class ServerGroupTests(base.TestCase): 'server group show ' + name1, parse_output=True, ) - self.assertEqual( - name1, - cmd_output['name'] - ) - self.assertEqual( - 'affinity', - cmd_output['policy'] - ) + self.assertEqual(name1, cmd_output['name']) + self.assertEqual('affinity', cmd_output['policy']) cmd_output = self.openstack( - 'server group create ' + - '--policy anti-affinity ' + - name2, + 'server group create ' + '--policy anti-affinity ' + name2, parse_output=True, ) self.addCleanup(self.openstack, 'server group delete ' + name2) @@ -93,14 +68,8 @@ class ServerGroupTests(base.TestCase): 'server group show ' + name2, parse_output=True, ) - self.assertEqual( - name2, - cmd_output['name'] - ) - self.assertEqual( - 'anti-affinity', - cmd_output['policy'] - ) + self.assertEqual(name2, cmd_output['name']) + self.assertEqual('anti-affinity', cmd_output['policy']) # test server group list cmd_output = self.openstack( diff --git a/openstackclient/tests/unit/compute/v2/fakes.py b/openstackclient/tests/unit/compute/v2/fakes.py index 356cc29c..c1ba4b97 100644 --- a/openstackclient/tests/unit/compute/v2/fakes.py +++ b/openstackclient/tests/unit/compute/v2/fakes.py @@ -68,7 +68,7 @@ QUOTA = { 'secgroup_rules': secgroup_rule_num, 'secgroups': secgroup_num, 'server-groups': servgroup_num, - 'server-group-members': servgroup_members_num + 'server-group-members': servgroup_members_num, } QUOTA_columns = tuple(sorted(QUOTA)) @@ -98,15 +98,15 @@ class FakeAggregate(object): "metadata": { "availability_zone": "ag_zone", "key1": "value1", - } + }, } # Overwrite default attributes. aggregate_info.update(attrs) aggregate = fakes.FakeResource( - info=copy.deepcopy(aggregate_info), - loaded=True) + info=copy.deepcopy(aggregate_info), loaded=True + ) return aggregate @staticmethod @@ -147,7 +147,6 @@ class FakeAggregate(object): class FakeComputev2Client(object): - def __init__(self, **kwargs): self.agents = mock.Mock() self.agents.resource_class = fakes.FakeResource(None, {}) @@ -222,7 +221,6 @@ class FakeComputev2Client(object): class TestComputev2(utils.TestCommand): - def setUp(self): super(TestComputev2, self).setUp() @@ -286,8 +284,7 @@ class FakeAgent(object): # Overwrite default attributes. agent_info.update(attrs) - agent = fakes.FakeResource(info=copy.deepcopy(agent_info), - loaded=True) + agent = fakes.FakeResource(info=copy.deepcopy(agent_info), loaded=True) return agent @staticmethod @@ -326,21 +323,24 @@ class FakeExtension(object): extension_info = { 'name': 'name-' + uuid.uuid4().hex, 'namespace': ( - 'http://docs.openstack.org/compute/ext/multinic/api/v1.1'), + '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"}]') + '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) + info=copy.deepcopy(extension_info), loaded=True + ) return extension @@ -385,7 +385,8 @@ class FakeSecurityGroup(object): security_groups = [] for i in range(0, count): security_groups.append( - FakeSecurityGroup.create_one_security_group(attrs)) + FakeSecurityGroup.create_one_security_group(attrs) + ) return security_groups @@ -453,7 +454,8 @@ class FakeSecurityGroupRule(object): security_group_rules = [] for i in range(0, count): security_group_rules.append( - FakeSecurityGroupRule.create_one_security_group_rule(attrs)) + FakeSecurityGroupRule.create_one_security_group_rule(attrs) + ) return security_group_rules @@ -492,9 +494,9 @@ class FakeServer(object): # Overwrite default attributes. server_info.update(attrs) - server = fakes.FakeResource(info=copy.deepcopy(server_info), - methods=methods, - loaded=True) + server = fakes.FakeResource( + info=copy.deepcopy(server_info), methods=methods, loaded=True + ) return server @staticmethod @@ -611,13 +613,15 @@ def create_one_server_action(attrs=None): "action": "create", "message": None, "project_id": "project-id-" + uuid.uuid4().hex, - "events": [{ - "finish_time": "2017-02-27T07:47:25.000000", - "start_time": "2017-02-27T07:47:15.000000", - "traceback": None, - "event": "compute__do_build_and_run_instance", - "result": "Success" - }] + "events": [ + { + "finish_time": "2017-02-27T07:47:25.000000", + "start_time": "2017-02-27T07:47:15.000000", + "traceback": None, + "event": "compute__do_build_and_run_instance", + "result": "Success", + } + ], } # Overwrite default attributes server_action_info.update(attrs) @@ -784,7 +788,8 @@ class FakeFlavorAccess(object): flavor_access_info.update(attrs) flavor_access = fakes.FakeResource( - info=copy.deepcopy(flavor_access_info), loaded=True) + info=copy.deepcopy(flavor_access_info), loaded=True + ) return flavor_access @@ -809,14 +814,15 @@ class FakeKeypair(object): 'type': 'ssh', 'fingerprint': 'dummy', 'public_key': 'dummy', - 'user_id': 'user' + 'user_id': 'user', } # Overwrite default attributes. keypair_info.update(attrs) - keypair = fakes.FakeResource(info=copy.deepcopy(keypair_info), - loaded=True) + keypair = fakes.FakeResource( + info=copy.deepcopy(keypair_info), loaded=True + ) return keypair @@ -879,19 +885,23 @@ class FakeAvailabilityZone(object): availability_zone = { 'zoneName': uuid.uuid4().hex, 'zoneState': {'available': True}, - 'hosts': {host_name: {service_name: { - 'available': True, - 'active': True, - 'updated_at': service_updated_at, - }}}, + 'hosts': { + host_name: { + service_name: { + 'available': True, + 'active': True, + 'updated_at': service_updated_at, + } + } + }, } # Overwrite default attributes. availability_zone.update(attrs) availability_zone = fakes.FakeResource( - info=copy.deepcopy(availability_zone), - loaded=True) + info=copy.deepcopy(availability_zone), loaded=True + ) return availability_zone @staticmethod @@ -907,8 +917,9 @@ class FakeAvailabilityZone(object): """ availability_zones = [] for i in range(0, count): - availability_zone = \ + availability_zone = ( FakeAvailabilityZone.create_one_availability_zone(attrs) + ) availability_zones.append(availability_zone) return availability_zones @@ -1200,16 +1211,15 @@ class FakeUsage(object): 'instance_id': uuid.uuid4().hex, 'state': 'active', 'uptime': 3600, - 'vcpus': 1 + 'vcpus': 1, } - ] + ], } # Overwrite default attributes. usage_info.update(attrs) - usage = fakes.FakeResource(info=copy.deepcopy(usage_info), - loaded=True) + usage = fakes.FakeResource(info=copy.deepcopy(usage_info), loaded=True) return usage @@ -1252,13 +1262,13 @@ class FakeQuota(object): 'metadata_items': 10, 'ram': 51200, 'server_groups': 10, - 'server_group_members': 10 + 'server_group_members': 10, } quota_attrs.update(attrs) quota = fakes.FakeResource( - info=copy.deepcopy(quota_attrs), - loaded=True) + info=copy.deepcopy(quota_attrs), loaded=True + ) quota.project_id = quota_attrs['id'] @@ -1282,13 +1292,13 @@ class FakeQuota(object): 'metadata_items': 10, 'ram': 51200, 'server_groups': 10, - 'server_group_members': 10 + 'server_group_members': 10, } quota_attrs.update(attrs) quota = fakes.FakeResource( - info=copy.deepcopy(quota_attrs), - loaded=True) + info=copy.deepcopy(quota_attrs), loaded=True + ) quota.project_id = quota_attrs['id'] @@ -1306,21 +1316,27 @@ class FakeQuota(object): 'fixed_ips': {'reserved': 0, 'in_use': 0, 'limit': 30}, 'injected_files': {'reserved': 0, 'in_use': 0, 'limit': 100}, 'injected_file_content_bytes': { - 'reserved': 0, 'in_use': 0, 'limit': 10240}, + 'reserved': 0, + 'in_use': 0, + 'limit': 10240, + }, 'injected_file_path_bytes': { - 'reserved': 0, 'in_use': 0, 'limit': 255}, + 'reserved': 0, + 'in_use': 0, + 'limit': 255, + }, 'instances': {'reserved': 0, 'in_use': 0, 'limit': 50}, 'key_pairs': {'reserved': 0, 'in_use': 0, 'limit': 20}, 'metadata_items': {'reserved': 0, 'in_use': 0, 'limit': 10}, 'ram': {'reserved': 0, 'in_use': 0, 'limit': 51200}, 'server_groups': {'reserved': 0, 'in_use': 0, 'limit': 10}, - 'server_group_members': {'reserved': 0, 'in_use': 0, 'limit': 10} + 'server_group_members': {'reserved': 0, 'in_use': 0, 'limit': 10}, } quota_attrs.update(attrs) quota = fakes.FakeResource( - info=copy.deepcopy(quota_attrs), - loaded=True) + info=copy.deepcopy(quota_attrs), loaded=True + ) quota.project_id = quota_attrs['id'] @@ -1355,41 +1371,43 @@ class FakeLimits(object): absolute_attrs = absolute_attrs or {} self.absolute_limits_attrs.update(absolute_attrs) - self.rate_limits_attrs = [{ - "uri": "*", - "limit": [ - { - "value": 10, - "verb": "POST", - "remaining": 2, - "unit": "MINUTE", - "next-available": "2011-12-15T22:42:45Z" - }, - { - "value": 10, - "verb": "PUT", - "remaining": 2, - "unit": "MINUTE", - "next-available": "2011-12-15T22:42:45Z" - }, - { - "value": 100, - "verb": "DELETE", - "remaining": 100, - "unit": "MINUTE", - "next-available": "2011-12-15T22:42:45Z" - } - ] - }] + self.rate_limits_attrs = [ + { + "uri": "*", + "limit": [ + { + "value": 10, + "verb": "POST", + "remaining": 2, + "unit": "MINUTE", + "next-available": "2011-12-15T22:42:45Z", + }, + { + "value": 10, + "verb": "PUT", + "remaining": 2, + "unit": "MINUTE", + "next-available": "2011-12-15T22:42:45Z", + }, + { + "value": 100, + "verb": "DELETE", + "remaining": 100, + "unit": "MINUTE", + "next-available": "2011-12-15T22:42:45Z", + }, + ], + } + ] @property def absolute(self): - for (name, value) in self.absolute_limits_attrs.items(): + for name, value in self.absolute_limits_attrs.items(): yield FakeAbsoluteLimit(name, value) def absolute_limits(self): reference_data = [] - for (name, value) in self.absolute_limits_attrs.items(): + for name, value in self.absolute_limits_attrs.items(): reference_data.append((name, value)) return reference_data @@ -1398,18 +1416,30 @@ class FakeLimits(object): for group in self.rate_limits_attrs: uri = group['uri'] for rate in group['limit']: - yield FakeRateLimit(rate['verb'], uri, rate['value'], - rate['remaining'], rate['unit'], - rate['next-available']) + yield FakeRateLimit( + rate['verb'], + uri, + rate['value'], + rate['remaining'], + rate['unit'], + rate['next-available'], + ) def rate_limits(self): reference_data = [] for group in self.rate_limits_attrs: uri = group['uri'] for rate in group['limit']: - reference_data.append((rate['verb'], uri, rate['value'], - rate['remaining'], rate['unit'], - rate['next-available'])) + reference_data.append( + ( + rate['verb'], + uri, + rate['value'], + rate['remaining'], + rate['unit'], + rate['next-available'], + ) + ) return reference_data @@ -1424,8 +1454,7 @@ class FakeAbsoluteLimit(object): class FakeRateLimit(object): """Data model that represents a flattened view of a single rate limit""" - def __init__(self, verb, uri, value, remain, - unit, next_available): + def __init__(self, verb, uri, value, remain, unit, next_available): self.verb = verb self.uri = uri self.value = value @@ -1534,8 +1563,7 @@ def create_server_migrations(attrs=None, methods=None, count=2): """ migrations = [] for i in range(0, count): - migrations.append( - create_one_server_migration(attrs, methods)) + migrations.append(create_one_server_migration(attrs, methods)) return migrations diff --git a/openstackclient/tests/unit/compute/v2/test_agent.py b/openstackclient/tests/unit/compute/v2/test_agent.py index c6d4f2b6..2a28c396 100644 --- a/openstackclient/tests/unit/compute/v2/test_agent.py +++ b/openstackclient/tests/unit/compute/v2/test_agent.py @@ -24,7 +24,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestAgent(compute_fakes.TestComputev2): - attr = {} attr['agent_id'] = 1 fake_agent = compute_fakes.FakeAgent.create_one_agent(attr) @@ -57,7 +56,6 @@ class TestAgent(compute_fakes.TestComputev2): class TestAgentCreate(TestAgent): - def setUp(self): super(TestAgentCreate, self).setUp() @@ -84,19 +82,20 @@ class TestAgentCreate(TestAgent): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.agents_mock.create.assert_called_with(parsed_args.os, - parsed_args.architecture, - parsed_args.version, - parsed_args.url, - parsed_args.md5hash, - parsed_args.hypervisor) + self.agents_mock.create.assert_called_with( + parsed_args.os, + parsed_args.architecture, + parsed_args.version, + parsed_args.url, + parsed_args.md5hash, + parsed_args.hypervisor, + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) class TestAgentDelete(TestAgent): - fake_agents = compute_fakes.FakeAgent.create_agents(count=2) def setUp(self): @@ -106,9 +105,7 @@ class TestAgentDelete(TestAgent): self.cmd = agent.DeleteAgent(self.app, None) def test_delete_one_agent(self): - arglist = [ - self.fake_agents[0].agent_id - ] + arglist = [self.fake_agents[0].agent_id] verifylist = [ ('id', [self.fake_agents[0].agent_id]), @@ -117,7 +114,8 @@ class TestAgentDelete(TestAgent): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.agents_mock.delete.assert_called_with( - self.fake_agents[0].agent_id) + self.fake_agents[0].agent_id + ) self.assertIsNone(result) def test_delete_multiple_agents(self): @@ -149,15 +147,12 @@ class TestAgentDelete(TestAgent): parsed_args = self.check_parser(self.cmd, arglist, verifylist) - ret_delete = [ - None, - None, - exceptions.NotFound('404') - ] + ret_delete = [None, None, exceptions.NotFound('404')] self.agents_mock.delete = mock.Mock(side_effect=ret_delete) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) calls = [ call(self.fake_agents[0].agent_id), call(self.fake_agents[1].agent_id), @@ -167,15 +162,16 @@ class TestAgentDelete(TestAgent): def test_agent_delete_no_input(self): arglist = [] verifylist = None - self.assertRaises(tests_utils.ParserException, - self.check_parser, - self.cmd, - arglist, - verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) class TestAgentList(TestAgent): - agents = compute_fakes.FakeAgent.create_agents(count=3) list_columns = ( "Agent ID", @@ -189,25 +185,25 @@ class TestAgentList(TestAgent): list_data = [] for _agent in agents: - list_data.append(( - _agent.agent_id, - _agent.hypervisor, - _agent.os, - _agent.architecture, - _agent.version, - _agent.md5hash, - _agent.url, - )) + list_data.append( + ( + _agent.agent_id, + _agent.hypervisor, + _agent.os, + _agent.architecture, + _agent.version, + _agent.md5hash, + _agent.url, + ) + ) def setUp(self): - super(TestAgentList, self).setUp() self.agents_mock.list.return_value = self.agents self.cmd = agent.ListAgent(self.app, None) def test_agent_list(self): - arglist = [] verifylist = [] @@ -218,7 +214,6 @@ class TestAgentList(TestAgent): self.assertEqual(self.list_data, list(data)) def test_agent_list_with_hypervisor(self): - arglist = [ '--hypervisor', 'hypervisor', @@ -235,7 +230,6 @@ class TestAgentList(TestAgent): class TestAgentSet(TestAgent): - def setUp(self): super(TestAgentSet, self).setUp() @@ -253,16 +247,19 @@ class TestAgentSet(TestAgent): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - self.agents_mock.update.assert_called_with(parsed_args.id, - self.fake_agent.version, - self.fake_agent.url, - self.fake_agent.md5hash) + self.agents_mock.update.assert_called_with( + parsed_args.id, + self.fake_agent.version, + self.fake_agent.url, + self.fake_agent.md5hash, + ) self.assertIsNone(result) def test_agent_set_version(self): arglist = [ '1', - '--agent-version', 'new-version', + '--agent-version', + 'new-version', ] verifylist = [ @@ -273,16 +270,19 @@ class TestAgentSet(TestAgent): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - self.agents_mock.update.assert_called_with(parsed_args.id, - parsed_args.version, - self.fake_agent.url, - self.fake_agent.md5hash) + self.agents_mock.update.assert_called_with( + parsed_args.id, + parsed_args.version, + self.fake_agent.url, + self.fake_agent.md5hash, + ) self.assertIsNone(result) def test_agent_set_url(self): arglist = [ '1', - '--url', 'new-url', + '--url', + 'new-url', ] verifylist = [ @@ -293,16 +293,19 @@ class TestAgentSet(TestAgent): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - self.agents_mock.update.assert_called_with(parsed_args.id, - self.fake_agent.version, - parsed_args.url, - self.fake_agent.md5hash) + self.agents_mock.update.assert_called_with( + parsed_args.id, + self.fake_agent.version, + parsed_args.url, + self.fake_agent.md5hash, + ) self.assertIsNone(result) def test_agent_set_md5hash(self): arglist = [ '1', - '--md5hash', 'new-md5hash', + '--md5hash', + 'new-md5hash', ] verifylist = [ @@ -313,8 +316,10 @@ class TestAgentSet(TestAgent): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - self.agents_mock.update.assert_called_with(parsed_args.id, - self.fake_agent.version, - self.fake_agent.url, - parsed_args.md5hash) + self.agents_mock.update.assert_called_with( + parsed_args.id, + self.fake_agent.version, + self.fake_agent.url, + parsed_args.md5hash, + ) self.assertIsNone(result) diff --git a/openstackclient/tests/unit/compute/v2/test_aggregate.py b/openstackclient/tests/unit/compute/v2/test_aggregate.py index 3a7a81cb..1ed63be6 100644 --- a/openstackclient/tests/unit/compute/v2/test_aggregate.py +++ b/openstackclient/tests/unit/compute/v2/test_aggregate.py @@ -27,7 +27,6 @@ from openstackclient.tests.unit.image.v2 import fakes as image_fakes class TestAggregate(compute_fakes.TestComputev2): - fake_ag = compute_fakes.FakeAggregate.create_one_aggregate() columns = ( @@ -64,7 +63,6 @@ class TestAggregate(compute_fakes.TestComputev2): class TestAggregateAddHost(TestAggregate): - def setUp(self): super(TestAggregateAddHost, self).setUp() @@ -84,15 +82,16 @@ class TestAggregateAddHost(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.sdk_client.add_host_to_aggregate.assert_called_once_with( - self.fake_ag.id, parsed_args.host) + self.fake_ag.id, parsed_args.host + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) class TestAggregateCreate(TestAggregate): - def setUp(self): super(TestAggregateCreate, self).setUp() @@ -110,13 +109,15 @@ class TestAggregateCreate(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_aggregate.assert_called_once_with( - name=parsed_args.name) + name=parsed_args.name + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def test_aggregate_create_with_zone(self): arglist = [ - '--zone', 'zone1', + '--zone', + 'zone1', 'ag1', ] verifylist = [ @@ -127,14 +128,17 @@ class TestAggregateCreate(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_aggregate.assert_called_once_with( - name=parsed_args.name, availability_zone=parsed_args.zone) + name=parsed_args.name, availability_zone=parsed_args.zone + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def test_aggregate_create_with_property(self): arglist = [ - '--property', 'key1=value1', - '--property', 'key2=value2', + '--property', + 'key1=value1', + '--property', + 'key2=value2', 'ag1', ] verifylist = [ @@ -144,37 +148,39 @@ class TestAggregateCreate(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_aggregate.assert_called_once_with( - name=parsed_args.name) + name=parsed_args.name + ) self.sdk_client.set_aggregate_metadata.assert_called_once_with( - self.fake_ag.id, parsed_args.properties) + self.fake_ag.id, parsed_args.properties + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) class TestAggregateDelete(TestAggregate): - fake_ags = compute_fakes.FakeAggregate.create_aggregates(count=2) def setUp(self): super(TestAggregateDelete, self).setUp() self.sdk_client.find_aggregate = ( - compute_fakes.FakeAggregate.get_aggregates(self.fake_ags)) + compute_fakes.FakeAggregate.get_aggregates(self.fake_ags) + ) self.cmd = aggregate.DeleteAggregate(self.app, None) def test_aggregate_delete(self): - arglist = [ - self.fake_ags[0].id - ] + arglist = [self.fake_ags[0].id] verifylist = [ ('aggregate', [self.fake_ags[0].id]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - self.fake_ags[0].id, ignore_missing=False) + self.fake_ags[0].id, ignore_missing=False + ) self.sdk_client.delete_aggregate.assert_called_once_with( - self.fake_ags[0].id, ignore_missing=False) + self.fake_ags[0].id, ignore_missing=False + ) def test_delete_multiple_aggregates(self): arglist = [] @@ -205,24 +211,25 @@ class TestAggregateDelete(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.sdk_client.find_aggregate.side_effect = [ - self.fake_ags[0], sdk_exceptions.NotFoundException] + self.fake_ags[0], + sdk_exceptions.NotFoundException, + ] try: self.cmd.take_action(parsed_args) self.fail('CommandError should be raised.') except exceptions.CommandError as e: - self.assertEqual('1 of 2 aggregates failed to delete.', - str(e)) + self.assertEqual('1 of 2 aggregates failed to delete.', str(e)) calls = [] for a in arglist: calls.append(call(a, ignore_missing=False)) self.sdk_client.find_aggregate.assert_has_calls(calls) self.sdk_client.delete_aggregate.assert_called_with( - self.fake_ags[0].id, ignore_missing=False) + self.fake_ags[0].id, ignore_missing=False + ) class TestAggregateList(TestAggregate): - list_columns = ( "ID", "Name", @@ -237,23 +244,29 @@ class TestAggregateList(TestAggregate): "Hosts", ) - list_data = (( - TestAggregate.fake_ag.id, - TestAggregate.fake_ag.name, - TestAggregate.fake_ag.availability_zone, - ), ) + list_data = ( + ( + TestAggregate.fake_ag.id, + TestAggregate.fake_ag.name, + TestAggregate.fake_ag.availability_zone, + ), + ) - list_data_long = (( - TestAggregate.fake_ag.id, - TestAggregate.fake_ag.name, - TestAggregate.fake_ag.availability_zone, - format_columns.DictColumn({ - key: value - for key, value in TestAggregate.fake_ag.metadata.items() - if key != 'availability_zone' - }), - format_columns.ListColumn(TestAggregate.fake_ag.hosts), - ), ) + list_data_long = ( + ( + TestAggregate.fake_ag.id, + TestAggregate.fake_ag.name, + TestAggregate.fake_ag.availability_zone, + format_columns.DictColumn( + { + key: value + for key, value in TestAggregate.fake_ag.metadata.items() + if key != 'availability_zone' + } + ), + format_columns.ListColumn(TestAggregate.fake_ag.hosts), + ), + ) def setUp(self): super(TestAggregateList, self).setUp() @@ -262,7 +275,6 @@ class TestAggregateList(TestAggregate): self.cmd = aggregate.ListAggregate(self.app, None) def test_aggregate_list(self): - parsed_args = self.check_parser(self.cmd, [], []) columns, data = self.cmd.take_action(parsed_args) @@ -284,7 +296,6 @@ class TestAggregateList(TestAggregate): class TestAggregateRemoveHost(TestAggregate): - def setUp(self): super(TestAggregateRemoveHost, self).setUp() @@ -304,15 +315,16 @@ class TestAggregateRemoveHost(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.sdk_client.remove_host_from_aggregate.assert_called_once_with( - self.fake_ag.id, parsed_args.host) + self.fake_ag.id, parsed_args.host + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) class TestAggregateSet(TestAggregate): - def setUp(self): super(TestAggregateSet, self).setUp() @@ -330,14 +342,16 @@ class TestAggregateSet(TestAggregate): result = self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.assertNotCalled(self.sdk_client.update_aggregate) self.assertNotCalled(self.sdk_client.set_aggregate_metadata) self.assertIsNone(result) def test_aggregate_set_with_name(self): arglist = [ - '--name', 'new_name', + '--name', + 'new_name', 'ag1', ] verifylist = [ @@ -348,15 +362,18 @@ class TestAggregateSet(TestAggregate): result = self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.sdk_client.update_aggregate.assert_called_once_with( - self.fake_ag.id, name=parsed_args.name) + self.fake_ag.id, name=parsed_args.name + ) self.assertNotCalled(self.sdk_client.set_aggregate_metadata) self.assertIsNone(result) def test_aggregate_set_with_zone(self): arglist = [ - '--zone', 'new_zone', + '--zone', + 'new_zone', 'ag1', ] verifylist = [ @@ -367,16 +384,20 @@ class TestAggregateSet(TestAggregate): result = self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.sdk_client.update_aggregate.assert_called_once_with( - self.fake_ag.id, availability_zone=parsed_args.zone) + self.fake_ag.id, availability_zone=parsed_args.zone + ) self.assertNotCalled(self.sdk_client.set_aggregate_metadata) self.assertIsNone(result) def test_aggregate_set_with_property(self): arglist = [ - '--property', 'key1=value1', - '--property', 'key2=value2', + '--property', + 'key1=value1', + '--property', + 'key2=value2', 'ag1', ] verifylist = [ @@ -387,16 +408,19 @@ class TestAggregateSet(TestAggregate): result = self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.assertNotCalled(self.sdk_client.update_aggregate) self.sdk_client.set_aggregate_metadata.assert_called_once_with( - self.fake_ag.id, parsed_args.properties) + self.fake_ag.id, parsed_args.properties + ) self.assertIsNone(result) def test_aggregate_set_with_no_property_and_property(self): arglist = [ '--no-property', - '--property', 'key2=value2', + '--property', + 'key2=value2', 'ag1', ] verifylist = [ @@ -407,10 +431,12 @@ class TestAggregateSet(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.assertNotCalled(self.sdk_client.update_aggregate) self.sdk_client.set_aggregate_metadata.assert_called_once_with( - self.fake_ag.id, {'key1': None, 'key2': 'value2'}) + self.fake_ag.id, {'key1': None, 'key2': 'value2'} + ) self.assertIsNone(result) def test_aggregate_set_with_no_property(self): @@ -425,15 +451,18 @@ class TestAggregateSet(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.assertNotCalled(self.sdk_client.update_aggregate) self.sdk_client.set_aggregate_metadata.assert_called_once_with( - self.fake_ag.id, {'key1': None}) + self.fake_ag.id, {'key1': None} + ) self.assertIsNone(result) def test_aggregate_set_with_zone_and_no_property(self): arglist = [ - '--zone', 'new_zone', + '--zone', + 'new_zone', '--no-property', 'ag1', ] @@ -445,16 +474,18 @@ class TestAggregateSet(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.sdk_client.update_aggregate.assert_called_once_with( - self.fake_ag.id, availability_zone=parsed_args.zone) + self.fake_ag.id, availability_zone=parsed_args.zone + ) self.sdk_client.set_aggregate_metadata.assert_called_once_with( - self.fake_ag.id, {'key1': None}) + self.fake_ag.id, {'key1': None} + ) self.assertIsNone(result) class TestAggregateShow(TestAggregate): - columns = ( 'availability_zone', 'hosts', @@ -468,11 +499,13 @@ class TestAggregateShow(TestAggregate): format_columns.ListColumn(TestAggregate.fake_ag.hosts), TestAggregate.fake_ag.id, TestAggregate.fake_ag.name, - format_columns.DictColumn({ - key: value - for key, value in TestAggregate.fake_ag.metadata.items() - if key != 'availability_zone' - }), + format_columns.DictColumn( + { + key: value + for key, value in TestAggregate.fake_ag.metadata.items() + if key != 'availability_zone' + } + ), ) def setUp(self): @@ -491,14 +524,14 @@ class TestAggregateShow(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, tuple(data)) class TestAggregateUnset(TestAggregate): - def setUp(self): super(TestAggregateUnset, self).setUp() @@ -507,7 +540,8 @@ class TestAggregateUnset(TestAggregate): def test_aggregate_unset(self): arglist = [ - '--property', 'unset_key', + '--property', + 'unset_key', 'ag1', ] verifylist = [ @@ -518,13 +552,16 @@ class TestAggregateUnset(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.set_aggregate_metadata.assert_called_once_with( - self.fake_ag.id, {'unset_key': None}) + self.fake_ag.id, {'unset_key': None} + ) self.assertIsNone(result) def test_aggregate_unset_multiple_properties(self): arglist = [ - '--property', 'unset_key1', - '--property', 'unset_key2', + '--property', + 'unset_key1', + '--property', + 'unset_key2', 'ag1', ] verifylist = [ @@ -535,7 +572,8 @@ class TestAggregateUnset(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.set_aggregate_metadata.assert_called_once_with( - self.fake_ag.id, {'unset_key1': None, 'unset_key2': None}) + self.fake_ag.id, {'unset_key1': None, 'unset_key2': None} + ) self.assertIsNone(result) def test_aggregate_unset_no_option(self): @@ -553,7 +591,6 @@ class TestAggregateUnset(TestAggregate): class TestAggregateCacheImage(TestAggregate): - images = image_fakes.create_images(count=2) def setUp(self): @@ -561,34 +598,27 @@ class TestAggregateCacheImage(TestAggregate): self.sdk_client.find_aggregate.return_value = self.fake_ag self.find_image_mock = mock.Mock(side_effect=self.images) - self.app.client_manager.sdk_connection.image.find_image = \ + self.app.client_manager.sdk_connection.image.find_image = ( self.find_image_mock + ) self.cmd = aggregate.CacheImageForAggregate(self.app, None) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_aggregate_not_supported(self, sm_mock): - arglist = [ - 'ag1', - 'im1' - ] + arglist = ['ag1', 'im1'] verifylist = [ ('aggregate', 'ag1'), ('image', ['im1']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args + exceptions.CommandError, self.cmd.take_action, parsed_args ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_aggregate_add_single_image(self, sm_mock): - arglist = [ - 'ag1', - 'im1' - ] + arglist = ['ag1', 'im1'] verifylist = [ ('aggregate', 'ag1'), ('image', ['im1']), @@ -596,9 +626,11 @@ class TestAggregateCacheImage(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.sdk_client.aggregate_precache_images.assert_called_once_with( - self.fake_ag.id, [self.images[0].id]) + self.fake_ag.id, [self.images[0].id] + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_aggregate_add_multiple_images(self, sm_mock): @@ -614,6 +646,8 @@ class TestAggregateCacheImage(TestAggregate): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) self.sdk_client.find_aggregate.assert_called_once_with( - parsed_args.aggregate, ignore_missing=False) + parsed_args.aggregate, ignore_missing=False + ) self.sdk_client.aggregate_precache_images.assert_called_once_with( - self.fake_ag.id, [self.images[0].id, self.images[1].id]) + self.fake_ag.id, [self.images[0].id, self.images[1].id] + ) diff --git a/openstackclient/tests/unit/compute/v2/test_console.py b/openstackclient/tests/unit/compute/v2/test_console.py index db9603c9..6026c8d2 100644 --- a/openstackclient/tests/unit/compute/v2/test_console.py +++ b/openstackclient/tests/unit/compute/v2/test_console.py @@ -21,7 +21,6 @@ from openstackclient.tests.unit import utils class TestConsole(compute_fakes.TestComputev2): - def setUp(self): super(TestConsole, self).setUp() @@ -44,62 +43,48 @@ class TestConsoleLog(TestConsole): self.cmd = console.ShowConsoleLog(self.app, None) def test_show_no_args(self): - arglist = [ - ] - verifylist = [ - ] - self.assertRaises(utils.ParserException, - self.check_parser, - self.cmd, - arglist, - verifylist) + arglist = [] + verifylist = [] + self.assertRaises( + utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show(self): - arglist = [ - 'fake_server' - ] - verifylist = [ - ('server', 'fake_server') - ] + arglist = ['fake_server'] + verifylist = [('server', 'fake_server')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - output = { - 'output': '1st line\n2nd line\n' - } + output = {'output': '1st line\n2nd line\n'} self.sdk_client.get_server_console_output.return_value = output self.cmd.take_action(parsed_args) self.sdk_client.find_server.assert_called_with( - name_or_id='fake_server', ignore_missing=False) + name_or_id='fake_server', ignore_missing=False + ) self.sdk_client.get_server_console_output.assert_called_with( - self._server.id, - length=None + self._server.id, length=None ) stdout = self.app.stdout.content self.assertEqual(stdout[0], output['output']) def test_show_lines(self): - arglist = [ - 'fake_server', - '--lines', '15' - ] - verifylist = [ - ('server', 'fake_server'), - ('lines', 15) - ] + arglist = ['fake_server', '--lines', '15'] + verifylist = [('server', 'fake_server'), ('lines', 15)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - output = { - 'output': '1st line\n2nd line' - } + output = {'output': '1st line\n2nd line'} self.sdk_client.get_server_console_output.return_value = output self.cmd.take_action(parsed_args) self.sdk_client.find_server.assert_called_with( - name_or_id='fake_server', ignore_missing=False) + name_or_id='fake_server', ignore_missing=False + ) self.sdk_client.get_server_console_output.assert_called_with( - self._server.id, - length=15 + self._server.id, length=15 ) @@ -109,11 +94,14 @@ class TestConsoleUrlShow(TestConsole): def setUp(self): super(TestConsoleUrlShow, self).setUp() self.sdk_client.find_server.return_value = self._server - fake_console_data = {'url': 'http://localhost', - 'protocol': 'fake_protocol', - 'type': 'fake_type'} + fake_console_data = { + 'url': 'http://localhost', + 'protocol': 'fake_protocol', + 'type': 'fake_type', + } self.sdk_client.create_console = mock.Mock( - return_value=fake_console_data) + return_value=fake_console_data + ) self.columns = ( 'protocol', @@ -123,7 +111,7 @@ class TestConsoleUrlShow(TestConsole): self.data = ( fake_console_data['protocol'], fake_console_data['type'], - fake_console_data['url'] + fake_console_data['url'], ) self.cmd = console.ShowConsoleURL(self.app, None) @@ -139,8 +127,8 @@ class TestConsoleUrlShow(TestConsole): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_console.assert_called_once_with( - self._server.id, - console_type='novnc') + self._server.id, console_type='novnc' + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -156,8 +144,8 @@ class TestConsoleUrlShow(TestConsole): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_console.assert_called_once_with( - self._server.id, - console_type='novnc') + self._server.id, console_type='novnc' + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -173,8 +161,8 @@ class TestConsoleUrlShow(TestConsole): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_console.assert_called_once_with( - self._server.id, - console_type='xvpvnc') + self._server.id, console_type='xvpvnc' + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -190,8 +178,8 @@ class TestConsoleUrlShow(TestConsole): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_console.assert_called_once_with( - self._server.id, - console_type='spice-html5') + self._server.id, console_type='spice-html5' + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -207,8 +195,8 @@ class TestConsoleUrlShow(TestConsole): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_console.assert_called_once_with( - self._server.id, - console_type='rdp-html5') + self._server.id, console_type='rdp-html5' + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -224,8 +212,8 @@ class TestConsoleUrlShow(TestConsole): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_console.assert_called_once_with( - self._server.id, - console_type='serial') + self._server.id, console_type='serial' + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -241,7 +229,7 @@ class TestConsoleUrlShow(TestConsole): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_console.assert_called_once_with( - self._server.id, - console_type='webmks') + self._server.id, console_type='webmks' + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) diff --git a/openstackclient/tests/unit/compute/v2/test_flavor.py b/openstackclient/tests/unit/compute/v2/test_flavor.py index 33ebf546..42d6e1a9 100644 --- a/openstackclient/tests/unit/compute/v2/test_flavor.py +++ b/openstackclient/tests/unit/compute/v2/test_flavor.py @@ -27,7 +27,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestFlavor(compute_fakes.TestComputev2): - def setUp(self): super(TestFlavor, self).setUp() @@ -50,9 +49,9 @@ class TestFlavor(compute_fakes.TestComputev2): class TestFlavorCreate(TestFlavor): - flavor = compute_fakes.FakeFlavor.create_one_flavor( - attrs={'links': 'flavor-links'}) + attrs={'links': 'flavor-links'} + ) project = identity_fakes.FakeProject.create_one_project() columns = ( @@ -67,7 +66,7 @@ class TestFlavorCreate(TestFlavor): 'ram', 'rxtx_factor', 'swap', - 'vcpus' + 'vcpus', ) data = ( @@ -108,10 +107,7 @@ class TestFlavorCreate(TestFlavor): self.cmd = flavor.CreateFlavor(self.app, None) def test_flavor_create_default_options(self): - - arglist = [ - self.flavor.name - ] + arglist = [self.flavor.name] verifylist = [ ('name', self.flavor.name), ] @@ -136,18 +132,26 @@ class TestFlavorCreate(TestFlavor): self.assertCountEqual(self.data, data) def test_flavor_create_all_options(self): - arglist = [ - '--id', self.flavor.id, - '--ram', str(self.flavor.ram), - '--disk', str(self.flavor.disk), - '--ephemeral', str(self.flavor.ephemeral), - '--swap', str(self.flavor.swap), - '--vcpus', str(self.flavor.vcpus), - '--rxtx-factor', str(self.flavor.rxtx_factor), + '--id', + self.flavor.id, + '--ram', + str(self.flavor.ram), + '--disk', + str(self.flavor.disk), + '--ephemeral', + str(self.flavor.ephemeral), + '--swap', + str(self.flavor.swap), + '--vcpus', + str(self.flavor.vcpus), + '--rxtx-factor', + str(self.flavor.rxtx_factor), '--public', - '--description', str(self.flavor.description), - '--property', 'property=value', + '--description', + str(self.flavor.description), + '--property', + 'property=value', self.flavor.name, ] verifylist = [ @@ -175,7 +179,7 @@ class TestFlavorCreate(TestFlavor): 'swap': self.flavor.swap, 'rxtx_factor': self.flavor.rxtx_factor, 'is_public': self.flavor.is_public, - 'description': self.flavor.description + 'description': self.flavor.description, } props = {'property': 'value'} @@ -190,36 +194,49 @@ class TestFlavorCreate(TestFlavor): cmp_data = list(self.data) cmp_data[7] = format_columns.DictColumn(props) self.sdk_client.create_flavor.return_value = create_flavor - self.sdk_client.create_flavor_extra_specs.return_value = \ + self.sdk_client.create_flavor_extra_specs.return_value = ( expected_flavor + ) - with mock.patch.object(sdk_utils, 'supports_microversion', - return_value=True): + with mock.patch.object( + sdk_utils, 'supports_microversion', return_value=True + ): columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_flavor.assert_called_once_with(**args) self.sdk_client.create_flavor_extra_specs.assert_called_once_with( - create_flavor, props) + create_flavor, props + ) self.sdk_client.get_flavor_access.assert_not_called() self.assertEqual(self.columns, columns) self.assertCountEqual(tuple(cmp_data), data) def test_flavor_create_other_options(self): - self.flavor.is_public = False arglist = [ - '--id', 'auto', - '--ram', str(self.flavor.ram), - '--disk', str(self.flavor.disk), - '--ephemeral', str(self.flavor.ephemeral), - '--swap', str(self.flavor.swap), - '--vcpus', str(self.flavor.vcpus), - '--rxtx-factor', str(self.flavor.rxtx_factor), + '--id', + 'auto', + '--ram', + str(self.flavor.ram), + '--disk', + str(self.flavor.disk), + '--ephemeral', + str(self.flavor.ephemeral), + '--swap', + str(self.flavor.swap), + '--vcpus', + str(self.flavor.vcpus), + '--rxtx-factor', + str(self.flavor.rxtx_factor), '--private', - '--description', str(self.flavor.description), - '--project', self.project.id, - '--property', 'key1=value1', - '--property', 'key2=value2', + '--description', + str(self.flavor.description), + '--project', + self.project.id, + '--property', + 'key1=value1', + '--property', + 'key2=value2', self.flavor.name, ] verifylist = [ @@ -247,7 +264,7 @@ class TestFlavorCreate(TestFlavor): 'swap': self.flavor.swap, 'rxtx_factor': self.flavor.rxtx_factor, 'is_public': False, - 'description': self.flavor.description + 'description': self.flavor.description, } props = {'key1': 'value1', 'key2': 'value2'} @@ -263,11 +280,13 @@ class TestFlavorCreate(TestFlavor): cmp_data = list(self.data_private) cmp_data[7] = format_columns.DictColumn(props) self.sdk_client.create_flavor.return_value = create_flavor - self.sdk_client.create_flavor_extra_specs.return_value = \ + self.sdk_client.create_flavor_extra_specs.return_value = ( expected_flavor + ) - with mock.patch.object(sdk_utils, 'supports_microversion', - return_value=True): + with mock.patch.object( + sdk_utils, 'supports_microversion', return_value=True + ): columns, data = self.cmd.take_action(parsed_args) self.sdk_client.create_flavor.assert_called_once_with(**args) self.sdk_client.flavor_add_tenant_access.assert_called_with( @@ -275,13 +294,15 @@ class TestFlavorCreate(TestFlavor): self.project.id, ) self.sdk_client.create_flavor_extra_specs.assert_called_with( - create_flavor, props) + create_flavor, props + ) self.assertEqual(self.columns, columns) self.assertCountEqual(cmp_data, data) def test_public_flavor_create_with_project(self): arglist = [ - '--project', self.project.id, + '--project', + self.project.id, self.flavor.name, ] verifylist = [ @@ -290,30 +311,40 @@ class TestFlavorCreate(TestFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_flavor_create_no_options(self): arglist = [] verifylist = None - self.assertRaises(tests_utils.ParserException, - self.check_parser, - self.cmd, - arglist, - verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_flavor_create_with_description_api_newer(self): arglist = [ - '--id', self.flavor.id, - '--ram', str(self.flavor.ram), - '--disk', str(self.flavor.disk), - '--ephemeral', str(self.flavor.ephemeral), - '--swap', str(self.flavor.swap), - '--vcpus', str(self.flavor.vcpus), - '--rxtx-factor', str(self.flavor.rxtx_factor), + '--id', + self.flavor.id, + '--ram', + str(self.flavor.ram), + '--disk', + str(self.flavor.disk), + '--ephemeral', + str(self.flavor.ephemeral), + '--swap', + str(self.flavor.swap), + '--vcpus', + str(self.flavor.vcpus), + '--rxtx-factor', + str(self.flavor.rxtx_factor), '--private', - '--description', 'fake description', + '--description', + 'fake description', self.flavor.name, ] verifylist = [ @@ -329,9 +360,9 @@ class TestFlavorCreate(TestFlavor): ('name', self.flavor.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(sdk_utils, 'supports_microversion', - return_value=True): - + with mock.patch.object( + sdk_utils, 'supports_microversion', return_value=True + ): columns, data = self.cmd.take_action(parsed_args) args = { @@ -344,7 +375,7 @@ class TestFlavorCreate(TestFlavor): 'swap': self.flavor.swap, 'rxtx_factor': self.flavor.rxtx_factor, 'is_public': self.flavor.is_public, - 'description': 'fake description' + 'description': 'fake description', } self.sdk_client.create_flavor.assert_called_once_with(**args) @@ -354,10 +385,14 @@ class TestFlavorCreate(TestFlavor): def test_flavor_create_with_description_api_older(self): arglist = [ - '--id', self.flavor.id, - '--ram', str(self.flavor.ram), - '--vcpus', str(self.flavor.vcpus), - '--description', 'description', + '--id', + self.flavor.id, + '--ram', + str(self.flavor.ram), + '--vcpus', + str(self.flavor.vcpus), + '--description', + 'description', self.flavor.name, ] verifylist = [ @@ -368,14 +403,15 @@ class TestFlavorCreate(TestFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(sdk_utils, 'supports_microversion', - return_value=False): - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + with mock.patch.object( + sdk_utils, 'supports_microversion', return_value=False + ): + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) class TestFlavorDelete(TestFlavor): - flavors = compute_fakes.FakeFlavor.create_flavors(count=2) def setUp(self): @@ -386,9 +422,7 @@ class TestFlavorDelete(TestFlavor): self.cmd = flavor.DeleteFlavor(self.app, None) def test_flavor_delete(self): - arglist = [ - self.flavors[0].id - ] + arglist = [self.flavors[0].id] verifylist = [ ('flavor', [self.flavors[0].id]), ] @@ -398,8 +432,9 @@ class TestFlavorDelete(TestFlavor): result = self.cmd.take_action(parsed_args) - self.sdk_client.find_flavor.assert_called_with(self.flavors[0].id, - ignore_missing=False) + self.sdk_client.find_flavor.assert_called_with( + self.flavors[0].id, ignore_missing=False + ) self.sdk_client.delete_flavor.assert_called_with(self.flavors[0].id) self.assertIsNone(result) @@ -430,14 +465,12 @@ class TestFlavorDelete(TestFlavor): self.flavors[0].id, 'unexist_flavor', ] - verifylist = [ - ('flavor', [self.flavors[0].id, 'unexist_flavor']) - ] + verifylist = [('flavor', [self.flavors[0].id, 'unexist_flavor'])] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.sdk_client.find_flavor.side_effect = [ self.flavors[0], - sdk_exceptions.ResourceNotFound + sdk_exceptions.ResourceNotFound, ] try: @@ -456,7 +489,6 @@ class TestFlavorDelete(TestFlavor): class TestFlavorList(TestFlavor): - _flavor = compute_fakes.FakeFlavor.create_one_flavor() columns = ( @@ -468,32 +500,36 @@ class TestFlavorList(TestFlavor): 'VCPUs', 'Is Public', ) - columns_long = columns + ( - 'Swap', - 'RXTX Factor', - 'Properties' - ) + columns_long = columns + ('Swap', 'RXTX Factor', 'Properties') - data = (( - _flavor.id, - _flavor.name, - _flavor.ram, - _flavor.disk, - _flavor.ephemeral, - _flavor.vcpus, - _flavor.is_public, - ),) - data_long = (data[0] + ( - _flavor.swap, - _flavor.rxtx_factor, - format_columns.DictColumn(_flavor.extra_specs) - ), ) + data = ( + ( + _flavor.id, + _flavor.name, + _flavor.ram, + _flavor.disk, + _flavor.ephemeral, + _flavor.vcpus, + _flavor.is_public, + ), + ) + data_long = ( + data[0] + + ( + _flavor.swap, + _flavor.rxtx_factor, + format_columns.DictColumn(_flavor.extra_specs), + ), + ) def setUp(self): super(TestFlavorList, self).setUp() self.api_mock = mock.Mock() - self.api_mock.side_effect = [[self._flavor], [], ] + self.api_mock.side_effect = [ + [self._flavor], + [], + ] self.sdk_client.flavors = self.api_mock @@ -520,9 +556,7 @@ class TestFlavorList(TestFlavor): 'is_public': True, } - self.sdk_client.flavors.assert_called_with( - **kwargs - ) + self.sdk_client.flavors.assert_called_with(**kwargs) self.sdk_client.fetch_flavor_extra_specs.assert_not_called() self.assertEqual(self.columns, columns) @@ -548,9 +582,7 @@ class TestFlavorList(TestFlavor): 'is_public': None, } - self.sdk_client.flavors.assert_called_with( - **kwargs - ) + self.sdk_client.flavors.assert_called_with(**kwargs) self.sdk_client.fetch_flavor_extra_specs.assert_not_called() self.assertEqual(self.columns, columns) @@ -576,9 +608,7 @@ class TestFlavorList(TestFlavor): 'is_public': False, } - self.sdk_client.flavors.assert_called_with( - **kwargs - ) + self.sdk_client.flavors.assert_called_with(**kwargs) self.sdk_client.fetch_flavor_extra_specs.assert_not_called() self.assertEqual(self.columns, columns) @@ -604,9 +634,7 @@ class TestFlavorList(TestFlavor): 'is_public': True, } - self.sdk_client.flavors.assert_called_with( - **kwargs - ) + self.sdk_client.flavors.assert_called_with(**kwargs) self.sdk_client.fetch_flavor_extra_specs.assert_not_called() self.assertEqual(self.columns, columns) @@ -632,9 +660,7 @@ class TestFlavorList(TestFlavor): 'is_public': True, } - self.sdk_client.flavors.assert_called_with( - **kwargs - ) + self.sdk_client.flavors.assert_called_with(**kwargs) self.sdk_client.fetch_flavor_extra_specs.assert_not_called() self.assertEqual(self.columns_long, columns) @@ -643,22 +669,31 @@ class TestFlavorList(TestFlavor): def test_flavor_list_long_no_extra_specs(self): # use flavor with no extra specs for this test flavor = compute_fakes.FakeFlavor.create_one_flavor( - attrs={"extra_specs": {}}) - self.data = (( - flavor.id, - flavor.name, - flavor.ram, - flavor.disk, - flavor.ephemeral, - flavor.vcpus, - flavor.is_public, - ),) - self.data_long = (self.data[0] + ( - flavor.swap, - flavor.rxtx_factor, - format_columns.DictColumn(flavor.extra_specs) - ),) - self.api_mock.side_effect = [[flavor], [], ] + attrs={"extra_specs": {}} + ) + self.data = ( + ( + flavor.id, + flavor.name, + flavor.ram, + flavor.disk, + flavor.ephemeral, + flavor.vcpus, + flavor.is_public, + ), + ) + self.data_long = ( + self.data[0] + + ( + flavor.swap, + flavor.rxtx_factor, + format_columns.DictColumn(flavor.extra_specs), + ), + ) + self.api_mock.side_effect = [ + [flavor], + [], + ] self.sdk_client.flavors = self.api_mock self.sdk_client.fetch_flavor_extra_specs = mock.Mock(return_value=None) @@ -682,19 +717,20 @@ class TestFlavorList(TestFlavor): 'is_public': True, } - self.sdk_client.flavors.assert_called_with( - **kwargs - ) + self.sdk_client.flavors.assert_called_with(**kwargs) self.sdk_client.fetch_flavor_extra_specs.assert_called_once_with( - flavor) + flavor + ) self.assertEqual(self.columns_long, columns) self.assertCountEqual(self.data_long, tuple(data)) def test_flavor_list_min_disk_min_ram(self): arglist = [ - '--min-disk', '10', - '--min-ram', '2048', + '--min-disk', + '10', + '--min-ram', + '2048', ] verifylist = [ ('min_disk', 10), @@ -715,9 +751,7 @@ class TestFlavorList(TestFlavor): 'min_ram': 2048, } - self.sdk_client.flavors.assert_called_with( - **kwargs - ) + self.sdk_client.flavors.assert_called_with(**kwargs) self.sdk_client.fetch_flavor_extra_specs.assert_not_called() self.assertEqual(self.columns, columns) @@ -725,10 +759,10 @@ class TestFlavorList(TestFlavor): class TestFlavorSet(TestFlavor): - # Return value of self.sdk_client.find_flavor(). flavor = compute_fakes.FakeFlavor.create_one_flavor( - attrs={'os-flavor-access:is_public': False}) + attrs={'os-flavor-access:is_public': False} + ) project = identity_fakes.FakeProject.create_one_project() def setUp(self): @@ -740,51 +774,40 @@ class TestFlavorSet(TestFlavor): self.cmd = flavor.SetFlavor(self.app, None) def test_flavor_set_property(self): - arglist = [ - '--property', 'FOO="B A R"', - 'baremetal' - ] + arglist = ['--property', 'FOO="B A R"', 'baremetal'] verifylist = [ ('properties', {'FOO': '"B A R"'}), - ('flavor', 'baremetal') + ('flavor', 'baremetal'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.find_flavor.assert_called_with( - parsed_args.flavor, - get_extra_specs=True, - ignore_missing=False + parsed_args.flavor, get_extra_specs=True, ignore_missing=False ) self.sdk_client.create_flavor_extra_specs.assert_called_with( - self.flavor.id, - {'FOO': '"B A R"'}) + self.flavor.id, {'FOO': '"B A R"'} + ) self.assertIsNone(result) def test_flavor_set_no_property(self): - arglist = [ - '--no-property', - 'baremetal' - ] - verifylist = [ - ('no_property', True), - ('flavor', 'baremetal') - ] + arglist = ['--no-property', 'baremetal'] + verifylist = [('no_property', True), ('flavor', 'baremetal')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.find_flavor.assert_called_with( - parsed_args.flavor, - get_extra_specs=True, - ignore_missing=False + parsed_args.flavor, get_extra_specs=True, ignore_missing=False ) self.sdk_client.delete_flavor_extra_specs_property.assert_called_with( - self.flavor.id, 'property') + self.flavor.id, 'property' + ) self.assertIsNone(result) def test_flavor_set_project(self): arglist = [ - '--project', self.project.id, + '--project', + self.project.id, self.flavor.id, ] verifylist = [ @@ -796,9 +819,7 @@ class TestFlavorSet(TestFlavor): result = self.cmd.take_action(parsed_args) self.sdk_client.find_flavor.assert_called_with( - parsed_args.flavor, - get_extra_specs=True, - ignore_missing=False + parsed_args.flavor, get_extra_specs=True, ignore_missing=False ) self.sdk_client.flavor_add_tenant_access.assert_called_with( self.flavor.id, @@ -816,18 +837,29 @@ class TestFlavorSet(TestFlavor): ('project', None), ('flavor', self.flavor.id), ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_flavor_set_no_flavor(self): arglist = [ - '--project', self.project.id, + '--project', + self.project.id, ] verifylist = [ ('project', self.project.id), ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_flavor_set_with_unexist_flavor(self): self.sdk_client.find_flavor.side_effect = [ @@ -835,7 +867,8 @@ class TestFlavorSet(TestFlavor): ] arglist = [ - '--project', self.project.id, + '--project', + self.project.id, 'unexist_flavor', ] verifylist = [ @@ -844,9 +877,9 @@ class TestFlavorSet(TestFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_flavor_set_nothing(self): arglist = [ @@ -859,16 +892,15 @@ class TestFlavorSet(TestFlavor): result = self.cmd.take_action(parsed_args) self.sdk_client.find_flavor.assert_called_with( - parsed_args.flavor, - get_extra_specs=True, - ignore_missing=False + parsed_args.flavor, get_extra_specs=True, ignore_missing=False ) self.sdk_client.flavor_add_tenant_access.assert_not_called() self.assertIsNone(result) def test_flavor_set_description_api_newer(self): arglist = [ - '--description', 'description', + '--description', + 'description', self.flavor.id, ] verifylist = [ @@ -877,17 +909,19 @@ class TestFlavorSet(TestFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.app.client_manager.compute.api_version = 2.55 - with mock.patch.object(sdk_utils, - 'supports_microversion', - return_value=True): + with mock.patch.object( + sdk_utils, 'supports_microversion', return_value=True + ): result = self.cmd.take_action(parsed_args) self.sdk_client.update_flavor.assert_called_with( - flavor=self.flavor.id, description='description') + flavor=self.flavor.id, description='description' + ) self.assertIsNone(result) def test_flavor_set_description_api_older(self): arglist = [ - '--description', 'description', + '--description', + 'description', self.flavor.id, ] verifylist = [ @@ -896,15 +930,17 @@ class TestFlavorSet(TestFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.app.client_manager.compute.api_version = 2.54 - with mock.patch.object(sdk_utils, - 'supports_microversion', - return_value=False): - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + with mock.patch.object( + sdk_utils, 'supports_microversion', return_value=False + ): + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_flavor_set_description_using_name_api_newer(self): arglist = [ - '--description', 'description', + '--description', + 'description', self.flavor.name, ] verifylist = [ @@ -914,17 +950,19 @@ class TestFlavorSet(TestFlavor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.app.client_manager.compute.api_version = 2.55 - with mock.patch.object(sdk_utils, - 'supports_microversion', - return_value=True): + with mock.patch.object( + sdk_utils, 'supports_microversion', return_value=True + ): result = self.cmd.take_action(parsed_args) self.sdk_client.update_flavor.assert_called_with( - flavor=self.flavor.id, description='description') + flavor=self.flavor.id, description='description' + ) self.assertIsNone(result) def test_flavor_set_description_using_name_api_older(self): arglist = [ - '--description', 'description', + '--description', + 'description', self.flavor.name, ] verifylist = [ @@ -934,15 +972,15 @@ class TestFlavorSet(TestFlavor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.app.client_manager.compute.api_version = 2.54 - with mock.patch.object(sdk_utils, - 'supports_microversion', - return_value=False): - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + with mock.patch.object( + sdk_utils, 'supports_microversion', return_value=False + ): + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) class TestFlavorShow(TestFlavor): - # Return value of self.sdk_client.find_flavor(). flavor_access = compute_fakes.FakeFlavorAccess.create_one_flavor_access() flavor = compute_fakes.FakeFlavor.create_one_flavor() @@ -960,7 +998,7 @@ class TestFlavorShow(TestFlavor): 'ram', 'rxtx_factor', 'swap', - 'vcpus' + 'vcpus', ) data = ( @@ -992,8 +1030,13 @@ class TestFlavorShow(TestFlavor): verifylist = [] # Missing required args should boil here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_public_flavor_show(self): arglist = [ @@ -1046,16 +1089,17 @@ class TestFlavorShow(TestFlavor): columns, data = self.cmd.take_action(parsed_args) self.sdk_client.get_flavor_access.assert_called_with( - flavor=private_flavor.id) + flavor=private_flavor.id + ) self.assertEqual(self.columns, columns) self.assertCountEqual(data_with_project, data) class TestFlavorUnset(TestFlavor): - # Return value of self.sdk_client.find_flavor(). flavor = compute_fakes.FakeFlavor.create_one_flavor( - attrs={'os-flavor-access:is_public': False}) + attrs={'os-flavor-access:is_public': False} + ) project = identity_fakes.FakeProject.create_one_project() def setUp(self): @@ -1069,10 +1113,7 @@ class TestFlavorUnset(TestFlavor): self.mock_shortcut = self.sdk_client.delete_flavor_extra_specs_property def test_flavor_unset_property(self): - arglist = [ - '--property', 'property', - 'baremetal' - ] + arglist = ['--property', 'property', 'baremetal'] verifylist = [ ('properties', ['property']), ('flavor', 'baremetal'), @@ -1081,19 +1122,19 @@ class TestFlavorUnset(TestFlavor): result = self.cmd.take_action(parsed_args) self.sdk_client.find_flavor.assert_called_with( - parsed_args.flavor, - get_extra_specs=True, - ignore_missing=False) - self.mock_shortcut.assert_called_with( - self.flavor.id, 'property') + parsed_args.flavor, get_extra_specs=True, ignore_missing=False + ) + self.mock_shortcut.assert_called_with(self.flavor.id, 'property') self.sdk_client.flavor_remove_tenant_access.assert_not_called() self.assertIsNone(result) def test_flavor_unset_properties(self): arglist = [ - '--property', 'property1', - '--property', 'property2', - 'baremetal' + '--property', + 'property1', + '--property', + 'property2', + 'baremetal', ] verifylist = [ ('properties', ['property1', 'property2']), @@ -1103,29 +1144,26 @@ class TestFlavorUnset(TestFlavor): self.cmd.take_action(parsed_args) self.sdk_client.find_flavor.assert_called_with( - parsed_args.flavor, - get_extra_specs=True, - ignore_missing=False) + parsed_args.flavor, get_extra_specs=True, ignore_missing=False + ) calls = [ mock.call(self.flavor.id, 'property1'), - mock.call(self.flavor.id, 'property2') + mock.call(self.flavor.id, 'property2'), ] - self.mock_shortcut.assert_has_calls( - calls) + self.mock_shortcut.assert_has_calls(calls) # A bit tricky way to ensure we do not unset other properties calls.append(mock.call(self.flavor.id, 'property')) self.assertRaises( - AssertionError, - self.mock_shortcut.assert_has_calls, - calls + AssertionError, self.mock_shortcut.assert_has_calls, calls ) self.sdk_client.flavor_remove_tenant_access.assert_not_called() def test_flavor_unset_project(self): arglist = [ - '--project', self.project.id, + '--project', + self.project.id, self.flavor.id, ] verifylist = [ @@ -1138,8 +1176,8 @@ class TestFlavorUnset(TestFlavor): self.assertIsNone(result) self.sdk_client.find_flavor.assert_called_with( - parsed_args.flavor, get_extra_specs=True, - ignore_missing=False) + parsed_args.flavor, get_extra_specs=True, ignore_missing=False + ) self.sdk_client.flavor_remove_tenant_access.assert_called_with( self.flavor.id, self.project.id, @@ -1156,18 +1194,29 @@ class TestFlavorUnset(TestFlavor): ('project', None), ('flavor', self.flavor.id), ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_flavor_unset_no_flavor(self): arglist = [ - '--project', self.project.id, + '--project', + self.project.id, ] verifylist = [ ('project', self.project.id), ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_flavor_unset_with_unexist_flavor(self): self.sdk_client.find_flavor.side_effect = [ @@ -1175,7 +1224,8 @@ class TestFlavorUnset(TestFlavor): ] arglist = [ - '--project', self.project.id, + '--project', + self.project.id, 'unexist_flavor', ] verifylist = [ @@ -1183,8 +1233,9 @@ class TestFlavorUnset(TestFlavor): ('flavor', 'unexist_flavor'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_flavor_unset_nothing(self): arglist = [ diff --git a/openstackclient/tests/unit/compute/v2/test_host.py b/openstackclient/tests/unit/compute/v2/test_host.py index ec91b37a..464dcb47 100644 --- a/openstackclient/tests/unit/compute/v2/test_host.py +++ b/openstackclient/tests/unit/compute/v2/test_host.py @@ -22,7 +22,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestHost(compute_fakes.TestComputev2): - def setUp(self): super(TestHost, self).setUp() @@ -33,11 +32,8 @@ class TestHost(compute_fakes.TestComputev2): self.sdk_client.get = mock.Mock() -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.host_list' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.host_list') class TestHostList(TestHost): - _host = compute_fakes.FakeHost.create_one_host() def setUp(self): @@ -47,15 +43,15 @@ class TestHostList(TestHost): data={'hosts': [self._host]} ) - self.columns = ( - 'Host Name', 'Service', 'Zone' - ) + self.columns = ('Host Name', 'Service', 'Zone') - self.data = [( - self._host['host_name'], - self._host['service'], - self._host['zone'], - )] + self.data = [ + ( + self._host['host_name'], + self._host['service'], + self._host['zone'], + ) + ] self.cmd = host.ListHost(self.app, None) @@ -75,7 +71,8 @@ class TestHostList(TestHost): def test_host_list_with_option(self, h_mock): h_mock.return_value = [self._host] arglist = [ - '--zone', self._host['zone'], + '--zone', + self._host['zone'], ] verifylist = [ ('zone', self._host['zone']), @@ -90,11 +87,8 @@ class TestHostList(TestHost): self.assertEqual(self.data, list(data)) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.host_set' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.host_set') class TestHostSet(TestHost): - def setUp(self): super(TestHostSet, self).setUp() @@ -138,27 +132,27 @@ class TestHostSet(TestHost): result = self.cmd.take_action(parsed_args) self.assertIsNone(result) - h_mock.assert_called_with(self.host['host'], status='enable', - maintenance_mode='disable') + h_mock.assert_called_with( + self.host['host'], status='enable', maintenance_mode='disable' + ) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.host_show' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.host_show') class TestHostShow(TestHost): - _host = compute_fakes.FakeHost.create_one_host() def setUp(self): super(TestHostShow, self).setUp() - output_data = {"resource": { - "host": self._host['host'], - "project": self._host['project'], - "cpu": self._host['cpu'], - "memory_mb": self._host['memory_mb'], - "disk_gb": self._host['disk_gb'] - }} + output_data = { + "resource": { + "host": self._host['host'], + "project": self._host['project'], + "cpu": self._host['cpu'], + "memory_mb": self._host['memory_mb'], + "disk_gb": self._host['disk_gb'], + } + } self.sdk_client.get.return_value = fakes.FakeResponse( data={'host': [output_data]} @@ -172,13 +166,15 @@ class TestHostShow(TestHost): 'Disk GB', ) - self.data = [( - self._host['host'], - self._host['project'], - self._host['cpu'], - self._host['memory_mb'], - self._host['disk_gb'], - )] + self.data = [ + ( + self._host['host'], + self._host['project'], + self._host['cpu'], + self._host['memory_mb'], + self._host['disk_gb'], + ) + ] self.cmd = host.ShowHost(self.app, None) @@ -188,8 +184,13 @@ class TestHostShow(TestHost): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_host_show_with_option(self, h_mock): h_mock.return_value = [self._host] @@ -205,8 +206,7 @@ class TestHostShow(TestHost): columns, data = self.cmd.take_action(parsed_args) self.sdk_client.get.assert_called_with( - '/os-hosts/' + self._host['host_name'], - microversion='2.1' + '/os-hosts/' + self._host['host_name'], microversion='2.1' ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) diff --git a/openstackclient/tests/unit/compute/v2/test_hypervisor.py b/openstackclient/tests/unit/compute/v2/test_hypervisor.py index ab14072d..49c86a4b 100644 --- a/openstackclient/tests/unit/compute/v2/test_hypervisor.py +++ b/openstackclient/tests/unit/compute/v2/test_hypervisor.py @@ -26,7 +26,6 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes class TestHypervisor(compute_fakes.TestComputev2): - def setUp(self): super().setUp() @@ -37,7 +36,6 @@ class TestHypervisor(compute_fakes.TestComputev2): class TestHypervisorList(TestHypervisor): - def setUp(self): super().setUp() @@ -50,7 +48,7 @@ class TestHypervisorList(TestHypervisor): "Hypervisor Hostname", "Hypervisor Type", "Host IP", - "State" + "State", ) self.columns_long = ( "ID", @@ -61,7 +59,7 @@ class TestHypervisorList(TestHypervisor): "vCPUs Used", "vCPUs", "Memory MB Used", - "Memory MB" + "Memory MB", ) self.data = ( ( @@ -69,14 +67,14 @@ class TestHypervisorList(TestHypervisor): self.hypervisors[0].name, self.hypervisors[0].hypervisor_type, self.hypervisors[0].host_ip, - self.hypervisors[0].state + self.hypervisors[0].state, ), ( self.hypervisors[1].id, self.hypervisors[1].name, self.hypervisors[1].hypervisor_type, self.hypervisors[1].host_ip, - self.hypervisors[1].state + self.hypervisors[1].state, ), ) @@ -90,7 +88,7 @@ class TestHypervisorList(TestHypervisor): self.hypervisors[0].vcpus_used, self.hypervisors[0].vcpus, self.hypervisors[0].memory_used, - self.hypervisors[0].memory_size + self.hypervisors[0].memory_size, ), ( self.hypervisors[1].id, @@ -101,7 +99,7 @@ class TestHypervisorList(TestHypervisor): self.hypervisors[1].vcpus_used, self.hypervisors[1].vcpus, self.hypervisors[1].memory_used, - self.hypervisors[1].memory_size + self.hypervisors[1].memory_size, ), ) # Get the command object to test @@ -123,7 +121,8 @@ class TestHypervisorList(TestHypervisor): def test_hypervisor_list_matching_option_found(self): arglist = [ - '--matching', self.hypervisors[0].name, + '--matching', + self.hypervisors[0].name, ] verifylist = [ ('matching', self.hypervisors[0].name), @@ -149,14 +148,15 @@ class TestHypervisorList(TestHypervisor): columns, data = self.cmd.take_action(parsed_args) self.sdk_client.hypervisors.assert_called_with( - hypervisor_hostname_pattern=self.hypervisors[0].name, - details=True) + hypervisor_hostname_pattern=self.hypervisors[0].name, details=True + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, tuple(data)) def test_hypervisor_list_matching_option_not_found(self): arglist = [ - '--matching', 'xxx', + '--matching', + 'xxx', ] verifylist = [ ('matching', 'xxx'), @@ -164,20 +164,23 @@ class TestHypervisorList(TestHypervisor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) # Fake exception raised from search() - self.sdk_client.hypervisors.side_effect = \ - exceptions.NotFound(None) + self.sdk_client.hypervisors.side_effect = exceptions.NotFound(None) - self.assertRaises(exceptions.NotFound, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.NotFound, self.cmd.take_action, parsed_args + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_hypervisor_list_with_matching_and_pagination_options( - self, sm_mock): + self, sm_mock + ): arglist = [ - '--matching', self.hypervisors[0].name, - '--limit', '1', - '--marker', self.hypervisors[0].name, + '--matching', + self.hypervisors[0].name, + '--limit', + '1', + '--marker', + self.hypervisors[0].name, ] verifylist = [ ('matching', self.hypervisors[0].name), @@ -187,12 +190,12 @@ class TestHypervisorList(TestHypervisor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--matching is not compatible with --marker or --limit', str(ex)) + '--matching is not compatible with --marker or --limit', str(ex) + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_hypervisor_list_long_option(self, sm_mock): @@ -216,7 +219,8 @@ class TestHypervisorList(TestHypervisor): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_hypervisor_list_with_limit(self, sm_mock): arglist = [ - '--limit', '1', + '--limit', + '1', ] verifylist = [ ('limit', 1), @@ -230,7 +234,8 @@ class TestHypervisorList(TestHypervisor): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_hypervisor_list_with_limit_pre_v233(self, sm_mock): arglist = [ - '--limit', '1', + '--limit', + '1', ] verifylist = [ ('limit', 1), @@ -238,17 +243,18 @@ class TestHypervisorList(TestHypervisor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.33 or greater is required', str(ex)) + '--os-compute-api-version 2.33 or greater is required', str(ex) + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_hypervisor_list_with_marker(self, sm_mock): arglist = [ - '--marker', 'test_hyp', + '--marker', + 'test_hyp', ] verifylist = [ ('marker', 'test_hyp'), @@ -258,12 +264,14 @@ class TestHypervisorList(TestHypervisor): self.cmd.take_action(parsed_args) self.sdk_client.hypervisors.assert_called_with( - marker='test_hyp', details=True) + marker='test_hyp', details=True + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_hypervisor_list_with_marker_pre_v233(self, sm_mock): arglist = [ - '--marker', 'test_hyp', + '--marker', + 'test_hyp', ] verifylist = [ ('marker', 'test_hyp'), @@ -271,26 +279,29 @@ class TestHypervisorList(TestHypervisor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.33 or greater is required', str(ex)) + '--os-compute-api-version 2.33 or greater is required', str(ex) + ) class TestHypervisorShow(TestHypervisor): - def setUp(self): super().setUp() - uptime_string = (' 01:28:24 up 3 days, 11:15, 1 user, ' - ' load average: 0.94, 0.62, 0.50\n') + uptime_string = ( + ' 01:28:24 up 3 days, 11:15, 1 user, ' + ' load average: 0.94, 0.62, 0.50\n' + ) # Fake hypervisors to be listed up - self.hypervisor = compute_fakes.create_one_hypervisor(attrs={ - 'uptime': uptime_string, - }) + self.hypervisor = compute_fakes.create_one_hypervisor( + attrs={ + 'uptime': uptime_string, + } + ) # Return value of compute_client.find_hypervisor self.sdk_client.find_hypervisor.return_value = self.hypervisor @@ -422,8 +433,9 @@ class TestHypervisorShow(TestHypervisor): self.assertEqual(self.columns_v288, columns) self.assertCountEqual(self.data_v288, data) - @mock.patch.object(sdk_utils, 'supports_microversion', - side_effect=[False, True, False]) + @mock.patch.object( + sdk_utils, 'supports_microversion', side_effect=[False, True, False] + ) def test_hypervisor_show_pre_v288(self, sm_mock): arglist = [ self.hypervisor.name, @@ -445,8 +457,7 @@ class TestHypervisorShow(TestHypervisor): def test_hypervisor_show_pre_v228(self, sm_mock): # before microversion 2.28, nova returned a stringified version of this # field - self.hypervisor.cpu_info = json.dumps( - self.hypervisor.cpu_info) + self.hypervisor.cpu_info = json.dumps(self.hypervisor.cpu_info) self.sdk_client.find_hypervisor.return_value = self.hypervisor arglist = [ @@ -465,8 +476,9 @@ class TestHypervisorShow(TestHypervisor): self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) - @mock.patch.object(sdk_utils, 'supports_microversion', - side_effect=[False, True, False]) + @mock.patch.object( + sdk_utils, 'supports_microversion', side_effect=[False, True, False] + ) def test_hypervisor_show_uptime_not_implemented(self, sm_mock): arglist = [ self.hypervisor.name, @@ -477,7 +489,8 @@ class TestHypervisorShow(TestHypervisor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.sdk_client.get_hypervisor_uptime.side_effect = ( - nova_exceptions.HTTPNotImplemented(501)) + nova_exceptions.HTTPNotImplemented(501) + ) # In base command class ShowOne in cliff, abstract method take_action() # returns a two-part tuple with a tuple of column names and a tuple of diff --git a/openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py b/openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py index 7bc7468a..146a9bd9 100644 --- a/openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +++ b/openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py @@ -20,7 +20,6 @@ from openstackclient.tests.unit import fakes class TestHypervisorStats(compute_fakes.TestComputev2): - def setUp(self): super(TestHypervisorStats, self).setUp() @@ -33,6 +32,7 @@ class TestHypervisorStats(compute_fakes.TestComputev2): # Not in fakes.py because hypervisor stats has been deprecated + def create_one_hypervisor_stats(attrs=None): """Create a fake hypervisor stats. @@ -66,14 +66,14 @@ def create_one_hypervisor_stats(attrs=None): class TestHypervisorStatsShow(TestHypervisorStats): - _stats = create_one_hypervisor_stats() def setUp(self): super(TestHypervisorStatsShow, self).setUp() self.sdk_client.get.return_value = fakes.FakeResponse( - data={'hypervisor_statistics': self._stats}) + data={'hypervisor_statistics': self._stats} + ) self.cmd = hypervisor_stats.ShowHypervisorStats(self.app, None) diff --git a/openstackclient/tests/unit/compute/v2/test_keypair.py b/openstackclient/tests/unit/compute/v2/test_keypair.py index 1c2923b2..72bb96cb 100644 --- a/openstackclient/tests/unit/compute/v2/test_keypair.py +++ b/openstackclient/tests/unit/compute/v2/test_keypair.py @@ -30,7 +30,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestKeypair(compute_fakes.TestComputev2): - def setUp(self): super(TestKeypair, self).setUp() @@ -53,23 +52,17 @@ class TestKeypair(compute_fakes.TestComputev2): class TestKeypairCreate(TestKeypair): - def setUp(self): super().setUp() self.keypair = compute_fakes.FakeKeypair.create_one_keypair() - self.columns = ( - 'fingerprint', - 'name', - 'type', - 'user_id' - ) + self.columns = ('fingerprint', 'name', 'type', 'user_id') self.data = ( self.keypair.fingerprint, self.keypair.name, self.keypair.type, - self.keypair.user_id + self.keypair.user_id, ) # Get the command object to test @@ -78,7 +71,8 @@ class TestKeypairCreate(TestKeypair): self.sdk_client.create_keypair.return_value = self.keypair @mock.patch.object( - keypair, '_generate_keypair', + keypair, + '_generate_keypair', return_value=keypair.Keypair('private', 'public'), ) def test_key_pair_create_no_options(self, mock_generate): @@ -105,11 +99,12 @@ class TestKeypairCreate(TestKeypair): self.keypair.fingerprint, self.keypair.name, self.keypair.type, - self.keypair.user_id + self.keypair.user_id, ) arglist = [ - '--public-key', self.keypair.public_key, + '--public-key', + self.keypair.public_key, self.keypair.name, ] verifylist = [ @@ -135,13 +130,15 @@ class TestKeypairCreate(TestKeypair): self.assertEqual(self.data, data) @mock.patch.object( - keypair, '_generate_keypair', + keypair, + '_generate_keypair', return_value=keypair.Keypair('private', 'public'), ) def test_keypair_create_private_key(self, mock_generate): tmp_pk_file = '/tmp/kp-file-' + uuid.uuid4().hex arglist = [ - '--private-key', tmp_pk_file, + '--private-key', + tmp_pk_file, self.keypair.name, ] verifylist = [ @@ -182,9 +179,11 @@ class TestKeypairCreate(TestKeypair): self.keypair.user_id, ) arglist = [ - '--public-key', self.keypair.public_key, + '--public-key', + self.keypair.public_key, self.keypair.name, - '--type', key_type, + '--type', + key_type, ] verifylist = [ ('public_key', self.keypair.public_key), @@ -212,9 +211,11 @@ class TestKeypairCreate(TestKeypair): def test_keypair_create_with_key_type_pre_v22(self, sm_mock): for key_type in ['x509', 'ssh']: arglist = [ - '--public-key', self.keypair.public_key, + '--public-key', + self.keypair.public_key, self.keypair.name, - '--type', 'ssh', + '--type', + 'ssh', ] verifylist = [ ('public_key', self.keypair.public_key), @@ -229,22 +230,23 @@ class TestKeypairCreate(TestKeypair): m_file.read.return_value = 'dummy' ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.2 or greater is required', - str(ex)) + '--os-compute-api-version 2.2 or greater is required', str(ex) + ) @mock.patch.object( - keypair, '_generate_keypair', + keypair, + '_generate_keypair', return_value=keypair.Keypair('private', 'public'), ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_key_pair_create_with_user(self, sm_mock, mock_generate): arglist = [ - '--user', identity_fakes.user_name, + '--user', + identity_fakes.user_name, self.keypair.name, ] verifylist = [ @@ -267,7 +269,8 @@ class TestKeypairCreate(TestKeypair): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_key_pair_create_with_user_pre_v210(self, sm_mock): arglist = [ - '--user', identity_fakes.user_name, + '--user', + identity_fakes.user_name, self.keypair.name, ] verifylist = [ @@ -277,15 +280,14 @@ class TestKeypairCreate(TestKeypair): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.10 or greater is required', str(ex)) + '--os-compute-api-version 2.10 or greater is required', str(ex) + ) class TestKeypairDelete(TestKeypair): - keypairs = compute_fakes.FakeKeypair.create_keypairs(count=2) def setUp(self): @@ -294,9 +296,7 @@ class TestKeypairDelete(TestKeypair): self.cmd = keypair.DeleteKeypair(self.app, None) def test_keypair_delete(self): - arglist = [ - self.keypairs[0].name - ] + arglist = [self.keypairs[0].name] verifylist = [ ('name', [self.keypairs[0].name]), ] @@ -307,7 +307,8 @@ class TestKeypairDelete(TestKeypair): self.assertIsNone(ret) self.sdk_client.delete_keypair.assert_called_with( - self.keypairs[0].name, ignore_missing=False) + self.keypairs[0].name, ignore_missing=False + ) def test_delete_multiple_keypairs(self): arglist = [] @@ -338,7 +339,9 @@ class TestKeypairDelete(TestKeypair): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.sdk_client.delete_keypair.side_effect = [ - None, exceptions.CommandError] + None, + exceptions.CommandError, + ] try: self.cmd.take_action(parsed_args) self.fail('CommandError should be raised.') @@ -352,10 +355,7 @@ class TestKeypairDelete(TestKeypair): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_keypair_delete_with_user(self, sm_mock): - arglist = [ - '--user', identity_fakes.user_name, - self.keypairs[0].name - ] + arglist = ['--user', identity_fakes.user_name, self.keypairs[0].name] verifylist = [ ('user', identity_fakes.user_name), ('name', [self.keypairs[0].name]), @@ -368,19 +368,16 @@ class TestKeypairDelete(TestKeypair): self.sdk_client.delete_keypair.assert_called_with( self.keypairs[0].name, user_id=identity_fakes.user_id, - ignore_missing=False + ignore_missing=False, ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_keypair_delete_with_user_pre_v210(self, sm_mock): + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.9' + ) - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.9') - - arglist = [ - '--user', identity_fakes.user_name, - self.keypairs[0].name - ] + arglist = ['--user', identity_fakes.user_name, self.keypairs[0].name] verifylist = [ ('user', identity_fakes.user_name), ('name', [self.keypairs[0].name]), @@ -388,15 +385,14 @@ class TestKeypairDelete(TestKeypair): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.10 or greater is required', str(ex)) + '--os-compute-api-version 2.10 or greater is required', str(ex) + ) class TestKeypairList(TestKeypair): - # Return value of self.sdk_client.keypairs(). keypairs = compute_fakes.FakeKeypair.create_keypairs(count=1) @@ -426,8 +422,8 @@ class TestKeypairList(TestKeypair): self.assertEqual(('Name', 'Fingerprint'), columns) self.assertEqual( - ((self.keypairs[0].name, self.keypairs[0].fingerprint), ), - tuple(data) + ((self.keypairs[0].name, self.keypairs[0].fingerprint),), + tuple(data), ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) @@ -448,17 +444,18 @@ class TestKeypairList(TestKeypair): self.assertEqual(('Name', 'Fingerprint', 'Type'), columns) self.assertEqual( - (( - self.keypairs[0].name, - self.keypairs[0].fingerprint, - self.keypairs[0].type, - ), ), - tuple(data) + ( + ( + self.keypairs[0].name, + self.keypairs[0].fingerprint, + self.keypairs[0].type, + ), + ), + tuple(data), ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_keypair_list_with_user(self, sm_mock): - users_mock = self.app.client_manager.identity.users users_mock.reset_mock() users_mock.get.return_value = fakes.FakeResource( @@ -468,7 +465,8 @@ class TestKeypairList(TestKeypair): ) arglist = [ - '--user', identity_fakes.user_name, + '--user', + identity_fakes.user_name, ] verifylist = [ ('user', identity_fakes.user_name), @@ -484,19 +482,21 @@ class TestKeypairList(TestKeypair): self.assertEqual(('Name', 'Fingerprint', 'Type'), columns) self.assertEqual( - (( - self.keypairs[0].name, - self.keypairs[0].fingerprint, - self.keypairs[0].type, - ), ), - tuple(data) + ( + ( + self.keypairs[0].name, + self.keypairs[0].fingerprint, + self.keypairs[0].type, + ), + ), + tuple(data), ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_keypair_list_with_user_pre_v210(self, sm_mock): - arglist = [ - '--user', identity_fakes.user_name, + '--user', + identity_fakes.user_name, ] verifylist = [ ('user', identity_fakes.user_name), @@ -504,15 +504,14 @@ class TestKeypairList(TestKeypair): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.10 or greater is required', str(ex)) + '--os-compute-api-version 2.10 or greater is required', str(ex) + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_keypair_list_with_project(self, sm_mock): - projects_mock = self.app.client_manager.identity.tenants projects_mock.reset_mock() projects_mock.get.return_value = fakes.FakeResource( @@ -545,44 +544,52 @@ class TestKeypairList(TestKeypair): self.assertEqual(('Name', 'Fingerprint', 'Type'), columns) self.assertEqual( - (( - self.keypairs[0].name, - self.keypairs[0].fingerprint, - self.keypairs[0].type, - ), ), - tuple(data) + ( + ( + self.keypairs[0].name, + self.keypairs[0].fingerprint, + self.keypairs[0].type, + ), + ), + tuple(data), ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_keypair_list_with_project_pre_v210(self, sm_mock): - arglist = ['--project', identity_fakes.project_name] verifylist = [('project', identity_fakes.project_name)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.10 or greater is required', str(ex)) + '--os-compute-api-version 2.10 or greater is required', str(ex) + ) def test_keypair_list_conflicting_user_options(self): - arglist = [ - '--user', identity_fakes.user_name, - '--project', identity_fakes.project_name, + '--user', + identity_fakes.user_name, + '--project', + identity_fakes.project_name, ] self.assertRaises( tests_utils.ParserException, - self.check_parser, self.cmd, arglist, None) + self.check_parser, + self.cmd, + arglist, + None, + ) @mock.patch.object( - sdk_utils, 'supports_microversion', new=mock.Mock(return_value=True)) + sdk_utils, 'supports_microversion', new=mock.Mock(return_value=True) + ) def test_keypair_list_with_limit(self): arglist = [ - '--limit', '1', + '--limit', + '1', ] verifylist = [ ('limit', 1), @@ -594,10 +601,12 @@ class TestKeypairList(TestKeypair): self.sdk_client.keypairs.assert_called_with(limit=1) @mock.patch.object( - sdk_utils, 'supports_microversion', new=mock.Mock(return_value=False)) + sdk_utils, 'supports_microversion', new=mock.Mock(return_value=False) + ) def test_keypair_list_with_limit_pre_v235(self): arglist = [ - '--limit', '1', + '--limit', + '1', ] verifylist = [ ('limit', 1), @@ -605,18 +614,20 @@ class TestKeypairList(TestKeypair): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.35 or greater is required', str(ex)) + '--os-compute-api-version 2.35 or greater is required', str(ex) + ) @mock.patch.object( - sdk_utils, 'supports_microversion', new=mock.Mock(return_value=True)) + sdk_utils, 'supports_microversion', new=mock.Mock(return_value=True) + ) def test_keypair_list_with_marker(self): arglist = [ - '--marker', 'test_kp', + '--marker', + 'test_kp', ] verifylist = [ ('marker', 'test_kp'), @@ -628,10 +639,12 @@ class TestKeypairList(TestKeypair): self.sdk_client.keypairs.assert_called_with(marker='test_kp') @mock.patch.object( - sdk_utils, 'supports_microversion', new=mock.Mock(return_value=False)) + sdk_utils, 'supports_microversion', new=mock.Mock(return_value=False) + ) def test_keypair_list_with_marker_pre_v235(self): arglist = [ - '--marker', 'test_kp', + '--marker', + 'test_kp', ] verifylist = [ ('marker', 'test_kp'), @@ -639,16 +652,15 @@ class TestKeypairList(TestKeypair): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.35 or greater is required', str(ex)) + '--os-compute-api-version 2.35 or greater is required', str(ex) + ) class TestKeypairShow(TestKeypair): - keypair = compute_fakes.FakeKeypair.create_one_keypair() def setUp(self): @@ -658,28 +670,27 @@ class TestKeypairShow(TestKeypair): self.cmd = keypair.ShowKeypair(self.app, None) - self.columns = ( - "fingerprint", - "name", - "type", - "user_id" - ) + self.columns = ("fingerprint", "name", "type", "user_id") self.data = ( self.keypair.fingerprint, self.keypair.name, self.keypair.type, - self.keypair.user_id + self.keypair.user_id, ) def test_keypair_show_no_options(self): - arglist = [] verifylist = [] # Missing required args should boil here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_keypair_show(self): self.sdk_client.find_keypair.return_value = self.keypair @@ -688,36 +699,25 @@ class TestKeypairShow(TestKeypair): self.keypair.fingerprint, self.keypair.name, self.keypair.type, - self.keypair.user_id + self.keypair.user_id, ) - arglist = [ - self.keypair.name - ] - verifylist = [ - ('name', self.keypair.name) - ] + arglist = [self.keypair.name] + verifylist = [('name', self.keypair.name)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.find_keypair.assert_called_with( - self.keypair.name, - ignore_missing=False + self.keypair.name, ignore_missing=False ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_keypair_show_public(self): - arglist = [ - '--public-key', - self.keypair.name - ] - verifylist = [ - ('public_key', True), - ('name', self.keypair.name) - ] + arglist = ['--public-key', self.keypair.name] + verifylist = [('public_key', True), ('name', self.keypair.name)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -734,16 +734,17 @@ class TestKeypairShow(TestKeypair): self.keypair.fingerprint, self.keypair.name, self.keypair.type, - self.keypair.user_id + self.keypair.user_id, ) arglist = [ - '--user', identity_fakes.user_name, + '--user', + identity_fakes.user_name, self.keypair.name, ] verifylist = [ ('user', identity_fakes.user_name), - ('name', self.keypair.name) + ('name', self.keypair.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -753,7 +754,7 @@ class TestKeypairShow(TestKeypair): self.sdk_client.find_keypair.assert_called_with( self.keypair.name, ignore_missing=False, - user_id=identity_fakes.user_id + user_id=identity_fakes.user_id, ) self.assertEqual(self.columns, columns) @@ -761,20 +762,20 @@ class TestKeypairShow(TestKeypair): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_keypair_show_with_user_pre_v210(self, sm_mock): - arglist = [ - '--user', identity_fakes.user_name, + '--user', + identity_fakes.user_name, self.keypair.name, ] verifylist = [ ('user', identity_fakes.user_name), - ('name', self.keypair.name) + ('name', self.keypair.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.10 or greater is required', str(ex)) + '--os-compute-api-version 2.10 or greater is required', str(ex) + ) diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py index 93517f2f..235e24c6 100644 --- a/openstackclient/tests/unit/compute/v2/test_server.py +++ b/openstackclient/tests/unit/compute/v2/test_server.py @@ -38,30 +38,31 @@ from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes class TestPowerStateColumn(utils.TestCase): - def test_human_readable(self): self.assertEqual( - 'NOSTATE', server.PowerStateColumn(0x00).human_readable()) - self.assertEqual( - 'Running', server.PowerStateColumn(0x01).human_readable()) - self.assertEqual( - '', server.PowerStateColumn(0x02).human_readable()) - self.assertEqual( - 'Paused', server.PowerStateColumn(0x03).human_readable()) + 'NOSTATE', server.PowerStateColumn(0x00).human_readable() + ) self.assertEqual( - 'Shutdown', server.PowerStateColumn(0x04).human_readable()) + 'Running', server.PowerStateColumn(0x01).human_readable() + ) + self.assertEqual('', server.PowerStateColumn(0x02).human_readable()) self.assertEqual( - '', server.PowerStateColumn(0x05).human_readable()) + 'Paused', server.PowerStateColumn(0x03).human_readable() + ) self.assertEqual( - 'Crashed', server.PowerStateColumn(0x06).human_readable()) + 'Shutdown', server.PowerStateColumn(0x04).human_readable() + ) + self.assertEqual('', server.PowerStateColumn(0x05).human_readable()) self.assertEqual( - 'Suspended', server.PowerStateColumn(0x07).human_readable()) + 'Crashed', server.PowerStateColumn(0x06).human_readable() + ) self.assertEqual( - 'N/A', server.PowerStateColumn(0x08).human_readable()) + 'Suspended', server.PowerStateColumn(0x07).human_readable() + ) + self.assertEqual('N/A', server.PowerStateColumn(0x08).human_readable()) class TestServer(compute_fakes.TestComputev2): - def setUp(self): super(TestServer, self).setUp() @@ -74,8 +75,9 @@ class TestServer(compute_fakes.TestComputev2): self.sdk_client = self.app.client_manager.sdk_connection.compute # Get a shortcut to the compute client ServerMigrationsManager Mock - self.server_migrations_mock = \ + self.server_migrations_mock = ( self.app.client_manager.compute.server_migrations + ) self.server_migrations_mock.reset_mock() # Get a shortcut to the compute client VolumeManager mock @@ -118,19 +120,22 @@ class TestServer(compute_fakes.TestComputev2): self.methods = {} patcher = mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True) + sdk_utils, 'supports_microversion', return_value=True + ) self.addCleanup(patcher.stop) self.supports_microversion_mock = patcher.start() self._set_mock_microversion( - self.app.client_manager.compute.api_version.get_string()) + self.app.client_manager.compute.api_version.get_string() + ) def _set_mock_microversion(self, mock_v): """Set a specific microversion for the mock supports_microversion().""" self.supports_microversion_mock.reset_mock(return_value=True) self.supports_microversion_mock.side_effect = ( - lambda _, v: - api_versions.APIVersion(v) <= api_versions.APIVersion(mock_v)) + lambda _, v: api_versions.APIVersion(v) + <= api_versions.APIVersion(mock_v) + ) def setup_servers_mock(self, count): # If we are creating more than one server, make one of them @@ -139,20 +144,20 @@ class TestServer(compute_fakes.TestComputev2): servers = compute_fakes.FakeServer.create_servers( attrs=self.attrs, methods=self.methods, - count=count - 1 if include_bfv else count + count=count - 1 if include_bfv else count, ) if include_bfv: attrs = copy.deepcopy(self.attrs) attrs['image'] = '' bfv_server = compute_fakes.FakeServer.create_one_server( - attrs=attrs, - methods=self.methods + attrs=attrs, methods=self.methods ) servers.append(bfv_server) # This is the return value for utils.find_resource() - self.servers_mock.get = compute_fakes.FakeServer.get_servers(servers, - 0) + self.servers_mock.get = compute_fakes.FakeServer.get_servers( + servers, 0 + ) return servers def setup_sdk_servers_mock(self, count): @@ -193,7 +198,6 @@ class TestServer(compute_fakes.TestComputev2): class TestServerAddFixedIP(TestServer): - def setUp(self): super().setUp() @@ -214,7 +218,7 @@ class TestServerAddFixedIP(TestServer): with mock.patch.object( self.app.client_manager, 'is_network_endpoint_enabled', - return_value=False + return_value=False, ): arglist = [ servers[0].id, @@ -230,8 +234,7 @@ class TestServerAddFixedIP(TestServer): result = self.cmd.take_action(parsed_args) self.sdk_client.add_fixed_ip_to_server.assert_called_once_with( - servers[0].id, - network['id'] + servers[0].id, network['id'] ) # the legacy API operates asynchronously self.assertEqual(((), ()), result) @@ -246,12 +249,13 @@ class TestServerAddFixedIP(TestServer): with mock.patch.object( self.app.client_manager, 'is_network_endpoint_enabled', - return_value=False + return_value=False, ): arglist = [ servers[0].id, network['id'], - '--fixed-ip-address', '5.6.7.8' + '--fixed-ip-address', + '5.6.7.8', ] verifylist = [ ('server', servers[0].id), @@ -263,8 +267,7 @@ class TestServerAddFixedIP(TestServer): result = self.cmd.take_action(parsed_args) self.sdk_client.add_fixed_ip_to_server.assert_called_once_with( - servers[0].id, - network['id'] + servers[0].id, network['id'] ) # the legacy API operates asynchronously self.assertEqual(((), ()), result) @@ -279,29 +282,30 @@ class TestServerAddFixedIP(TestServer): with mock.patch.object( self.app.client_manager, 'is_network_endpoint_enabled', - return_value=False + return_value=False, ): arglist = [ servers[0].id, network['id'], - '--fixed-ip-address', '5.6.7.8', - '--tag', 'tag1' + '--fixed-ip-address', + '5.6.7.8', + '--tag', + 'tag1', ] verifylist = [ ('server', servers[0].id), ('network', network['id']), ('fixed_ip_address', '5.6.7.8'), - ('tag', 'tag1') + ('tag', 'tag1'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.49 or greater is required', - str(ex)) + '--os-compute-api-version 2.49 or greater is required', str(ex) + ) @mock.patch.object(sdk_utils, 'supports_microversion') def test_server_add_fixed_ip_pre_v249_with_tag(self, sm_mock): @@ -313,29 +317,30 @@ class TestServerAddFixedIP(TestServer): with mock.patch.object( self.app.client_manager, 'is_network_endpoint_enabled', - return_value=False + return_value=False, ): arglist = [ servers[0].id, network['id'], - '--fixed-ip-address', '5.6.7.8', - '--tag', 'tag1' + '--fixed-ip-address', + '5.6.7.8', + '--tag', + 'tag1', ] verifylist = [ ('server', servers[0].id), ('network', network['id']), ('fixed_ip_address', '5.6.7.8'), - ('tag', 'tag1') + ('tag', 'tag1'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.49 or greater is required', - str(ex)) + '--os-compute-api-version 2.49 or greater is required', str(ex) + ) @mock.patch.object(sdk_utils, 'supports_microversion') def test_server_add_fixed_ip(self, sm_mock): @@ -349,15 +354,12 @@ class TestServerAddFixedIP(TestServer): with mock.patch.object( self.app.client_manager, 'is_network_endpoint_enabled', - return_value=False + return_value=False, ): - arglist = [ - servers[0].id, - network['id'] - ] + arglist = [servers[0].id, network['id']] verifylist = [ ('server', servers[0].id), - ('network', network['id']) + ('network', network['id']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -383,8 +385,7 @@ class TestServerAddFixedIP(TestServer): self.assertEqual(expected_columns, columns) self.assertEqual(expected_data, tuple(data)) self.sdk_client.create_server_interface.assert_called_once_with( - servers[0].id, - net_id=network['id'] + servers[0].id, net_id=network['id'] ) @mock.patch.object(sdk_utils, 'supports_microversion') @@ -399,17 +400,18 @@ class TestServerAddFixedIP(TestServer): with mock.patch.object( self.app.client_manager, 'is_network_endpoint_enabled', - return_value=False + return_value=False, ): arglist = [ servers[0].id, network['id'], - '--fixed-ip-address', '5.6.7.8' + '--fixed-ip-address', + '5.6.7.8', ] verifylist = [ ('server', servers[0].id), ('network', network['id']), - ('fixed_ip_address', '5.6.7.8') + ('fixed_ip_address', '5.6.7.8'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -439,7 +441,7 @@ class TestServerAddFixedIP(TestServer): self.sdk_client.create_server_interface.assert_called_once_with( servers[0].id, net_id=network['id'], - fixed_ips=[{'ip_address': '5.6.7.8'}] + fixed_ips=[{'ip_address': '5.6.7.8'}], ) @mock.patch.object(sdk_utils, 'supports_microversion') @@ -454,19 +456,21 @@ class TestServerAddFixedIP(TestServer): with mock.patch.object( self.app.client_manager, 'is_network_endpoint_enabled', - return_value=False + return_value=False, ): arglist = [ servers[0].id, network['id'], - '--fixed-ip-address', '5.6.7.8', - '--tag', 'tag1' + '--fixed-ip-address', + '5.6.7.8', + '--tag', + 'tag1', ] verifylist = [ ('server', servers[0].id), ('network', network['id']), ('fixed_ip_address', '5.6.7.8'), - ('tag', 'tag1') + ('tag', 'tag1'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -501,11 +505,8 @@ class TestServerAddFixedIP(TestServer): ) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.floating_ip_add' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_add') class TestServerAddFloatingIPCompute(compute_fakes.TestComputev2): - def setUp(self): super(TestServerAddFloatingIPCompute, self).setUp() @@ -537,7 +538,8 @@ class TestServerAddFloatingIPCompute(compute_fakes.TestComputev2): def test_server_add_floating_ip_fixed(self, fip_mock): _floating_ip = compute_fakes.FakeFloatingIP.create_one_floating_ip() arglist = [ - '--fixed-ip-address', _floating_ip['fixed_ip'], + '--fixed-ip-address', + _floating_ip['fixed_ip'], 'server1', _floating_ip['ip'], ] @@ -561,7 +563,6 @@ class TestServerAddFloatingIPNetwork( TestServer, network_fakes.TestNetworkV2, ): - def setUp(self): super(TestServerAddFloatingIPNetwork, self).setUp() @@ -602,10 +603,7 @@ class TestServerAddFloatingIPNetwork( self.network.ports.assert_called_once_with( device_id=_server.id, ) - self.network.update_ip.assert_called_once_with( - _floating_ip, - **attrs - ) + self.network.update_ip.assert_called_once_with(_floating_ip, **attrs) def test_server_add_floating_ip_no_ports(self): server = compute_fakes.FakeServer.create_one_server() @@ -626,12 +624,11 @@ class TestServerAddFloatingIPNetwork( parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - 'No attached ports found to associate floating IP with', - str(ex)) + 'No attached ports found to associate floating IP with', str(ex) + ) self.network.find_ip.assert_called_once_with( floating_ip['floating_ip_address'], @@ -670,8 +667,11 @@ class TestServerAddFloatingIPNetwork( if success: self.cmd.take_action(parsed_args) else: - self.assertRaises(sdk_exceptions.NotFoundException, - self.cmd.take_action, parsed_args) + self.assertRaises( + sdk_exceptions.NotFoundException, + self.cmd.take_action, + parsed_args, + ) attrs = { 'port_id': _port.id, @@ -690,8 +690,7 @@ class TestServerAddFloatingIPNetwork( self.network.update_ip.assert_has_calls(calls) else: self.network.update_ip.assert_called_once_with( - _floating_ip, - **attrs + _floating_ip, **attrs ) def test_server_add_floating_ip_one_external_gateway(self): @@ -707,7 +706,8 @@ class TestServerAddFloatingIPNetwork( # The user has specified a fixed ip that matches one of the ports # already attached to the instance. arglist = [ - '--fixed-ip-address', _port.fixed_ips[0]['ip_address'], + '--fixed-ip-address', + _port.fixed_ips[0]['ip_address'], _server.id, _floating_ip['floating_ip_address'], ] @@ -734,10 +734,7 @@ class TestServerAddFloatingIPNetwork( self.network.ports.assert_called_once_with( device_id=_server.id, ) - self.network.update_ip.assert_called_once_with( - _floating_ip, - **attrs - ) + self.network.update_ip.assert_called_once_with(_floating_ip, **attrs) def test_server_add_floating_ip_with_fixed_ip_no_port_found(self): _server = compute_fakes.FakeServer.create_one_server() @@ -750,7 +747,8 @@ class TestServerAddFloatingIPNetwork( # ports already attached to the instance. nonexistent_ip = '10.0.0.9' arglist = [ - '--fixed-ip-address', nonexistent_ip, + '--fixed-ip-address', + nonexistent_ip, _server.id, _floating_ip['floating_ip_address'], ] @@ -761,8 +759,9 @@ class TestServerAddFloatingIPNetwork( ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.network.find_ip.assert_called_once_with( _floating_ip['floating_ip_address'], @@ -775,7 +774,6 @@ class TestServerAddFloatingIPNetwork( class TestServerAddPort(TestServer): - def setUp(self): super(TestServerAddPort, self).setUp() @@ -798,22 +796,21 @@ class TestServerAddPort(TestServer): servers[0].id, port, ] - verifylist = [ - ('server', servers[0].id), - ('port', port) - ] + verifylist = [('server', servers[0].id), ('port', port)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.create_server_interface.assert_called_once_with( - servers[0], port_id=port_id) + servers[0], port_id=port_id + ) self.assertIsNone(result) def test_server_add_port(self): self._test_server_add_port(self.find_port.return_value.id) self.find_port.assert_called_once_with( - 'fake-port', ignore_missing=False) + 'fake-port', ignore_missing=False + ) def test_server_add_port_no_neutron(self): self.app.client_manager.network_endpoint_enabled = False @@ -823,14 +820,16 @@ class TestServerAddPort(TestServer): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_server_add_port_with_tag(self, sm_mock): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.49') + '2.49' + ) servers = self.setup_sdk_servers_mock(count=1) self.find_port.return_value.id = 'fake-port' arglist = [ servers[0].id, 'fake-port', - '--tag', 'tag1', + '--tag', + 'tag1', ] verifylist = [ ('server', servers[0].id), @@ -843,21 +842,22 @@ class TestServerAddPort(TestServer): self.assertIsNone(result) self.sdk_client.create_server_interface.assert_called_once_with( - servers[0], - port_id='fake-port', - tag='tag1') + servers[0], port_id='fake-port', tag='tag1' + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_server_add_port_with_tag_pre_v249(self, sm_mock): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.48') + '2.48' + ) servers = self.setup_servers_mock(count=1) self.find_port.return_value.id = 'fake-port' arglist = [ servers[0].id, 'fake-port', - '--tag', 'tag1', + '--tag', + 'tag1', ] verifylist = [ ('server', servers[0].id), @@ -867,16 +867,14 @@ class TestServerAddPort(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.49 or greater is required', - str(ex)) + '--os-compute-api-version 2.49 or greater is required', str(ex) + ) class TestServerVolume(TestServer): - def setUp(self): super(TestServerVolume, self).setUp() @@ -891,15 +889,16 @@ class TestServerVolume(TestServer): 'server_id': self.servers[0].id, 'volume_id': self.volumes[0].id, } - self.volume_attachment = \ - compute_fakes.create_one_volume_attachment(attrs=attrs) + self.volume_attachment = compute_fakes.create_one_volume_attachment( + attrs=attrs + ) - self.sdk_client.create_volume_attachment.return_value = \ + self.sdk_client.create_volume_attachment.return_value = ( self.volume_attachment + ) class TestServerAddVolume(TestServerVolume): - def setUp(self): super(TestServerAddVolume, self).setUp() @@ -908,9 +907,9 @@ class TestServerAddVolume(TestServerVolume): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_server_add_volume(self, sm_mock): - arglist = [ - '--device', '/dev/sdb', + '--device', + '/dev/sdb', self.servers[0].id, self.volumes[0].id, ] @@ -935,7 +934,8 @@ class TestServerAddVolume(TestServerVolume): self.assertEqual(expected_columns, columns) self.assertEqual(expected_data, data) self.sdk_client.create_volume_attachment.assert_called_once_with( - self.servers[0], volumeId=self.volumes[0].id, device='/dev/sdb') + self.servers[0], volumeId=self.volumes[0].id, device='/dev/sdb' + ) @mock.patch.object(sdk_utils, 'supports_microversion') def test_server_add_volume_with_tag(self, sm_mock): @@ -943,11 +943,14 @@ class TestServerAddVolume(TestServerVolume): if version == '2.49': return True return False + sm_mock.side_effect = side_effect arglist = [ - '--device', '/dev/sdb', - '--tag', 'foo', + '--device', + '/dev/sdb', + '--tag', + 'foo', self.servers[0].id, self.volumes[0].id, ] @@ -977,14 +980,16 @@ class TestServerAddVolume(TestServerVolume): self.servers[0], volumeId=self.volumes[0].id, device='/dev/sdb', - tag='foo') + tag='foo', + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_server_add_volume_with_tag_pre_v249(self, sm_mock): arglist = [ self.servers[0].id, self.volumes[0].id, - '--tag', 'foo', + '--tag', + 'foo', ] verifylist = [ ('server', self.servers[0].id), @@ -994,12 +999,11 @@ class TestServerAddVolume(TestServerVolume): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.49 or greater is required', - str(ex)) + '--os-compute-api-version 2.49 or greater is required', str(ex) + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_server_add_volume_with_enable_delete_on_termination( @@ -1009,7 +1013,8 @@ class TestServerAddVolume(TestServerVolume): self.volume_attachment.delete_on_termination = True arglist = [ '--enable-delete-on-termination', - '--device', '/dev/sdb', + '--device', + '/dev/sdb', self.servers[0].id, self.volumes[0].id, ] @@ -1046,7 +1051,8 @@ class TestServerAddVolume(TestServerVolume): self.servers[0], volumeId=self.volumes[0].id, device='/dev/sdb', - delete_on_termination=True) + delete_on_termination=True, + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_server_add_volume_with_disable_delete_on_termination( @@ -1057,7 +1063,8 @@ class TestServerAddVolume(TestServerVolume): arglist = [ '--disable-delete-on-termination', - '--device', '/dev/sdb', + '--device', + '/dev/sdb', self.servers[0].id, self.volumes[0].id, ] @@ -1095,7 +1102,8 @@ class TestServerAddVolume(TestServerVolume): self.servers[0], volumeId=self.volumes[0].id, device='/dev/sdb', - delete_on_termination=False) + delete_on_termination=False, + ) @mock.patch.object(sdk_utils, 'supports_microversion') def test_server_add_volume_with_enable_delete_on_termination_pre_v279( @@ -1106,6 +1114,7 @@ class TestServerAddVolume(TestServerVolume): if version == '2.79': return False return True + sm_mock.side_effect = side_effect arglist = [ @@ -1120,11 +1129,12 @@ class TestServerAddVolume(TestServerVolume): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - ex = self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) - self.assertIn('--os-compute-api-version 2.79 or greater is required', - str(ex)) + ex = self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) + self.assertIn( + '--os-compute-api-version 2.79 or greater is required', str(ex) + ) @mock.patch.object(sdk_utils, 'supports_microversion') def test_server_add_volume_with_disable_delete_on_termination_pre_v279( @@ -1135,6 +1145,7 @@ class TestServerAddVolume(TestServerVolume): if version == '2.79': return False return True + sm_mock.side_effect = side_effect arglist = [ @@ -1149,11 +1160,12 @@ class TestServerAddVolume(TestServerVolume): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - ex = self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) - self.assertIn('--os-compute-api-version 2.79 or greater is required', - str(ex)) + ex = self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) + self.assertIn( + '--os-compute-api-version 2.79 or greater is required', str(ex) + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_server_add_volume_with_disable_and_enable_delete_on_termination( @@ -1163,7 +1175,8 @@ class TestServerAddVolume(TestServerVolume): arglist = [ '--enable-delete-on-termination', '--disable-delete-on-termination', - '--device', '/dev/sdb', + '--device', + '/dev/sdb', self.servers[0].id, self.volumes[0].id, ] @@ -1175,15 +1188,21 @@ class TestServerAddVolume(TestServerVolume): ('enable_delete_on_termination', True), ('disable_delete_on_termination', True), ] - ex = self.assertRaises(utils.ParserException, - self.check_parser, - self.cmd, arglist, verifylist) - self.assertIn('argument --disable-delete-on-termination: not allowed ' - 'with argument --enable-delete-on-termination', str(ex)) + ex = self.assertRaises( + utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) + self.assertIn( + 'argument --disable-delete-on-termination: not allowed ' + 'with argument --enable-delete-on-termination', + str(ex), + ) class TestServerRemoveVolume(TestServerVolume): - def setUp(self): super(TestServerRemoveVolume, self).setUp() @@ -1214,7 +1233,6 @@ class TestServerRemoveVolume(TestServerVolume): class TestServerAddNetwork(TestServer): - def setUp(self): super(TestServerAddNetwork, self).setUp() @@ -1237,22 +1255,21 @@ class TestServerAddNetwork(TestServer): servers[0].id, network, ] - verifylist = [ - ('server', servers[0].id), - ('network', network) - ] + verifylist = [('server', servers[0].id), ('network', network)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.create_server_interface.assert_called_once_with( - servers[0], net_id=net_id) + servers[0], net_id=net_id + ) self.assertIsNone(result) def test_server_add_network(self): self._test_server_add_network(self.find_network.return_value.id) self.find_network.assert_called_once_with( - 'fake-network', ignore_missing=False) + 'fake-network', ignore_missing=False + ) def test_server_add_network_no_neutron(self): self.app.client_manager.network_endpoint_enabled = False @@ -1262,7 +1279,8 @@ class TestServerAddNetwork(TestServer): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_server_add_network_with_tag(self, sm_mock): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.49') + '2.49' + ) servers = self.setup_sdk_servers_mock(count=1) self.find_network.return_value.id = 'fake-network' @@ -1270,7 +1288,8 @@ class TestServerAddNetwork(TestServer): arglist = [ servers[0].id, 'fake-network', - '--tag', 'tag1', + '--tag', + 'tag1', ] verifylist = [ ('server', servers[0].id), @@ -1283,15 +1302,14 @@ class TestServerAddNetwork(TestServer): self.assertIsNone(result) self.sdk_client.create_server_interface.assert_called_once_with( - servers[0], - net_id='fake-network', - tag='tag1' + servers[0], net_id='fake-network', tag='tag1' ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_server_add_network_with_tag_pre_v249(self, sm_mock): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.48') + '2.48' + ) servers = self.setup_sdk_servers_mock(count=1) self.find_network.return_value.id = 'fake-network' @@ -1299,7 +1317,8 @@ class TestServerAddNetwork(TestServer): arglist = [ servers[0].id, 'fake-network', - '--tag', 'tag1', + '--tag', + 'tag1', ] verifylist = [ ('server', servers[0].id), @@ -1309,35 +1328,29 @@ class TestServerAddNetwork(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.49 or greater is required', - str(ex)) + '--os-compute-api-version 2.49 or greater is required', str(ex) + ) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.security_group_find' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_find') class TestServerAddSecurityGroup(TestServer): - def setUp(self): super(TestServerAddSecurityGroup, self).setUp() - self.security_group = \ + self.security_group = ( compute_fakes.FakeSecurityGroup.create_one_security_group() + ) - attrs = { - 'security_groups': [{'name': self.security_group['id']}] - } + attrs = {'security_groups': [{'name': self.security_group['id']}]} methods = { 'add_security_group': None, } self.server = compute_fakes.FakeServer.create_one_server( - attrs=attrs, - methods=methods + attrs=attrs, methods=methods ) # This is the return value for utils.find_resource() for server self.servers_mock.get.return_value = self.server @@ -1347,10 +1360,7 @@ class TestServerAddSecurityGroup(TestServer): def test_server_add_security_group(self, sg_find_mock): sg_find_mock.return_value = self.security_group - arglist = [ - self.server.id, - self.security_group['id'] - ] + arglist = [self.server.id, self.security_group['id']] verifylist = [ ('server', self.server.id), ('group', self.security_group['id']), @@ -1368,7 +1378,6 @@ class TestServerAddSecurityGroup(TestServer): class TestServerCreate(TestServer): - columns = ( 'OS-EXT-STS:power_state', 'addresses', @@ -1383,7 +1392,8 @@ class TestServerCreate(TestServer): def datalist(self): datalist = ( server.PowerStateColumn( - getattr(self.new_server, 'OS-EXT-STS:power_state')), + getattr(self.new_server, 'OS-EXT-STS:power_state') + ), format_columns.DictListColumn({}), self.flavor.name + ' (' + self.new_server.flavor.get('id') + ')', self.new_server.id, @@ -1401,7 +1411,8 @@ class TestServerCreate(TestServer): 'networks': {}, } self.new_server = compute_fakes.FakeServer.create_one_server( - attrs=attrs) + attrs=attrs + ) # This is the return value for utils.find_resource(). # This is for testing --wait option. @@ -1434,13 +1445,20 @@ class TestServerCreate(TestServer): ('server_name', self.new_server.name), ] - self.assertRaises(utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_server_create_minimal(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', + '--image', + 'image1', + '--flavor', + 'flavor1', self.new_server.name, ] verifylist = [ @@ -1475,10 +1493,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -1488,15 +1503,23 @@ class TestServerCreate(TestServer): def test_server_create_with_options(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--key-name', 'keyname', - '--property', 'Beta=b', - '--security-group', 'securitygroup', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--key-name', + 'keyname', + '--property', + 'Beta=b', + '--security-group', + 'securitygroup', '--use-config-drive', - '--password', 'passw0rd', - '--hint', 'a=b', - '--hint', 'a=c', + '--password', + 'passw0rd', + '--hint', + 'a=b', + '--hint', + 'a=c', self.new_server.name, ] verifylist = [ @@ -1516,15 +1539,16 @@ class TestServerCreate(TestServer): # returns a two-part tuple with a tuple of column names and a tuple of # data to be shown. fake_sg = network_fakes.FakeSecurityGroup.create_security_groups() - mock_find_sg = ( - network_fakes.FakeSecurityGroup.get_security_groups(fake_sg) + mock_find_sg = network_fakes.FakeSecurityGroup.get_security_groups( + fake_sg ) self.app.client_manager.network.find_security_group = mock_find_sg columns, data = self.cmd.take_action(parsed_args) - mock_find_sg.assert_called_once_with('securitygroup', - ignore_missing=False) + mock_find_sg.assert_called_once_with( + 'securitygroup', ignore_missing=False + ) # Set expected values kwargs = dict( meta={'Beta': 'b'}, @@ -1544,10 +1568,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -1555,11 +1576,16 @@ class TestServerCreate(TestServer): def test_server_create_with_not_exist_security_group(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--key-name', 'keyname', - '--security-group', 'securitygroup', - '--security-group', 'not_exist_sg', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--key-name', + 'keyname', + '--security-group', + 'securitygroup', + '--security-group', + 'not_exist_sg', self.new_server.name, ] verifylist = [ @@ -1572,25 +1598,29 @@ class TestServerCreate(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) fake_sg = network_fakes.FakeSecurityGroup.create_security_groups( - count=1) + count=1 + ) fake_sg.append(exceptions.NotFound(code=404)) - mock_find_sg = ( - network_fakes.FakeSecurityGroup.get_security_groups(fake_sg) + mock_find_sg = network_fakes.FakeSecurityGroup.get_security_groups( + fake_sg ) self.app.client_manager.network.find_security_group = mock_find_sg - self.assertRaises(exceptions.NotFound, - self.cmd.take_action, - parsed_args) - mock_find_sg.assert_called_with('not_exist_sg', - ignore_missing=False) + self.assertRaises( + exceptions.NotFound, self.cmd.take_action, parsed_args + ) + mock_find_sg.assert_called_with('not_exist_sg', ignore_missing=False) def test_server_create_with_security_group_in_nova_network(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--key-name', 'keyname', - '--security-group', 'securitygroup', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--key-name', + 'keyname', + '--security-group', + 'securitygroup', self.new_server.name, ] verifylist = [ @@ -1602,13 +1632,16 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(self.app.client_manager, - 'is_network_endpoint_enabled', - return_value=False): - with mock.patch.object(self.app.client_manager.compute.api, - 'security_group_find', - return_value={'name': 'fake_sg'} - ) as mock_find: + with mock.patch.object( + self.app.client_manager, + 'is_network_endpoint_enabled', + return_value=False, + ): + with mock.patch.object( + self.app.client_manager.compute.api, + 'security_group_find', + return_value={'name': 'fake_sg'}, + ) as mock_find: columns, data = self.cmd.take_action(parsed_args) mock_find.assert_called_once_with('securitygroup') @@ -1631,10 +1664,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -1642,57 +1672,68 @@ class TestServerCreate(TestServer): def test_server_create_with_network(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--network', 'net1', - '--nic', 'net-id=net1,v4-fixed-ip=10.0.0.2', - '--port', 'port1', - '--network', 'net1', - '--network', 'auto', # this is a network called 'auto' - '--nic', 'port-id=port2', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--network', + 'net1', + '--nic', + 'net-id=net1,v4-fixed-ip=10.0.0.2', + '--port', + 'port1', + '--network', + 'net1', + '--network', + 'auto', # this is a network called 'auto' + '--nic', + 'port-id=port2', self.new_server.name, ] verifylist = [ ('image', 'image1'), ('flavor', 'flavor1'), - ('nics', [ - { - 'net-id': 'net1', - 'port-id': '', - 'v4-fixed-ip': '', - 'v6-fixed-ip': '', - }, - { - 'net-id': 'net1', - 'port-id': '', - 'v4-fixed-ip': '10.0.0.2', - 'v6-fixed-ip': '', - }, - { - 'net-id': '', - 'port-id': 'port1', - 'v4-fixed-ip': '', - 'v6-fixed-ip': '', - }, - { - 'net-id': 'net1', - 'port-id': '', - 'v4-fixed-ip': '', - 'v6-fixed-ip': '', - }, - { - 'net-id': 'auto', - 'port-id': '', - 'v4-fixed-ip': '', - 'v6-fixed-ip': '', - }, - { - 'net-id': '', - 'port-id': 'port2', - 'v4-fixed-ip': '', - 'v6-fixed-ip': '', - }, - ]), + ( + 'nics', + [ + { + 'net-id': 'net1', + 'port-id': '', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + }, + { + 'net-id': 'net1', + 'port-id': '', + 'v4-fixed-ip': '10.0.0.2', + 'v6-fixed-ip': '', + }, + { + 'net-id': '', + 'port-id': 'port1', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + }, + { + 'net-id': 'net1', + 'port-id': '', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + }, + { + 'net-id': 'auto', + 'port-id': '', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + }, + { + 'net-id': '', + 'port-id': 'port2', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + }, + ], + ), ('config_drive', False), ('server_name', self.new_server.name), ] @@ -1703,7 +1744,8 @@ class TestServerCreate(TestServer): self.app.client_manager.auth_ref = mock.Mock() self.app.client_manager.auth_ref.service_catalog = mock.Mock() self.app.client_manager.auth_ref.service_catalog.get_endpoints = ( - get_endpoints) + get_endpoints + ) find_network = mock.Mock() find_port = mock.Mock() @@ -1714,9 +1756,10 @@ class TestServerCreate(TestServer): port1_resource = mock.Mock(id='port1_uuid') port2_resource = mock.Mock(id='port2_uuid') find_network.return_value = network_resource - find_port.side_effect = (lambda port_id, ignore_missing: - {"port1": port1_resource, - "port2": port2_resource}[port_id]) + find_port.side_effect = lambda port_id, ignore_missing: { + "port1": port1_resource, + "port2": port2_resource, + }[port_id] # Mock sdk APIs. _network_1 = mock.Mock(id='net1_uuid') @@ -1729,9 +1772,10 @@ class TestServerCreate(TestServer): "net1": _network_1, "auto": _network_auto, }[net_id] - find_port.side_effect = (lambda port_id, ignore_missing: - {"port1": _port1, - "port2": _port2}[port_id]) + find_port.side_effect = lambda port_id, ignore_missing: { + "port1": _port1, + "port2": _port2, + }[port_id] self.app.client_manager.network.find_network = find_network self.app.client_manager.network.find_port = find_port @@ -1753,39 +1797,50 @@ class TestServerCreate(TestServer): availability_zone=None, admin_pass=None, block_device_mapping_v2=[], - nics=[{'net-id': 'net1_uuid', - 'v4-fixed-ip': '', - 'v6-fixed-ip': '', - 'port-id': ''}, - {'net-id': 'net1_uuid', - 'v4-fixed-ip': '10.0.0.2', - 'v6-fixed-ip': '', - 'port-id': ''}, - {'net-id': '', - 'v4-fixed-ip': '', - 'v6-fixed-ip': '', - 'port-id': 'port1_uuid'}, - {'net-id': 'net1_uuid', - 'v4-fixed-ip': '', - 'v6-fixed-ip': '', - 'port-id': ''}, - {'net-id': 'auto_uuid', - 'v4-fixed-ip': '', - 'v6-fixed-ip': '', - 'port-id': ''}, - {'net-id': '', - 'v4-fixed-ip': '', - 'v6-fixed-ip': '', - 'port-id': 'port2_uuid'}], + nics=[ + { + 'net-id': 'net1_uuid', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + 'port-id': '', + }, + { + 'net-id': 'net1_uuid', + 'v4-fixed-ip': '10.0.0.2', + 'v6-fixed-ip': '', + 'port-id': '', + }, + { + 'net-id': '', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + 'port-id': 'port1_uuid', + }, + { + 'net-id': 'net1_uuid', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + 'port-id': '', + }, + { + 'net-id': 'auto_uuid', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + 'port-id': '', + }, + { + 'net-id': '', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + 'port-id': 'port2_uuid', + }, + ], scheduler_hints={}, config_drive=None, ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -1793,24 +1848,33 @@ class TestServerCreate(TestServer): def test_server_create_with_network_tag(self): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.43') + '2.43' + ) arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--nic', 'net-id=net1,tag=foo', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--nic', + 'net-id=net1,tag=foo', self.new_server.name, ] verifylist = [ ('image', 'image1'), ('flavor', 'flavor1'), - ('nics', [ - { - 'net-id': 'net1', 'port-id': '', - 'v4-fixed-ip': '', 'v6-fixed-ip': '', - 'tag': 'foo', - }, - ]), + ( + 'nics', + [ + { + 'net-id': 'net1', + 'port-id': '', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + 'tag': 'foo', + }, + ], + ), ('server_name', self.new_server.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -1859,10 +1923,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -1873,35 +1934,46 @@ class TestServerCreate(TestServer): def test_server_create_with_network_tag_pre_v243(self): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.42') + '2.42' + ) arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--nic', 'net-id=net1,tag=foo', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--nic', + 'net-id=net1,tag=foo', self.new_server.name, ] verifylist = [ ('image', 'image1'), ('flavor', 'flavor1'), - ('nics', [ - { - 'net-id': 'net1', 'port-id': '', - 'v4-fixed-ip': '', 'v6-fixed-ip': '', - 'tag': 'foo', - }, - ]), + ( + 'nics', + [ + { + 'net-id': 'net1', + 'port-id': '', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + 'tag': 'foo', + }, + ], + ), ('server_name', self.new_server.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, self.cmd.take_action, parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def _test_server_create_with_auto_network(self, arglist): # requires API microversion 2.37 or later self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.37') + '2.37' + ) verifylist = [ ('image', 'image1'), @@ -1933,10 +2005,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -1947,17 +2016,22 @@ class TestServerCreate(TestServer): def test_server_create_with_auto_network_legacy(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--nic', 'auto', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--nic', + 'auto', self.new_server.name, ] self._test_server_create_with_auto_network(arglist) def test_server_create_with_auto_network(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', + '--image', + 'image1', + '--flavor', + 'flavor1', '--auto-network', self.new_server.name, ] @@ -1966,12 +2040,16 @@ class TestServerCreate(TestServer): def test_server_create_with_auto_network_pre_v237(self): # use an API microversion that's too old self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.36') + '2.36' + ) arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--nic', 'auto', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--nic', + 'auto', self.new_server.name, ] verifylist = [ @@ -2000,11 +2078,14 @@ class TestServerCreate(TestServer): """Tests creating a server without specifying --nic using 2.37.""" # requires API microversion 2.37 or later self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.37') + '2.37' + ) arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', + '--image', + 'image1', + '--flavor', + 'flavor1', self.new_server.name, ] verifylist = [ @@ -2036,10 +2117,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -2048,7 +2126,8 @@ class TestServerCreate(TestServer): def _test_server_create_with_none_network(self, arglist): # requires API microversion 2.37 or later self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.37') + '2.37' + ) verifylist = [ ('image', 'image1'), @@ -2080,10 +2159,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -2094,17 +2170,22 @@ class TestServerCreate(TestServer): def test_server_create_with_none_network_legacy(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--nic', 'none', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--nic', + 'none', self.new_server.name, ] self._test_server_create_with_none_network(arglist) def test_server_create_with_none_network(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', + '--image', + 'image1', + '--flavor', + 'flavor1', '--no-network', self.new_server.name, ] @@ -2113,12 +2194,16 @@ class TestServerCreate(TestServer): def test_server_create_with_none_network_pre_v237(self): # use an API microversion that's too old self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.36') + '2.36' + ) arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--nic', 'none', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--nic', + 'none', self.new_server.name, ] @@ -2146,24 +2231,34 @@ class TestServerCreate(TestServer): def test_server_create_with_conflict_network_options(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--nic', 'none', - '--nic', 'auto', - '--nic', 'port-id=port1', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--nic', + 'none', + '--nic', + 'auto', + '--nic', + 'port-id=port1', self.new_server.name, ] verifylist = [ ('image', 'image1'), ('flavor', 'flavor1'), - ('nics', [ - 'none', - 'auto', - { - 'net-id': '', 'port-id': 'port1', - 'v4-fixed-ip': '', 'v6-fixed-ip': '', - }, - ]), + ( + 'nics', + [ + 'none', + 'auto', + { + 'net-id': '', + 'port-id': 'port1', + 'v4-fixed-ip': '', + 'v6-fixed-ip': '', + }, + ], + ), ('config_drive', False), ('server_name', self.new_server.name), ] @@ -2174,7 +2269,8 @@ class TestServerCreate(TestServer): self.app.client_manager.auth_ref = mock.Mock() self.app.client_manager.auth_ref.service_catalog = mock.Mock() self.app.client_manager.auth_ref.service_catalog.get_endpoints = ( - get_endpoints) + get_endpoints + ) find_port = mock.Mock() network_client = self.app.client_manager.network @@ -2182,68 +2278,95 @@ class TestServerCreate(TestServer): port_resource = mock.Mock(id='port1_uuid') find_port.return_value = port_resource - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertNotCalled(self.servers_mock.create) def test_server_create_with_invalid_network_options(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--nic', 'abcdefgh', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--nic', + 'abcdefgh', self.new_server.name, ] self.assertRaises( argparse.ArgumentTypeError, self.check_parser, - self.cmd, arglist, []) + self.cmd, + arglist, + [], + ) self.assertNotCalled(self.servers_mock.create) def test_server_create_with_invalid_network_key(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--nic', 'abcdefgh=12324', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--nic', + 'abcdefgh=12324', self.new_server.name, ] self.assertRaises( argparse.ArgumentTypeError, self.check_parser, - self.cmd, arglist, []) + self.cmd, + arglist, + [], + ) self.assertNotCalled(self.servers_mock.create) def test_server_create_with_empty_network_key_value(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--nic', 'net-id=', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--nic', + 'net-id=', self.new_server.name, ] self.assertRaises( argparse.ArgumentTypeError, self.check_parser, - self.cmd, arglist, []) + self.cmd, + arglist, + [], + ) self.assertNotCalled(self.servers_mock.create) def test_server_create_with_only_network_key(self): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--nic', 'net-id', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--nic', + 'net-id', self.new_server.name, ] self.assertRaises( argparse.ArgumentTypeError, self.check_parser, - self.cmd, arglist, []) + self.cmd, + arglist, + [], + ) self.assertNotCalled(self.servers_mock.create) @mock.patch.object(common_utils, 'wait_for_status', return_value=True) def test_server_create_with_wait_ok(self, mock_wait_for_status): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', + '--image', + 'image1', + '--flavor', + 'flavor1', '--wait', self.new_server.name, ] @@ -2280,10 +2403,7 @@ class TestServerCreate(TestServer): config_drive=None, ) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) self.assertEqual(self.datalist(), data) @@ -2291,8 +2411,10 @@ class TestServerCreate(TestServer): @mock.patch.object(common_utils, 'wait_for_status', return_value=False) def test_server_create_with_wait_fails(self, mock_wait_for_status): arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', + '--image', + 'image1', + '--flavor', + 'flavor1', '--wait', self.new_server.name, ] @@ -2331,10 +2453,7 @@ class TestServerCreate(TestServer): config_drive=None, ) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) @mock.patch('openstackclient.compute.v2.server.io.open') @@ -2344,9 +2463,12 @@ class TestServerCreate(TestServer): mock_open.read.return_value = '#!/bin/sh' arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--user-data', 'userdata.sh', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--user-data', + 'userdata.sh', self.new_server.name, ] verifylist = [ @@ -2388,10 +2510,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -2399,8 +2518,10 @@ class TestServerCreate(TestServer): def test_server_create_with_volume(self): arglist = [ - '--flavor', self.flavor.id, - '--volume', self.volume.name, + '--flavor', + self.flavor.id, + '--volume', + self.volume.name, self.new_server.name, ] verifylist = [ @@ -2425,33 +2546,33 @@ class TestServerCreate(TestServer): 'key_name': None, 'availability_zone': None, 'admin_pass': None, - 'block_device_mapping_v2': [{ - 'uuid': self.volume.id, - 'boot_index': 0, - 'source_type': 'volume', - 'destination_type': 'volume', - }], + 'block_device_mapping_v2': [ + { + 'uuid': self.volume.id, + 'boot_index': 0, + 'source_type': 'volume', + 'destination_type': 'volume', + } + ], 'nics': [], 'scheduler_hints': {}, 'config_drive': None, } # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - None, - self.flavor, - **kwargs + self.new_server.name, None, self.flavor, **kwargs ) - self.volumes_mock.get.assert_called_once_with( - self.volume.name) + self.volumes_mock.get.assert_called_once_with(self.volume.name) self.assertEqual(self.columns, columns) self.assertEqual(self.datalist(), data) def test_server_create_with_snapshot(self): arglist = [ - '--flavor', self.flavor.id, - '--snapshot', self.snapshot.name, + '--flavor', + self.flavor.id, + '--snapshot', + self.snapshot.name, self.new_server.name, ] verifylist = [ @@ -2476,26 +2597,24 @@ class TestServerCreate(TestServer): 'key_name': None, 'availability_zone': None, 'admin_pass': None, - 'block_device_mapping_v2': [{ - 'uuid': self.snapshot.id, - 'boot_index': 0, - 'source_type': 'snapshot', - 'destination_type': 'volume', - 'delete_on_termination': False, - }], + 'block_device_mapping_v2': [ + { + 'uuid': self.snapshot.id, + 'boot_index': 0, + 'source_type': 'snapshot', + 'destination_type': 'volume', + 'delete_on_termination': False, + } + ], 'nics': [], 'scheduler_hints': {}, 'config_drive': None, } # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - None, - self.flavor, - **kwargs + self.new_server.name, None, self.flavor, **kwargs ) - self.snapshots_mock.get.assert_called_once_with( - self.snapshot.name) + self.snapshots_mock.get.assert_called_once_with(self.snapshot.name) self.assertEqual(self.columns, columns) self.assertEqual(self.datalist(), data) @@ -2503,20 +2622,25 @@ class TestServerCreate(TestServer): def test_server_create_with_block_device(self): block_device = f'uuid={self.volume.id},source_type=volume,boot_index=0' arglist = [ - '--flavor', self.flavor.id, - '--block-device', block_device, + '--flavor', + self.flavor.id, + '--block-device', + block_device, self.new_server.name, ] verifylist = [ ('image', None), ('flavor', self.flavor.id), - ('block_devices', [ - { - 'uuid': self.volume.id, - 'source_type': 'volume', - 'boot_index': '0', - }, - ]), + ( + 'block_devices', + [ + { + 'uuid': self.volume.id, + 'source_type': 'volume', + 'boot_index': '0', + }, + ], + ), ('server_name', self.new_server.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -2550,10 +2674,7 @@ class TestServerCreate(TestServer): } # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - None, - self.flavor, - **kwargs + self.new_server.name, None, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -2561,7 +2682,8 @@ class TestServerCreate(TestServer): def test_server_create_with_block_device_full(self): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.67') + '2.67' + ) block_device = ( f'uuid={self.volume.id},source_type=volume,' @@ -2573,35 +2695,42 @@ class TestServerCreate(TestServer): block_device_alt = f'uuid={self.volume_alt.id},source_type=volume' arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device', block_device, - '--block-device', block_device_alt, + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device', + block_device, + '--block-device', + block_device_alt, self.new_server.name, ] verifylist = [ ('image', 'image1'), ('flavor', self.flavor.id), - ('block_devices', [ - { - 'uuid': self.volume.id, - 'source_type': 'volume', - 'destination_type': 'volume', - 'disk_bus': 'ide', - 'device_type': 'disk', - 'device_name': 'sdb', - 'guest_format': 'ext4', - 'volume_size': '64', - 'volume_type': 'foo', - 'boot_index': '1', - 'delete_on_termination': 'true', - 'tag': 'foo', - }, - { - 'uuid': self.volume_alt.id, - 'source_type': 'volume', - }, - ]), + ( + 'block_devices', + [ + { + 'uuid': self.volume.id, + 'source_type': 'volume', + 'destination_type': 'volume', + 'disk_bus': 'ide', + 'device_type': 'disk', + 'device_name': 'sdb', + 'guest_format': 'ext4', + 'volume_size': '64', + 'volume_type': 'foo', + 'boot_index': '1', + 'delete_on_termination': 'true', + 'tag': 'foo', + }, + { + 'uuid': self.volume_alt.id, + 'source_type': 'volume', + }, + ], + ), ('server_name', self.new_server.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -2648,10 +2777,7 @@ class TestServerCreate(TestServer): } # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -2659,7 +2785,8 @@ class TestServerCreate(TestServer): def test_server_create_with_block_device_from_file(self): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.67') + '2.67' + ) block_device = { 'uuid': self.volume.id, @@ -2681,9 +2808,12 @@ class TestServerCreate(TestServer): fp.flush() arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device', fp.name, + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device', + fp.name, self.new_server.name, ] verifylist = [ @@ -2709,153 +2839,177 @@ class TestServerCreate(TestServer): 'key_name': None, 'availability_zone': None, 'admin_pass': None, - 'block_device_mapping_v2': [{ - 'uuid': self.volume.id, - 'source_type': 'volume', - 'destination_type': 'volume', - 'disk_bus': 'ide', - 'device_name': 'sdb', - 'volume_size': 64, - 'guest_format': 'ext4', - 'boot_index': 1, - 'device_type': 'disk', - 'delete_on_termination': True, - 'tag': 'foo', - 'volume_type': 'foo', - }], + 'block_device_mapping_v2': [ + { + 'uuid': self.volume.id, + 'source_type': 'volume', + 'destination_type': 'volume', + 'disk_bus': 'ide', + 'device_name': 'sdb', + 'volume_size': 64, + 'guest_format': 'ext4', + 'boot_index': 1, + 'device_type': 'disk', + 'delete_on_termination': True, + 'tag': 'foo', + 'volume_type': 'foo', + } + ], 'nics': 'auto', 'scheduler_hints': {}, 'config_drive': None, } # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) self.assertEqual(self.datalist(), data) def test_server_create_with_block_device_invalid_boot_index(self): - block_device = \ + block_device = ( f'uuid={self.volume.name},source_type=volume,boot_index=foo' + ) arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device', block_device, + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device', + block_device, self.new_server.name, ] parsed_args = self.check_parser(self.cmd, arglist, []) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn('The boot_index key of --block-device ', str(ex)) def test_server_create_with_block_device_invalid_source_type(self): block_device = f'uuid={self.volume.name},source_type=foo' arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device', block_device, + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device', + block_device, self.new_server.name, ] parsed_args = self.check_parser(self.cmd, arglist, []) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn('The source_type key of --block-device ', str(ex)) def test_server_create_with_block_device_invalid_destination_type(self): - block_device = \ - f'uuid={self.volume.name},destination_type=foo' - arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device', block_device, + block_device = f'uuid={self.volume.name},destination_type=foo' + arglist = [ + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device', + block_device, self.new_server.name, ] parsed_args = self.check_parser(self.cmd, arglist, []) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn('The destination_type key of --block-device ', str(ex)) def test_server_create_with_block_device_invalid_shutdown(self): - block_device = \ - f'uuid={self.volume.name},delete_on_termination=foo' - arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device', block_device, + block_device = f'uuid={self.volume.name},delete_on_termination=foo' + arglist = [ + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device', + block_device, self.new_server.name, ] parsed_args = self.check_parser(self.cmd, arglist, []) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - 'The delete_on_termination key of --block-device ', str(ex)) + 'The delete_on_termination key of --block-device ', str(ex) + ) def test_server_create_with_block_device_tag_pre_v242(self): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.41') + '2.41' + ) - block_device = \ - f'uuid={self.volume.name},tag=foo' + block_device = f'uuid={self.volume.name},tag=foo' arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device', block_device, + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device', + block_device, self.new_server.name, ] parsed_args = self.check_parser(self.cmd, arglist, []) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.42 or greater is required', - str(ex)) + '--os-compute-api-version 2.42 or greater is required', str(ex) + ) def test_server_create_with_block_device_volume_type_pre_v267(self): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.66') + '2.66' + ) block_device = f'uuid={self.volume.name},volume_type=foo' arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device', block_device, + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device', + block_device, self.new_server.name, ] parsed_args = self.check_parser(self.cmd, arglist, []) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.67 or greater is required', - str(ex)) + '--os-compute-api-version 2.67 or greater is required', str(ex) + ) def test_server_create_with_block_device_mapping(self): arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device-mapping', 'vda=' + self.volume.name + ':::false', + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device-mapping', + 'vda=' + self.volume.name + ':::false', self.new_server.name, ] verifylist = [ ('image', 'image1'), ('flavor', self.flavor.id), - ('block_device_mapping', [ - { - 'device_name': 'vda', - 'uuid': self.volume.name, - 'source_type': 'volume', - 'destination_type': 'volume', - 'delete_on_termination': 'false', - } - ]), + ( + 'block_device_mapping', + [ + { + 'device_name': 'vda', + 'uuid': self.volume.name, + 'source_type': 'volume', + 'destination_type': 'volume', + 'delete_on_termination': 'false', + } + ], + ), ('config_drive', False), ('server_name', self.new_server.name), ] @@ -2876,23 +3030,22 @@ class TestServerCreate(TestServer): key_name=None, availability_zone=None, admin_pass=None, - block_device_mapping_v2=[{ - 'device_name': 'vda', - 'uuid': self.volume.id, - 'destination_type': 'volume', - 'source_type': 'volume', - 'delete_on_termination': 'false', - }], + block_device_mapping_v2=[ + { + 'device_name': 'vda', + 'uuid': self.volume.id, + 'destination_type': 'volume', + 'source_type': 'volume', + 'delete_on_termination': 'false', + } + ], nics=[], scheduler_hints={}, config_drive=None, ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -2900,22 +3053,28 @@ class TestServerCreate(TestServer): def test_server_create_with_block_device_mapping_min_input(self): arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device-mapping', 'vdf=' + self.volume.name, + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device-mapping', + 'vdf=' + self.volume.name, self.new_server.name, ] verifylist = [ ('image', 'image1'), ('flavor', self.flavor.id), - ('block_device_mapping', [ - { - 'device_name': 'vdf', - 'uuid': self.volume.name, - 'source_type': 'volume', - 'destination_type': 'volume', - } - ]), + ( + 'block_device_mapping', + [ + { + 'device_name': 'vdf', + 'uuid': self.volume.name, + 'source_type': 'volume', + 'destination_type': 'volume', + } + ], + ), ('config_drive', False), ('server_name', self.new_server.name), ] @@ -2936,22 +3095,21 @@ class TestServerCreate(TestServer): key_name=None, availability_zone=None, admin_pass=None, - block_device_mapping_v2=[{ - 'device_name': 'vdf', - 'uuid': self.volume.id, - 'destination_type': 'volume', - 'source_type': 'volume', - }], + block_device_mapping_v2=[ + { + 'device_name': 'vdf', + 'uuid': self.volume.id, + 'destination_type': 'volume', + 'source_type': 'volume', + } + ], nics=[], scheduler_hints={}, config_drive=None, ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -2959,22 +3117,28 @@ class TestServerCreate(TestServer): def test_server_create_with_block_device_mapping_default_input(self): arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device-mapping', 'vdf=' + self.volume.name + ':::', + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device-mapping', + 'vdf=' + self.volume.name + ':::', self.new_server.name, ] verifylist = [ ('image', 'image1'), ('flavor', self.flavor.id), - ('block_device_mapping', [ - { - 'device_name': 'vdf', - 'uuid': self.volume.name, - 'source_type': 'volume', - 'destination_type': 'volume', - } - ]), + ( + 'block_device_mapping', + [ + { + 'device_name': 'vdf', + 'uuid': self.volume.name, + 'source_type': 'volume', + 'destination_type': 'volume', + } + ], + ), ('config_drive', False), ('server_name', self.new_server.name), ] @@ -2995,22 +3159,21 @@ class TestServerCreate(TestServer): key_name=None, availability_zone=None, admin_pass=None, - block_device_mapping_v2=[{ - 'device_name': 'vdf', - 'uuid': self.volume.id, - 'destination_type': 'volume', - 'source_type': 'volume', - }], + block_device_mapping_v2=[ + { + 'device_name': 'vdf', + 'uuid': self.volume.id, + 'destination_type': 'volume', + 'source_type': 'volume', + } + ], nics=[], scheduler_hints={}, config_drive=None, ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3018,8 +3181,10 @@ class TestServerCreate(TestServer): def test_server_create_with_block_device_mapping_full_input(self): arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, + '--image', + 'image1', + '--flavor', + self.flavor.id, '--block-device-mapping', 'vde=' + self.volume.name + ':volume:3:true', self.new_server.name, @@ -3027,16 +3192,19 @@ class TestServerCreate(TestServer): verifylist = [ ('image', 'image1'), ('flavor', self.flavor.id), - ('block_device_mapping', [ - { - 'device_name': 'vde', - 'uuid': self.volume.name, - 'source_type': 'volume', - 'destination_type': 'volume', - 'volume_size': '3', - 'delete_on_termination': 'true', - } - ]), + ( + 'block_device_mapping', + [ + { + 'device_name': 'vde', + 'uuid': self.volume.name, + 'source_type': 'volume', + 'destination_type': 'volume', + 'volume_size': '3', + 'delete_on_termination': 'true', + } + ], + ), ('config_drive', False), ('server_name', self.new_server.name), ] @@ -3057,24 +3225,23 @@ class TestServerCreate(TestServer): key_name=None, availability_zone=None, admin_pass=None, - block_device_mapping_v2=[{ - 'device_name': 'vde', - 'uuid': self.volume.id, - 'destination_type': 'volume', - 'source_type': 'volume', - 'delete_on_termination': 'true', - 'volume_size': '3' - }], + block_device_mapping_v2=[ + { + 'device_name': 'vde', + 'uuid': self.volume.id, + 'destination_type': 'volume', + 'source_type': 'volume', + 'delete_on_termination': 'true', + 'volume_size': '3', + } + ], nics=[], scheduler_hints={}, config_drive=None, ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3082,8 +3249,10 @@ class TestServerCreate(TestServer): def test_server_create_with_block_device_mapping_snapshot(self): arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, + '--image', + 'image1', + '--flavor', + self.flavor.id, '--block-device-mapping', 'vds=' + self.volume.name + ':snapshot:5:true', self.new_server.name, @@ -3091,16 +3260,19 @@ class TestServerCreate(TestServer): verifylist = [ ('image', 'image1'), ('flavor', self.flavor.id), - ('block_device_mapping', [ - { - 'device_name': 'vds', - 'uuid': self.volume.name, - 'source_type': 'snapshot', - 'volume_size': '5', - 'destination_type': 'volume', - 'delete_on_termination': 'true', - } - ]), + ( + 'block_device_mapping', + [ + { + 'device_name': 'vds', + 'uuid': self.volume.name, + 'source_type': 'snapshot', + 'volume_size': '5', + 'destination_type': 'volume', + 'delete_on_termination': 'true', + } + ], + ), ('config_drive', False), ('server_name', self.new_server.name), ] @@ -3121,24 +3293,23 @@ class TestServerCreate(TestServer): key_name=None, availability_zone=None, admin_pass=None, - block_device_mapping_v2=[{ - 'device_name': 'vds', - 'uuid': self.snapshot.id, - 'destination_type': 'volume', - 'source_type': 'snapshot', - 'delete_on_termination': 'true', - 'volume_size': '5' - }], + block_device_mapping_v2=[ + { + 'device_name': 'vds', + 'uuid': self.snapshot.id, + 'destination_type': 'volume', + 'source_type': 'snapshot', + 'delete_on_termination': 'true', + 'volume_size': '5', + } + ], nics=[], scheduler_hints={}, config_drive=None, ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3146,31 +3317,38 @@ class TestServerCreate(TestServer): def test_server_create_with_block_device_mapping_multiple(self): arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device-mapping', 'vdb=' + self.volume.name + ':::false', - '--block-device-mapping', 'vdc=' + self.volume.name + ':::true', + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device-mapping', + 'vdb=' + self.volume.name + ':::false', + '--block-device-mapping', + 'vdc=' + self.volume.name + ':::true', self.new_server.name, ] verifylist = [ ('image', 'image1'), ('flavor', self.flavor.id), - ('block_device_mapping', [ - { - 'device_name': 'vdb', - 'uuid': self.volume.name, - 'source_type': 'volume', - 'destination_type': 'volume', - 'delete_on_termination': 'false', - }, - { - 'device_name': 'vdc', - 'uuid': self.volume.name, - 'source_type': 'volume', - 'destination_type': 'volume', - 'delete_on_termination': 'true', - }, - ]), + ( + 'block_device_mapping', + [ + { + 'device_name': 'vdb', + 'uuid': self.volume.name, + 'source_type': 'volume', + 'destination_type': 'volume', + 'delete_on_termination': 'false', + }, + { + 'device_name': 'vdc', + 'uuid': self.volume.name, + 'source_type': 'volume', + 'destination_type': 'volume', + 'delete_on_termination': 'true', + }, + ], + ), ('config_drive', False), ('server_name', self.new_server.name), ] @@ -3205,7 +3383,7 @@ class TestServerCreate(TestServer): 'destination_type': 'volume', 'source_type': 'volume', 'delete_on_termination': 'true', - } + }, ], nics=[], scheduler_hints={}, @@ -3213,10 +3391,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3225,39 +3400,57 @@ class TestServerCreate(TestServer): def test_server_create_with_block_device_mapping_invalid_format(self): # block device mapping don't contain equal sign "=" arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device-mapping', 'not_contain_equal_sign', + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device-mapping', + 'not_contain_equal_sign', self.new_server.name, ] self.assertRaises( argparse.ArgumentTypeError, self.check_parser, - self.cmd, arglist, []) + self.cmd, + arglist, + [], + ) # block device mapping don't contain device name "=uuid:::true" arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device-mapping', '=uuid:::true', + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device-mapping', + '=uuid:::true', self.new_server.name, ] self.assertRaises( argparse.ArgumentTypeError, self.check_parser, - self.cmd, arglist, []) + self.cmd, + arglist, + [], + ) def test_server_create_with_block_device_mapping_no_uuid(self): arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--block-device-mapping', 'vdb=', + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--block-device-mapping', + 'vdb=', self.new_server.name, ] self.assertRaises( argparse.ArgumentTypeError, self.check_parser, - self.cmd, arglist, []) + self.cmd, + arglist, + [], + ) def test_server_create_volume_boot_from_volume_conflict(self): # Tests that specifying --volume and --boot-from-volume results in @@ -3266,9 +3459,12 @@ class TestServerCreate(TestServer): # only specify --volume and --boot-from-volume for this test since # the validation is not handled with argparse. arglist = [ - '--flavor', self.flavor.id, - '--volume', 'volume1', - '--boot-from-volume', '1', + '--flavor', + self.flavor.id, + '--volume', + 'volume1', + '--boot-from-volume', + '1', self.new_server.name, ] verifylist = [ @@ -3280,16 +3476,20 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - ex = self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + ex = self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) # Assert it is the error we expect. - self.assertIn('--volume is not allowed with --boot-from-volume', - str(ex)) + self.assertIn( + '--volume is not allowed with --boot-from-volume', str(ex) + ) def test_server_create_image_property(self): arglist = [ - '--image-property', 'hypervisor_type=qemu', - '--flavor', 'flavor1', + '--image-property', + 'hypervisor_type=qemu', + '--flavor', + 'flavor1', self.new_server.name, ] verifylist = [ @@ -3329,10 +3529,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - _image, - self.flavor, - **kwargs + self.new_server.name, _image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3340,14 +3537,19 @@ class TestServerCreate(TestServer): def test_server_create_image_property_multi(self): arglist = [ - '--image-property', 'hypervisor_type=qemu', - '--image-property', 'hw_disk_bus=ide', - '--flavor', 'flavor1', + '--image-property', + 'hypervisor_type=qemu', + '--image-property', + 'hw_disk_bus=ide', + '--flavor', + 'flavor1', self.new_server.name, ] verifylist = [ - ('image_properties', {'hypervisor_type': 'qemu', - 'hw_disk_bus': 'ide'}), + ( + 'image_properties', + {'hypervisor_type': 'qemu', 'hw_disk_bus': 'ide'}, + ), ('flavor', 'flavor1'), ('config_drive', False), ('server_name', self.new_server.name), @@ -3383,10 +3585,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - _image, - self.flavor, - **kwargs + self.new_server.name, _image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3394,14 +3593,19 @@ class TestServerCreate(TestServer): def test_server_create_image_property_missed(self): arglist = [ - '--image-property', 'hypervisor_type=qemu', - '--image-property', 'hw_disk_bus=virtio', - '--flavor', 'flavor1', + '--image-property', + 'hypervisor_type=qemu', + '--image-property', + 'hw_disk_bus=virtio', + '--flavor', + 'flavor1', self.new_server.name, ] verifylist = [ - ('image_properties', {'hypervisor_type': 'qemu', - 'hw_disk_bus': 'virtio'}), + ( + 'image_properties', + {'hypervisor_type': 'qemu', 'hw_disk_bus': 'virtio'}, + ), ('flavor', 'flavor1'), ('config_drive', False), ('server_name', self.new_server.name), @@ -3417,29 +3621,30 @@ class TestServerCreate(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_create_image_property_with_image_list(self): arglist = [ '--image-property', 'owner_specified.openstack.object=image/cirros', - '--flavor', 'flavor1', + '--flavor', + 'flavor1', self.new_server.name, ] verifylist = [ - ('image_properties', - {'owner_specified.openstack.object': 'image/cirros'}), + ( + 'image_properties', + {'owner_specified.openstack.object': 'image/cirros'}, + ), ('flavor', 'flavor1'), ('server_name', self.new_server.name), ] # create a image_info as the side_effect of the fake image_list() image_info = { - 'properties': { - 'owner_specified.openstack.object': 'image/cirros' - } + 'properties': {'owner_specified.openstack.object': 'image/cirros'} } target_image = image_fakes.create_one_image(image_info) @@ -3470,10 +3675,7 @@ class TestServerCreate(TestServer): # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - target_image, - self.flavor, - **kwargs + self.new_server.name, target_image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3482,20 +3684,25 @@ class TestServerCreate(TestServer): def test_server_create_no_boot_device(self): block_device = f'uuid={self.volume.id},source_type=volume,boot_index=1' arglist = [ - '--block-device', block_device, - '--flavor', self.flavor.id, + '--block-device', + block_device, + '--flavor', + self.flavor.id, self.new_server.name, ] verifylist = [ ('image', None), ('flavor', self.flavor.id), - ('block_devices', [ - { - 'uuid': self.volume.id, - 'source_type': 'volume', - 'boot_index': '1', - }, - ]), + ( + 'block_devices', + [ + { + 'uuid': self.volume.id, + 'source_type': 'volume', + 'boot_index': '1', + }, + ], + ), ('server_name', self.new_server.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -3512,9 +3719,12 @@ class TestServerCreate(TestServer): def test_server_create_with_swap(self): arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--swap', '1024', + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--swap', + '1024', self.new_server.name, ] verifylist = [ @@ -3540,24 +3750,23 @@ class TestServerCreate(TestServer): 'key_name': None, 'availability_zone': None, 'admin_pass': None, - 'block_device_mapping_v2': [{ - 'boot_index': -1, - 'source_type': 'blank', - 'destination_type': 'local', - 'guest_format': 'swap', - 'volume_size': 1024, - 'delete_on_termination': True, - }], + 'block_device_mapping_v2': [ + { + 'boot_index': -1, + 'source_type': 'blank', + 'destination_type': 'local', + 'guest_format': 'swap', + 'volume_size': 1024, + 'delete_on_termination': True, + } + ], 'nics': [], 'scheduler_hints': {}, 'config_drive': None, } # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3565,9 +3774,12 @@ class TestServerCreate(TestServer): def test_server_create_with_ephemeral(self): arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--ephemeral', 'size=1024,format=ext4', + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--ephemeral', + 'size=1024,format=ext4', self.new_server.name, ] verifylist = [ @@ -3593,24 +3805,23 @@ class TestServerCreate(TestServer): 'key_name': None, 'availability_zone': None, 'admin_pass': None, - 'block_device_mapping_v2': [{ - 'boot_index': -1, - 'source_type': 'blank', - 'destination_type': 'local', - 'guest_format': 'ext4', - 'volume_size': '1024', - 'delete_on_termination': True, - }], + 'block_device_mapping_v2': [ + { + 'boot_index': -1, + 'source_type': 'blank', + 'destination_type': 'local', + 'guest_format': 'ext4', + 'volume_size': '1024', + 'delete_on_termination': True, + } + ], 'nics': [], 'scheduler_hints': {}, 'config_drive': None, } # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3618,60 +3829,88 @@ class TestServerCreate(TestServer): def test_server_create_with_ephemeral_missing_key(self): arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--ephemeral', 'format=ext3', + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--ephemeral', + 'format=ext3', self.new_server.name, ] self.assertRaises( argparse.ArgumentTypeError, self.check_parser, - self.cmd, arglist, []) + self.cmd, + arglist, + [], + ) def test_server_create_with_ephemeral_invalid_key(self): arglist = [ - '--image', 'image1', - '--flavor', self.flavor.id, - '--ephemeral', 'size=1024,foo=bar', + '--image', + 'image1', + '--flavor', + self.flavor.id, + '--ephemeral', + 'size=1024,foo=bar', self.new_server.name, ] self.assertRaises( argparse.ArgumentTypeError, self.check_parser, - self.cmd, arglist, []) + self.cmd, + arglist, + [], + ) def test_server_create_invalid_hint(self): # Not a key-value pair arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--hint', 'a0cf03a5-d921-4877-bb5c-86d26cf818e1', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--hint', + 'a0cf03a5-d921-4877-bb5c-86d26cf818e1', self.new_server.name, ] - self.assertRaises(argparse.ArgumentTypeError, - self.check_parser, - self.cmd, arglist, []) + self.assertRaises( + argparse.ArgumentTypeError, + self.check_parser, + self.cmd, + arglist, + [], + ) # Empty key arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--hint', '=a0cf03a5-d921-4877-bb5c-86d26cf818e1', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--hint', + '=a0cf03a5-d921-4877-bb5c-86d26cf818e1', self.new_server.name, ] - self.assertRaises(argparse.ArgumentTypeError, - self.check_parser, - self.cmd, arglist, []) + self.assertRaises( + argparse.ArgumentTypeError, + self.check_parser, + self.cmd, + arglist, + [], + ) def test_server_create_with_description_api_newer(self): - # Description is supported for nova api version 2.19 or above self.app.client_manager.compute.api_version = 2.19 arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--description', 'description1', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--description', + 'description1', self.new_server.name, ] verifylist = [ @@ -3683,9 +3922,7 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, - 'APIVersion', - return_value=2.19): + with mock.patch.object(api_versions, 'APIVersion', return_value=2.19): # In base command class ShowOne in cliff, abstract method # take_action() returns a two-part tuple with a tuple of # column names and a tuple of data to be shown. @@ -3711,10 +3948,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3723,14 +3957,16 @@ class TestServerCreate(TestServer): self.assertFalse(self.flavors_mock.called) def test_server_create_with_description_api_older(self): - # Description is not supported for nova api version below 2.19 self.app.client_manager.compute.api_version = 2.18 arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--description', 'description1', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--description', + 'description1', self.new_server.name, ] verifylist = [ @@ -3742,21 +3978,25 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, - 'APIVersion', - return_value=2.19): - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + with mock.patch.object(api_versions, 'APIVersion', return_value=2.19): + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_create_with_tag(self): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.52') + '2.52' + ) arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--tag', 'tag1', - '--tag', 'tag2', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--tag', + 'tag1', + '--tag', + 'tag2', self.new_server.name, ] verifylist = [ @@ -3790,10 +4030,7 @@ class TestServerCreate(TestServer): } # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3803,13 +4040,18 @@ class TestServerCreate(TestServer): def test_server_create_with_tag_pre_v252(self): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.51') + '2.51' + ) arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--tag', 'tag1', - '--tag', 'tag2', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--tag', + 'tag1', + '--tag', + 'tag2', self.new_server.name, ] verifylist = [ @@ -3822,22 +4064,23 @@ class TestServerCreate(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.52 or greater is required', - str(ex)) + '--os-compute-api-version 2.52 or greater is required', str(ex) + ) def test_server_create_with_host_v274(self): - # Explicit host is supported for nova api version 2.74 or above self.app.client_manager.compute.api_version = 2.74 arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--host', 'host1', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--host', + 'host1', self.new_server.name, ] verifylist = [ @@ -3849,9 +4092,7 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, - 'APIVersion', - return_value=2.74): + with mock.patch.object(api_versions, 'APIVersion', return_value=2.74): # In base command class ShowOne in cliff, abstract method # take_action() returns a two-part tuple with a tuple of # column names and a tuple of data to be shown. @@ -3877,10 +4118,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3889,14 +4127,16 @@ class TestServerCreate(TestServer): self.assertFalse(self.flavors_mock.called) def test_server_create_with_host_pre_v274(self): - # Host is not supported for nova api version below 2.74 self.app.client_manager.compute.api_version = 2.73 arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--host', 'host1', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--host', + 'host1', self.new_server.name, ] verifylist = [ @@ -3908,22 +4148,23 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, - 'APIVersion', - return_value=2.74): - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + with mock.patch.object(api_versions, 'APIVersion', return_value=2.74): + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_create_with_hypervisor_hostname_v274(self): - # Explicit hypervisor_hostname is supported for nova api version # 2.74 or above self.app.client_manager.compute.api_version = 2.74 arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--hypervisor-hostname', 'node1', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--hypervisor-hostname', + 'node1', self.new_server.name, ] verifylist = [ @@ -3935,9 +4176,7 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, - 'APIVersion', - return_value=2.74): + with mock.patch.object(api_versions, 'APIVersion', return_value=2.74): # In base command class ShowOne in cliff, abstract method # take_action() returns a two-part tuple with a tuple of # column names and a tuple of data to be shown. @@ -3963,10 +4202,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -3975,14 +4211,16 @@ class TestServerCreate(TestServer): self.assertFalse(self.flavors_mock.called) def test_server_create_with_hypervisor_hostname_pre_v274(self): - # Hypervisor_hostname is not supported for nova api version below 2.74 self.app.client_manager.compute.api_version = 2.73 arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--hypervisor-hostname', 'node1', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--hypervisor-hostname', + 'node1', self.new_server.name, ] verifylist = [ @@ -3994,23 +4232,25 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, - 'APIVersion', - return_value=2.74): - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + with mock.patch.object(api_versions, 'APIVersion', return_value=2.74): + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_create_with_host_and_hypervisor_hostname_v274(self): - # Explicit host and hypervisor_hostname is supported for nova api # version 2.74 or above self.app.client_manager.compute.api_version = 2.74 arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--host', 'host1', - '--hypervisor-hostname', 'node1', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--host', + 'host1', + '--hypervisor-hostname', + 'node1', self.new_server.name, ] verifylist = [ @@ -4023,9 +4263,7 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, - 'APIVersion', - return_value=2.74): + with mock.patch.object(api_versions, 'APIVersion', return_value=2.74): # In base command class ShowOne in cliff, abstract method # take_action() returns a two-part tuple with a tuple of # column names and a tuple of data to be shown. @@ -4052,10 +4290,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) @@ -4064,13 +4299,17 @@ class TestServerCreate(TestServer): self.assertFalse(self.flavors_mock.called) def test_server_create_with_hostname_v290(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.90') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.90' + ) arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--hostname', 'hostname', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--hostname', + 'hostname', self.new_server.name, ] verifylist = [ @@ -4111,13 +4350,17 @@ class TestServerCreate(TestServer): self.assertFalse(self.flavors_mock.called) def test_server_create_with_hostname_pre_v290(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.89') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.89' + ) arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--hostname', 'hostname', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--hostname', + 'hostname', self.new_server.name, ] verifylist = [ @@ -4130,18 +4373,23 @@ class TestServerCreate(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_create_with_trusted_image_cert(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.63') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.63' + ) arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--trusted-image-cert', 'foo', - '--trusted-image-cert', 'bar', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--trusted-image-cert', + 'foo', + '--trusted-image-cert', + 'bar', self.new_server.name, ] verifylist = [ @@ -4174,10 +4422,7 @@ class TestServerCreate(TestServer): ) # ServerManager.create(name, image, flavor, **kwargs) self.servers_mock.create.assert_called_with( - self.new_server.name, - self.image, - self.flavor, - **kwargs + self.new_server.name, self.image, self.flavor, **kwargs ) self.assertEqual(self.columns, columns) self.assertEqual(self.datalist(), data) @@ -4185,14 +4430,19 @@ class TestServerCreate(TestServer): self.assertFalse(self.flavors_mock.called) def test_server_create_with_trusted_image_cert_prev263(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.62') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.62' + ) arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--trusted-image-cert', 'foo', - '--trusted-image-cert', 'bar', + '--image', + 'image1', + '--flavor', + 'flavor1', + '--trusted-image-cert', + 'foo', + '--trusted-image-cert', + 'bar', self.new_server.name, ] verifylist = [ @@ -4205,18 +4455,22 @@ class TestServerCreate(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_create_with_trusted_image_cert_from_volume(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.63') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.63' + ) arglist = [ - '--volume', 'volume1', - '--flavor', 'flavor1', - '--trusted-image-cert', 'foo', - '--trusted-image-cert', 'bar', + '--volume', + 'volume1', + '--flavor', + 'flavor1', + '--trusted-image-cert', + 'foo', + '--trusted-image-cert', + 'bar', self.new_server.name, ] verifylist = [ @@ -4229,18 +4483,22 @@ class TestServerCreate(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_create_with_trusted_image_cert_from_snapshot(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.63') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.63' + ) arglist = [ - '--snapshot', 'snapshot1', - '--flavor', 'flavor1', - '--trusted-image-cert', 'foo', - '--trusted-image-cert', 'bar', + '--snapshot', + 'snapshot1', + '--flavor', + 'flavor1', + '--trusted-image-cert', + 'foo', + '--trusted-image-cert', + 'bar', self.new_server.name, ] verifylist = [ @@ -4253,19 +4511,24 @@ class TestServerCreate(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_create_with_trusted_image_cert_boot_from_volume(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.63') - arglist = [ - '--image', 'image1', - '--flavor', 'flavor1', - '--boot-from-volume', '1', - '--trusted-image-cert', 'foo', - '--trusted-image-cert', 'bar', + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.63' + ) + arglist = [ + '--image', + 'image1', + '--flavor', + 'flavor1', + '--boot-from-volume', + '1', + '--trusted-image-cert', + 'foo', + '--trusted-image-cert', + 'bar', self.new_server.name, ] verifylist = [ @@ -4279,13 +4542,11 @@ class TestServerCreate(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) class TestServerDelete(TestServer): - def setUp(self): super(TestServerDelete, self).setUp() @@ -4356,7 +4617,8 @@ class TestServerDelete(TestServer): def test_server_delete_with_all_projects(self, mock_find_resource): servers = self.setup_servers_mock(count=1) mock_find_resource.side_effect = compute_fakes.FakeServer.get_servers( - servers, 0, + servers, + 0, ) arglist = [ @@ -4371,16 +4633,16 @@ class TestServerDelete(TestServer): self.cmd.take_action(parsed_args) mock_find_resource.assert_called_once_with( - mock.ANY, servers[0].id, all_tenants=True, + mock.ANY, + servers[0].id, + all_tenants=True, ) @mock.patch.object(common_utils, 'wait_for_delete', return_value=True) def test_server_delete_wait_ok(self, mock_wait_for_delete): servers = self.setup_servers_mock(count=1) - arglist = [ - servers[0].id, '--wait' - ] + arglist = [servers[0].id, '--wait'] verifylist = [ ('server', [servers[0].id]), ] @@ -4400,9 +4662,7 @@ class TestServerDelete(TestServer): def test_server_delete_wait_fails(self, mock_wait_for_delete): servers = self.setup_servers_mock(count=1) - arglist = [ - servers[0].id, '--wait' - ] + arglist = [servers[0].id, '--wait'] verifylist = [ ('server', [servers[0].id]), ] @@ -4419,7 +4679,6 @@ class TestServerDelete(TestServer): class TestServerDumpCreate(TestServer): - def setUp(self): super().setUp() @@ -4454,7 +4713,6 @@ class TestServerDumpCreate(TestServer): class _TestServerList(TestServer): - # Columns to be listed up. columns = ( 'ID', @@ -4507,10 +4765,8 @@ class _TestServerList(TestServer): self.attrs = { 'status': 'ACTIVE', 'OS-EXT-STS:task_state': 'None', - 'OS-EXT-STS:power_state': 0x01, # Running - 'networks': { - u'public': [u'10.20.30.40', u'2001:db8::5'] - }, + 'OS-EXT-STS:power_state': 0x01, # Running + 'networks': {u'public': [u'10.20.30.40', u'2001:db8::5']}, 'OS-EXT-AZ:availability_zone': 'availability-zone-xxx', 'OS-EXT-SRV-ATTR:host': 'host-name-xxx', 'Metadata': format_columns.DictColumn({}), @@ -4535,7 +4791,6 @@ class _TestServerList(TestServer): class TestServerList(_TestServerList): - def setUp(self): super(TestServerList, self).setUp() @@ -4543,7 +4798,8 @@ class TestServerList(_TestServerList): self.images_mock.return_value = [ Image(id=s.image['id'], name=self.image.name) # Image will be an empty string if boot-from-volume - for s in self.servers if s.image + for s in self.servers + if s.image ] Flavor = collections.namedtuple('Flavor', 'id name') @@ -4561,7 +4817,8 @@ class TestServerList(_TestServerList): # Image will be an empty string if boot-from-volume self.image.name if s.image else server.IMAGE_STRING_FOR_BFV, self.flavor.name, - ) for s in self.servers + ) + for s in self.servers ) def test_server_list_no_option(self): @@ -4611,9 +4868,7 @@ class TestServerList(_TestServerList): s.name, s.status, getattr(s, 'task_state'), - server.PowerStateColumn( - getattr(s, 'power_state') - ), + server.PowerStateColumn(getattr(s, 'power_state')), server.AddressesColumn(s.addresses), # Image will be an empty string if boot-from-volume self.image.name if s.image else server.IMAGE_STRING_FOR_BFV, @@ -4623,7 +4878,8 @@ class TestServerList(_TestServerList): getattr(s, 'availability_zone'), server.HostColumn(getattr(s, 'hypervisor_hostname')), format_columns.DictColumn(s.metadata), - ) for s in self.servers + ) + for s in self.servers ) arglist = [ '--long', @@ -4646,18 +4902,29 @@ class TestServerList(_TestServerList): def test_server_list_column_option(self): arglist = [ - '-c', 'Project ID', - '-c', 'User ID', - '-c', 'Created At', - '-c', 'Security Groups', - '-c', 'Task State', - '-c', 'Power State', - '-c', 'Image ID', - '-c', 'Flavor ID', - '-c', 'Availability Zone', - '-c', 'Host', - '-c', 'Properties', - '--long' + '-c', + 'Project ID', + '-c', + 'User ID', + '-c', + 'Created At', + '-c', + 'Security Groups', + '-c', + 'Task State', + '-c', + 'Power State', + '-c', + 'Image ID', + '-c', + 'Flavor ID', + '-c', + 'Availability Zone', + '-c', + 'Host', + '-c', + 'Properties', + '--long', ] verifylist = [ ('long', True), @@ -4689,8 +4956,9 @@ class TestServerList(_TestServerList): server.AddressesColumn(s.addresses), # Image will be an empty string if boot-from-volume s.image['id'] if s.image else server.IMAGE_STRING_FOR_BFV, - s.flavor['id'] - ) for s in self.servers + s.flavor['id'], + ) + for s in self.servers ) arglist = [ @@ -4719,8 +4987,9 @@ class TestServerList(_TestServerList): server.AddressesColumn(s.addresses), # Image will be an empty string if boot-from-volume s.image['id'] if s.image else server.IMAGE_STRING_FOR_BFV, - s.flavor['id'] - ) for s in self.servers + s.flavor['id'], + ) + for s in self.servers ) arglist = [ @@ -4741,9 +5010,7 @@ class TestServerList(_TestServerList): self.assertEqual(self.data, tuple(data)) def test_server_list_name_lookup_one_by_one(self): - arglist = [ - '--name-lookup-one-by-one' - ] + arglist = ['--name-lookup-one-by-one'] verifylist = [ ('all_projects', False), ('no_name_lookup', False), @@ -4763,19 +5030,15 @@ class TestServerList(_TestServerList): self.assertEqual(self.data, tuple(data)) def test_server_list_with_image(self): - - arglist = [ - '--image', self.image.id - ] - verifylist = [ - ('image', self.image.id) - ] + arglist = ['--image', self.image.id] + verifylist = [('image', self.image.id)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.find_image_mock.assert_called_with(self.image.id, - ignore_missing=False) + self.find_image_mock.assert_called_with( + self.image.id, ignore_missing=False + ) self.kwargs['image'] = self.image.id self.sdk_client.servers.assert_called_with(**self.kwargs) @@ -4786,19 +5049,15 @@ class TestServerList(_TestServerList): self.assertEqual(self.data, tuple(data)) def test_server_list_with_flavor(self): - - arglist = [ - '--flavor', self.flavor.id - ] - verifylist = [ - ('flavor', self.flavor.id) - ] + arglist = ['--flavor', self.flavor.id] + verifylist = [('flavor', self.flavor.id)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.find_flavor.assert_has_calls( - [mock.call(self.flavor.id)]) + [mock.call(self.flavor.id)] + ) self.kwargs['flavor'] = self.flavor.id self.sdk_client.servers.assert_called_with(**self.kwargs) @@ -4809,11 +5068,7 @@ class TestServerList(_TestServerList): self.assertEqual(self.data, tuple(data)) def test_server_list_with_changes_since(self): - - arglist = [ - '--changes-since', '2016-03-04T06:27:59Z', - '--deleted' - ] + arglist = ['--changes-since', '2016-03-04T06:27:59Z', '--deleted'] verifylist = [ ('changes_since', '2016-03-04T06:27:59Z'), ('deleted', True), @@ -4831,9 +5086,9 @@ class TestServerList(_TestServerList): @mock.patch.object(iso8601, 'parse_date', side_effect=iso8601.ParseError) def test_server_list_with_invalid_changes_since(self, mock_parse_isotime): - arglist = [ - '--changes-since', 'Invalid time value', + '--changes-since', + 'Invalid time value', ] verifylist = [ ('changes_since', 'Invalid time value'), @@ -4844,18 +5099,19 @@ class TestServerList(_TestServerList): self.cmd.take_action(parsed_args) self.fail('CommandError should be raised.') except exceptions.CommandError as e: - self.assertEqual('Invalid changes-since value: Invalid time ' - 'value', str(e)) - mock_parse_isotime.assert_called_once_with( - 'Invalid time value' - ) + self.assertEqual( + 'Invalid changes-since value: Invalid time ' 'value', str(e) + ) + mock_parse_isotime.assert_called_once_with('Invalid time value') def test_server_list_with_tag(self): self._set_mock_microversion('2.26') arglist = [ - '--tag', 'tag1', - '--tag', 'tag2', + '--tag', + 'tag1', + '--tag', + 'tag2', ] verifylist = [ ('tags', ['tag1', 'tag2']), @@ -4875,8 +5131,10 @@ class TestServerList(_TestServerList): self._set_mock_microversion('2.25') arglist = [ - '--tag', 'tag1', - '--tag', 'tag2', + '--tag', + 'tag1', + '--tag', + 'tag2', ] verifylist = [ ('tags', ['tag1', 'tag2']), @@ -4884,18 +5142,19 @@ class TestServerList(_TestServerList): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.26 or greater is required', - str(ex)) + '--os-compute-api-version 2.26 or greater is required', str(ex) + ) def test_server_list_with_not_tag(self): self._set_mock_microversion('2.26') arglist = [ - '--not-tag', 'tag1', - '--not-tag', 'tag2', + '--not-tag', + 'tag1', + '--not-tag', + 'tag2', ] verifylist = [ ('not_tags', ['tag1', 'tag2']), @@ -4915,8 +5174,10 @@ class TestServerList(_TestServerList): self._set_mock_microversion('2.25') arglist = [ - '--not-tag', 'tag1', - '--not-tag', 'tag2', + '--not-tag', + 'tag1', + '--not-tag', + 'tag2', ] verifylist = [ ('not_tags', ['tag1', 'tag2']), @@ -4924,16 +5185,16 @@ class TestServerList(_TestServerList): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.26 or greater is required', - str(ex)) + '--os-compute-api-version 2.26 or greater is required', str(ex) + ) def test_server_list_with_availability_zone(self): arglist = [ - '--availability-zone', 'test-az', + '--availability-zone', + 'test-az', ] verifylist = [ ('availability_zone', 'test-az'), @@ -4949,7 +5210,8 @@ class TestServerList(_TestServerList): def test_server_list_with_key_name(self): arglist = [ - '--key-name', 'test-key', + '--key-name', + 'test-key', ] verifylist = [ ('key_name', 'test-key'), @@ -4997,7 +5259,8 @@ class TestServerList(_TestServerList): def test_server_list_with_progress(self): arglist = [ - '--progress', '100', + '--progress', + '100', ] verifylist = [ ('progress', 100), @@ -5013,16 +5276,22 @@ class TestServerList(_TestServerList): def test_server_list_with_progress_invalid(self): arglist = [ - '--progress', '101', + '--progress', + '101', ] self.assertRaises( utils.ParserException, - self.check_parser, self.cmd, arglist, verify_args=[]) + self.check_parser, + self.cmd, + arglist, + verify_args=[], + ) def test_server_list_with_vm_state(self): arglist = [ - '--vm-state', 'active', + '--vm-state', + 'active', ] verifylist = [ ('vm_state', 'active'), @@ -5038,7 +5307,8 @@ class TestServerList(_TestServerList): def test_server_list_with_task_state(self): arglist = [ - '--task-state', 'deleting', + '--task-state', + 'deleting', ] verifylist = [ ('task_state', 'deleting'), @@ -5054,7 +5324,8 @@ class TestServerList(_TestServerList): def test_server_list_with_power_state(self): arglist = [ - '--power-state', 'running', + '--power-state', + 'running', ] verifylist = [ ('power_state', 'running'), @@ -5076,9 +5347,7 @@ class TestServerList(_TestServerList): s.name, s.status, getattr(s, 'task_state'), - server.PowerStateColumn( - getattr(s, 'power_state') - ), + server.PowerStateColumn(getattr(s, 'power_state')), server.AddressesColumn(s.addresses), # Image will be an empty string if boot-from-volume self.image.name if s.image else server.IMAGE_STRING_FOR_BFV, @@ -5088,11 +5357,11 @@ class TestServerList(_TestServerList): getattr(s, 'availability_zone'), server.HostColumn(getattr(s, 'hypervisor_hostname')), format_columns.DictColumn(s.metadata), - ) for s in self.servers) + ) + for s in self.servers + ) - arglist = [ - '--long' - ] + arglist = ['--long'] verifylist = [ ('long', True), ] @@ -5120,7 +5389,8 @@ class TestServerList(_TestServerList): self.images_mock.return_value = [ Image(id=s.image['id'], name=self.image.name) # Image will be an empty string if boot-from-volume - for s in servers if s.image + for s in servers + if s.image ] # Add the expected host_status column and data. @@ -5131,9 +5401,7 @@ class TestServerList(_TestServerList): s.name, s.status, getattr(s, 'task_state'), - server.PowerStateColumn( - getattr(s, 'power_state') - ), + server.PowerStateColumn(getattr(s, 'power_state')), server.AddressesColumn(s.addresses), # Image will be an empty string if boot-from-volume self.image.name if s.image else server.IMAGE_STRING_FOR_BFV, @@ -5144,7 +5412,9 @@ class TestServerList(_TestServerList): server.HostColumn(getattr(s, 'hypervisor_hostname')), format_columns.DictColumn(s.metadata), s.host_status, - ) for s in servers) + ) + for s in servers + ) columns, data = self.cmd.take_action(parsed_args) @@ -5155,7 +5425,6 @@ class TestServerList(_TestServerList): class TestServerListV273(_TestServerList): - # Columns to be listed up. columns = ( 'ID', @@ -5203,7 +5472,8 @@ class TestServerListV273(_TestServerList): self.images_mock.return_value = [ Image(id=s.image['id'], name=self.image.name) # Image will be an empty string if boot-from-volume - for s in self.servers if s.image + for s in self.servers + if s.image ] # The flavor information is embedded, so now reason for this to be @@ -5219,33 +5489,26 @@ class TestServerListV273(_TestServerList): # Image will be an empty string if boot-from-volume self.image.name if s.image else server.IMAGE_STRING_FOR_BFV, self.flavor.name, - ) for s in self.servers) + ) + for s in self.servers + ) def test_server_list_with_locked_pre_v273(self): - - arglist = [ - '--locked' - ] - verifylist = [ - ('locked', True) - ] + arglist = ['--locked'] + verifylist = [('locked', True)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - ex = self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + ex = self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.73 or greater is required', str(ex)) + '--os-compute-api-version 2.73 or greater is required', str(ex) + ) def test_server_list_with_locked(self): - self._set_mock_microversion('2.73') - arglist = [ - '--locked' - ] - verifylist = [ - ('locked', True) - ] + arglist = ['--locked'] + verifylist = [('locked', True)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) @@ -5259,12 +5522,8 @@ class TestServerListV273(_TestServerList): def test_server_list_with_unlocked_v273(self): self._set_mock_microversion('2.73') - arglist = [ - '--unlocked' - ] - verifylist = [ - ('unlocked', True) - ] + arglist = ['--unlocked'] + verifylist = [('unlocked', True)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) @@ -5276,28 +5535,22 @@ class TestServerListV273(_TestServerList): self.assertCountEqual(self.data, tuple(data)) def test_server_list_with_locked_and_unlocked(self): - self._set_mock_microversion('2.73') - arglist = [ - '--locked', - '--unlocked' - ] - verifylist = [ - ('locked', True), - ('unlocked', True) - ] + arglist = ['--locked', '--unlocked'] + verifylist = [('locked', True), ('unlocked', True)] ex = self.assertRaises( utils.ParserException, - self.check_parser, self.cmd, arglist, verifylist) + self.check_parser, + self.cmd, + arglist, + verifylist, + ) self.assertIn('Argument parse failed', str(ex)) def test_server_list_with_changes_before(self): self._set_mock_microversion('2.66') - arglist = [ - '--changes-before', '2016-03-05T06:27:59Z', - '--deleted' - ] + arglist = ['--changes-before', '2016-03-05T06:27:59Z', '--deleted'] verifylist = [ ('changes_before', '2016-03-05T06:27:59Z'), ('deleted', True), @@ -5315,11 +5568,11 @@ class TestServerListV273(_TestServerList): self.assertCountEqual(self.data, tuple(data)) @mock.patch.object(iso8601, 'parse_date', side_effect=iso8601.ParseError) - def test_server_list_with_invalid_changes_before( - self, mock_parse_isotime): + def test_server_list_with_invalid_changes_before(self, mock_parse_isotime): self._set_mock_microversion('2.66') arglist = [ - '--changes-before', 'Invalid time value', + '--changes-before', + 'Invalid time value', ] verifylist = [ ('changes_before', 'Invalid time value'), @@ -5330,19 +5583,15 @@ class TestServerListV273(_TestServerList): self.cmd.take_action(parsed_args) self.fail('CommandError should be raised.') except exceptions.CommandError as e: - self.assertEqual('Invalid changes-before value: Invalid time ' - 'value', str(e)) - mock_parse_isotime.assert_called_once_with( - 'Invalid time value' - ) + self.assertEqual( + 'Invalid changes-before value: Invalid time ' 'value', str(e) + ) + mock_parse_isotime.assert_called_once_with('Invalid time value') def test_server_with_changes_before_pre_v266(self): self._set_mock_microversion('2.65') - arglist = [ - '--changes-before', '2016-03-05T06:27:59Z', - '--deleted' - ] + arglist = ['--changes-before', '2016-03-05T06:27:59Z', '--deleted'] verifylist = [ ('changes_before', '2016-03-05T06:27:59Z'), ('deleted', True), @@ -5350,9 +5599,9 @@ class TestServerListV273(_TestServerList): parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_list_v269_with_partial_constructs(self): self._set_mock_microversion('2.69') @@ -5367,19 +5616,13 @@ class TestServerListV273(_TestServerList): "tenant_id": "6f70656e737461636b20342065766572", "created": "2018-12-03T21:06:18Z", "links": [ - { - "href": "http://fake/v2.1/", - "rel": "self" - }, - { - "href": "http://fake", - "rel": "bookmark" - } + {"href": "http://fake/v2.1/", "rel": "self"}, + {"href": "http://fake", "rel": "bookmark"}, ], # We need to pass networks as {} because its defined as a property # of the novaclient Server class which gives {} by default. If not # it will fail at formatting the networks info later on. - "networks": {} + "networks": {}, } fake_server = compute_fakes.fakes.FakeResource( info=server_dict, @@ -5393,13 +5636,17 @@ class TestServerListV273(_TestServerList): next(data) partial_server = next(data) expected_row = ( - 'server-id-95a56bfc4xxxxxx28d7e418bfd97813a', '', - 'UNKNOWN', server.AddressesColumn(''), '', '') + 'server-id-95a56bfc4xxxxxx28d7e418bfd97813a', + '', + 'UNKNOWN', + server.AddressesColumn(''), + '', + '', + ) self.assertEqual(expected_row, partial_server) class TestServerLock(TestServer): - def setUp(self): super().setUp() @@ -5430,7 +5677,8 @@ class TestServerLock(TestServer): sm_mock.return_value = True arglist = [ self.server.id, - '--reason', 'blah', + '--reason', + 'blah', ] verifylist = [ ('server', [self.server.id]), @@ -5452,8 +5700,10 @@ class TestServerLock(TestServer): sm_mock.return_value = True server2 = compute_fakes.FakeServer.create_one_sdk_server() arglist = [ - self.server.id, server2.id, - '--reason', 'choo..choo', + self.server.id, + server2.id, + '--reason', + 'choo..choo', ] verifylist = [ ('server', [self.server.id, server2.id]), @@ -5474,7 +5724,8 @@ class TestServerLock(TestServer): server = compute_fakes.FakeServer.create_one_sdk_server() arglist = [ server.id, - '--reason', "blah", + '--reason', + "blah", ] verifylist = [ ('server', [server.id]), @@ -5487,12 +5738,12 @@ class TestServerLock(TestServer): parsed_args, ) self.assertIn( - '--os-compute-api-version 2.73 or greater is required', str(ex), + '--os-compute-api-version 2.73 or greater is required', + str(ex), ) class TestServerMigrate(TestServer): - def setUp(self): super(TestServerMigrate, self).setUp() @@ -5501,7 +5752,8 @@ class TestServerMigrate(TestServer): 'live_migrate': None, } self.server = compute_fakes.FakeServer.create_one_server( - methods=methods) + methods=methods + ) # This is the return value for utils.find_resource() self.servers_mock.get.return_value = self.server @@ -5535,7 +5787,9 @@ class TestServerMigrate(TestServer): # Tests that --host is allowed for a cold migration # for microversion 2.56 and greater. arglist = [ - '--host', 'fakehost', self.server.id, + '--host', + 'fakehost', + self.server.id, ] verifylist = [ ('live_migration', False), @@ -5546,8 +5800,9 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.56') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.56' + ) result = self.cmd.take_action(parsed_args) @@ -5558,7 +5813,8 @@ class TestServerMigrate(TestServer): def test_server_migrate_with_block_migration(self): arglist = [ - '--block-migration', self.server.id, + '--block-migration', + self.server.id, ] verifylist = [ ('live_migration', False), @@ -5568,8 +5824,9 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.servers_mock.get.assert_called_with(self.server.id) self.assertNotCalled(self.servers_mock.live_migrate) @@ -5577,7 +5834,8 @@ class TestServerMigrate(TestServer): def test_server_migrate_with_disk_overcommit(self): arglist = [ - '--disk-overcommit', self.server.id, + '--disk-overcommit', + self.server.id, ] verifylist = [ ('live_migration', False), @@ -5587,8 +5845,9 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.servers_mock.get.assert_called_with(self.server.id) self.assertNotCalled(self.servers_mock.live_migrate) @@ -5598,7 +5857,9 @@ class TestServerMigrate(TestServer): # Tests that --host is not allowed for a cold migration # before microversion 2.56 (the test defaults to 2.1). arglist = [ - '--host', 'fakehost', self.server.id, + '--host', + 'fakehost', + self.server.id, ] verifylist = [ ('live_migration', False), @@ -5609,13 +5870,16 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - ex = self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + ex = self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) # Make sure it's the error we expect. - self.assertIn('--os-compute-api-version 2.56 or greater is required ' - 'to use --host without --live-migration.', - str(ex)) + self.assertIn( + '--os-compute-api-version 2.56 or greater is required ' + 'to use --host without --live-migration.', + str(ex), + ) self.servers_mock.get.assert_called_with(self.server.id) self.assertNotCalled(self.servers_mock.live_migrate) @@ -5624,7 +5888,8 @@ class TestServerMigrate(TestServer): def test_server_live_migrate(self): # Tests the --live-migration option without --host or --live. arglist = [ - '--live-migration', self.server.id, + '--live-migration', + self.server.id, ] verifylist = [ ('live_migration', True), @@ -5639,16 +5904,18 @@ class TestServerMigrate(TestServer): self.servers_mock.get.assert_called_with(self.server.id) self.server.live_migrate.assert_called_with( - block_migration=False, - disk_over_commit=False, - host=None) + block_migration=False, disk_over_commit=False, host=None + ) self.assertNotCalled(self.servers_mock.migrate) self.assertIsNone(result) def test_server_live_migrate_with_host(self): # This requires --os-compute-api-version >= 2.30 so the test uses 2.30. arglist = [ - '--live-migration', '--host', 'fakehost', self.server.id, + '--live-migration', + '--host', + 'fakehost', + self.server.id, ] verifylist = [ ('live_migration', True), @@ -5659,8 +5926,9 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.30') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.30' + ) result = self.cmd.take_action(parsed_args) @@ -5668,7 +5936,8 @@ class TestServerMigrate(TestServer): # No disk_overcommit and block_migration defaults to auto with # microversion >= 2.25 self.server.live_migrate.assert_called_with( - block_migration='auto', host='fakehost') + block_migration='auto', host='fakehost' + ) self.assertNotCalled(self.servers_mock.migrate) self.assertIsNone(result) @@ -5676,7 +5945,10 @@ class TestServerMigrate(TestServer): # Tests that the --host option is not supported for --live-migration # before microversion 2.30 (the test defaults to 2.1). arglist = [ - '--live-migration', '--host', 'fakehost', self.server.id, + '--live-migration', + '--host', + 'fakehost', + self.server.id, ] verifylist = [ ('live_migration', True), @@ -5688,13 +5960,15 @@ class TestServerMigrate(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) # Make sure it's the error we expect. self.assertIn( '--os-compute-api-version 2.30 or greater is required ' - 'when using --host', str(ex)) + 'when using --host', + str(ex), + ) self.servers_mock.get.assert_called_with(self.server.id) self.assertNotCalled(self.servers_mock.live_migrate) @@ -5714,16 +5988,16 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.24') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.24' + ) result = self.cmd.take_action(parsed_args) self.servers_mock.get.assert_called_with(self.server.id) self.server.live_migrate.assert_called_with( - block_migration=True, - disk_over_commit=False, - host=None) + block_migration=True, disk_over_commit=False, host=None + ) self.assertNotCalled(self.servers_mock.migrate) self.assertIsNone(result) @@ -5741,16 +6015,16 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.24') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.24' + ) result = self.cmd.take_action(parsed_args) self.servers_mock.get.assert_called_with(self.server.id) self.server.live_migrate.assert_called_with( - block_migration=False, - disk_over_commit=True, - host=None) + block_migration=False, disk_over_commit=True, host=None + ) self.assertNotCalled(self.servers_mock.migrate) self.assertIsNone(result) @@ -5768,8 +6042,9 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.25') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.25' + ) with mock.patch.object(self.cmd.log, 'warning') as mock_warning: result = self.cmd.take_action(parsed_args) @@ -5777,20 +6052,22 @@ class TestServerMigrate(TestServer): self.servers_mock.get.assert_called_with(self.server.id) # There should be no 'disk_over_commit' value present self.server.live_migrate.assert_called_with( - block_migration='auto', - host=None) + block_migration='auto', host=None + ) self.assertNotCalled(self.servers_mock.migrate) self.assertIsNone(result) # A warning should have been logged for using --disk-overcommit. mock_warning.assert_called_once() self.assertIn( 'The --disk-overcommit and --no-disk-overcommit options ', - str(mock_warning.call_args[0][0])) + str(mock_warning.call_args[0][0]), + ) @mock.patch.object(common_utils, 'wait_for_status', return_value=True) def test_server_migrate_with_wait(self, mock_wait_for_status): arglist = [ - '--wait', self.server.id, + '--wait', + self.server.id, ] verifylist = [ ('live_migration', False), @@ -5810,7 +6087,8 @@ class TestServerMigrate(TestServer): @mock.patch.object(common_utils, 'wait_for_status', return_value=False) def test_server_migrate_with_wait_fails(self, mock_wait_for_status): arglist = [ - '--wait', self.server.id, + '--wait', + self.server.id, ] verifylist = [ ('live_migration', False), @@ -5828,7 +6106,6 @@ class TestServerMigrate(TestServer): class TestServerReboot(TestServer): - def setUp(self): super().setUp() @@ -5942,7 +6219,6 @@ class TestServerReboot(TestServer): class TestServerPause(TestServer): - def setUp(self): super().setUp() @@ -5957,7 +6233,6 @@ class TestServerPause(TestServer): class TestServerRebuild(TestServer): - def setUp(self): super(TestServerRebuild, self).setUp() @@ -5967,9 +6242,7 @@ class TestServerRebuild(TestServer): # Fake the rebuilt new server. attrs = { - 'image': { - 'id': self.image.id - }, + 'image': {'id': self.image.id}, 'networks': {}, 'adminPass': 'passw0rd', } @@ -5981,8 +6254,7 @@ class TestServerRebuild(TestServer): 'rebuild': new_server, } self.server = compute_fakes.FakeServer.create_one_server( - attrs=attrs, - methods=methods + attrs=attrs, methods=methods ) # Return value for utils.find_resource for server. @@ -5992,28 +6264,19 @@ class TestServerRebuild(TestServer): def test_rebuild_with_image_name(self): image_name = 'my-custom-image' - user_image = image_fakes.create_one_image( - attrs={'name': image_name}) + user_image = image_fakes.create_one_image(attrs={'name': image_name}) self.find_image_mock.return_value = user_image attrs = { - 'image': { - 'id': user_image.id - }, + 'image': {'id': user_image.id}, 'networks': {}, 'adminPass': 'passw0rd', } new_server = compute_fakes.FakeServer.create_one_server(attrs=attrs) self.server.rebuild.return_value = new_server - arglist = [ - self.server.id, - '--image', image_name - ] - verifylist = [ - ('server', self.server.id), - ('image', image_name) - ] + arglist = [self.server.id, '--image', image_name] + verifylist = [('server', self.server.id), ('image', image_name)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) # Get the command object to test. @@ -6021,7 +6284,8 @@ class TestServerRebuild(TestServer): self.servers_mock.get.assert_called_with(self.server.id) self.find_image_mock.assert_called_with( - image_name, ignore_missing=False) + image_name, ignore_missing=False + ) self.get_image_mock.assert_called_with(user_image.id) self.server.rebuild.assert_called_with(user_image, None) @@ -6029,9 +6293,7 @@ class TestServerRebuild(TestServer): arglist = [ self.server.id, ] - verifylist = [ - ('server', self.server.id) - ] + verifylist = [('server', self.server.id)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) # Get the command object to test. @@ -6056,16 +6318,16 @@ class TestServerRebuild(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) exc = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn('The --image option is required', str(exc)) def test_rebuild_with_name(self): name = 'test-server-xxx' arglist = [ self.server.id, - '--name', name, + '--name', + name, ] verifylist = [ ('server', self.server.id), @@ -6097,7 +6359,8 @@ class TestServerRebuild(TestServer): self.servers_mock.get.assert_called_with(self.server.id) self.get_image_mock.assert_called_with(self.image.id) self.server.rebuild.assert_called_with( - self.image, None, preserve_ephemeral=True) + self.image, None, preserve_ephemeral=True + ) def test_rebuild_with_no_preserve_ephemeral(self): arglist = [ @@ -6116,18 +6379,13 @@ class TestServerRebuild(TestServer): self.servers_mock.get.assert_called_with(self.server.id) self.get_image_mock.assert_called_with(self.image.id) self.server.rebuild.assert_called_with( - self.image, None, preserve_ephemeral=False) + self.image, None, preserve_ephemeral=False + ) def test_rebuild_with_password(self): password = 'password-xxx' - arglist = [ - self.server.id, - '--password', password - ] - verifylist = [ - ('server', self.server.id), - ('password', password) - ] + arglist = [self.server.id, '--password', password] + verifylist = [('server', self.server.id), ('password', password)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) # Get the command object to test @@ -6138,46 +6396,36 @@ class TestServerRebuild(TestServer): self.server.rebuild.assert_called_with(self.image, password) def test_rebuild_with_description(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.19') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.19' + ) description = 'description1' - arglist = [ - self.server.id, - '--description', description - ] - verifylist = [ - ('server', self.server.id), - ('description', description) - ] + arglist = [self.server.id, '--description', description] + verifylist = [('server', self.server.id), ('description', description)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) self.servers_mock.get.assert_called_with(self.server.id) self.get_image_mock.assert_called_with(self.image.id) - self.server.rebuild.assert_called_with(self.image, None, - description=description) + self.server.rebuild.assert_called_with( + self.image, None, description=description + ) def test_rebuild_with_description_pre_v219(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.18') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.18' + ) description = 'description1' - arglist = [ - self.server.id, - '--description', description - ] - verifylist = [ - ('server', self.server.id), - ('description', description) - ] + arglist = [self.server.id, '--description', description] + verifylist = [('server', self.server.id), ('description', description)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) @mock.patch.object(common_utils, 'wait_for_status', return_value=True) def test_rebuild_with_wait_ok(self, mock_wait_for_status): @@ -6234,13 +6482,15 @@ class TestServerRebuild(TestServer): def test_rebuild_with_property(self): arglist = [ self.server.id, - '--property', 'key1=value1', - '--property', 'key2=value2' + '--property', + 'key1=value1', + '--property', + 'key2=value2', ] expected_properties = {'key1': 'value1', 'key2': 'value2'} verifylist = [ ('server', self.server.id), - ('properties', expected_properties) + ('properties', expected_properties), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -6250,20 +6500,23 @@ class TestServerRebuild(TestServer): self.servers_mock.get.assert_called_with(self.server.id) self.get_image_mock.assert_called_with(self.image.id) self.server.rebuild.assert_called_with( - self.image, None, meta=expected_properties) + self.image, None, meta=expected_properties + ) def test_rebuild_with_keypair_name(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.54') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.54' + ) self.server.key_name = 'mykey' arglist = [ self.server.id, - '--key-name', self.server.key_name, + '--key-name', + self.server.key_name, ] verifylist = [ ('server', self.server.id), - ('key_name', self.server.key_name) + ('key_name', self.server.key_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -6272,31 +6525,34 @@ class TestServerRebuild(TestServer): self.servers_mock.get.assert_called_with(self.server.id) self.get_image_mock.assert_called_with(self.image.id) self.server.rebuild.assert_called_with( - self.image, None, key_name=self.server.key_name) + self.image, None, key_name=self.server.key_name + ) def test_rebuild_with_keypair_name_pre_v254(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.53') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.53' + ) self.server.key_name = 'mykey' arglist = [ self.server.id, - '--key-name', self.server.key_name, + '--key-name', + self.server.key_name, ] verifylist = [ ('server', self.server.id), - ('key_name', self.server.key_name) + ('key_name', self.server.key_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_rebuild_with_no_keypair_name(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.54') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.54' + ) self.server.key_name = 'mykey' arglist = [ @@ -6311,29 +6567,33 @@ class TestServerRebuild(TestServer): self.cmd.take_action(parsed_args) self.servers_mock.get.assert_called_with(self.server.id) self.get_image_mock.assert_called_with(self.image.id) - self.server.rebuild.assert_called_with( - self.image, None, key_name=None) + self.server.rebuild.assert_called_with(self.image, None, key_name=None) def test_rebuild_with_keypair_name_and_unset(self): self.server.key_name = 'mykey' arglist = [ self.server.id, - '--key-name', self.server.key_name, + '--key-name', + self.server.key_name, '--no-key-name', ] verifylist = [ ('server', self.server.id), - ('key_name', self.server.key_name) + ('key_name', self.server.key_name), ] self.assertRaises( utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.cmd, + arglist, + verifylist, + ) @mock.patch('openstackclient.compute.v2.server.io.open') def test_rebuild_with_user_data(self, mock_open): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.57') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.57' + ) mock_file = mock.Mock(name='File') mock_open.return_value = mock_file @@ -6341,7 +6601,8 @@ class TestServerRebuild(TestServer): arglist = [ self.server.id, - '--user-data', 'userdata.sh', + '--user-data', + 'userdata.sh', ] verifylist = [ ('server', self.server.id), @@ -6360,16 +6621,20 @@ class TestServerRebuild(TestServer): self.servers_mock.get.assert_called_with(self.server.id) self.get_image_mock.assert_called_with(self.image.id) self.server.rebuild.assert_called_with( - self.image, None, - userdata=mock_file,) + self.image, + None, + userdata=mock_file, + ) def test_rebuild_with_user_data_pre_v257(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.56') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.56' + ) arglist = [ self.server.id, - '--user-data', 'userdata.sh', + '--user-data', + 'userdata.sh', ] verifylist = [ ('server', self.server.id), @@ -6378,13 +6643,13 @@ class TestServerRebuild(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_rebuild_with_no_user_data(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.54') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.54' + ) self.server.key_name = 'mykey' arglist = [ @@ -6400,12 +6665,12 @@ class TestServerRebuild(TestServer): self.cmd.take_action(parsed_args) self.servers_mock.get.assert_called_with(self.server.id) self.get_image_mock.assert_called_with(self.image.id) - self.server.rebuild.assert_called_with( - self.image, None, userdata=None) + self.server.rebuild.assert_called_with(self.image, None, userdata=None) def test_rebuild_with_no_user_data_pre_v254(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.53') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.53' + ) arglist = [ self.server.id, @@ -6418,29 +6683,31 @@ class TestServerRebuild(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_rebuild_with_user_data_and_unset(self): arglist = [ self.server.id, - '--user-data', 'userdata.sh', + '--user-data', + 'userdata.sh', '--no-user-data', ] self.assertRaises( - utils.ParserException, - self.check_parser, - self.cmd, arglist, None) + utils.ParserException, self.check_parser, self.cmd, arglist, None + ) def test_rebuild_with_trusted_image_cert(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.63') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.63' + ) arglist = [ self.server.id, - '--trusted-image-cert', 'foo', - '--trusted-image-cert', 'bar', + '--trusted-image-cert', + 'foo', + '--trusted-image-cert', + 'bar', ] verifylist = [ ('server', self.server.id), @@ -6453,16 +6720,20 @@ class TestServerRebuild(TestServer): self.servers_mock.get.assert_called_with(self.server.id) self.get_image_mock.assert_called_with(self.image.id) self.server.rebuild.assert_called_with( - self.image, None, trusted_image_certificates=['foo', 'bar']) + self.image, None, trusted_image_certificates=['foo', 'bar'] + ) def test_rebuild_with_trusted_image_cert_pre_v263(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.62') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.62' + ) arglist = [ self.server.id, - '--trusted-image-cert', 'foo', - '--trusted-image-cert', 'bar', + '--trusted-image-cert', + 'foo', + '--trusted-image-cert', + 'bar', ] verifylist = [ ('server', self.server.id), @@ -6471,13 +6742,13 @@ class TestServerRebuild(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_rebuild_with_no_trusted_image_cert(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.63') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.63' + ) arglist = [ self.server.id, @@ -6493,11 +6764,13 @@ class TestServerRebuild(TestServer): self.servers_mock.get.assert_called_with(self.server.id) self.get_image_mock.assert_called_with(self.image.id) self.server.rebuild.assert_called_with( - self.image, None, trusted_image_certificates=None) + self.image, None, trusted_image_certificates=None + ) def test_rebuild_with_no_trusted_image_cert_pre_v263(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.62') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.62' + ) arglist = [ self.server.id, @@ -6510,22 +6783,16 @@ class TestServerRebuild(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_rebuild_with_hostname(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.90') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.90' + ) - arglist = [ - self.server.id, - '--hostname', 'new-hostname' - ] - verifylist = [ - ('server', self.server.id), - ('hostname', 'new-hostname') - ] + arglist = [self.server.id, '--hostname', 'new-hostname'] + verifylist = [('server', self.server.id), ('hostname', 'new-hostname')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) @@ -6533,30 +6800,28 @@ class TestServerRebuild(TestServer): self.servers_mock.get.assert_called_with(self.server.id) self.get_image_mock.assert_called_with(self.image.id) self.server.rebuild.assert_called_with( - self.image, None, hostname='new-hostname') + self.image, None, hostname='new-hostname' + ) def test_rebuild_with_hostname_pre_v290(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.89') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.89' + ) arglist = [ self.server.id, - '--hostname', 'new-hostname', - ] - verifylist = [ - ('server', self.server.id), - ('hostname', 'new-hostname') + '--hostname', + 'new-hostname', ] + verifylist = [('server', self.server.id), ('hostname', 'new-hostname')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) class TestServerRebuildVolumeBacked(TestServer): - def setUp(self): super().setUp() @@ -6576,8 +6841,7 @@ class TestServerRebuildVolumeBacked(TestServer): 'rebuild': new_server, } self.server = compute_fakes.FakeServer.create_one_server( - attrs=attrs, - methods=methods + attrs=attrs, methods=methods ) # Return value for utils.find_resource for server. @@ -6586,74 +6850,77 @@ class TestServerRebuildVolumeBacked(TestServer): self.cmd = server.RebuildServer(self.app, None) def test_rebuild_with_reimage_boot_volume(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.93') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.93' + ) arglist = [ self.server.id, '--reimage-boot-volume', - '--image', self.new_image.id + '--image', + self.new_image.id, ] verifylist = [ ('server', self.server.id), ('reimage_boot_volume', True), - ('image', self.new_image.id) + ('image', self.new_image.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) self.servers_mock.get.assert_called_with(self.server.id) - self.server.rebuild.assert_called_with( - self.new_image, None) + self.server.rebuild.assert_called_with(self.new_image, None) def test_rebuild_with_no_reimage_boot_volume(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.93') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.93' + ) arglist = [ self.server.id, '--no-reimage-boot-volume', - '--image', self.new_image.id + '--image', + self.new_image.id, ] verifylist = [ ('server', self.server.id), ('reimage_boot_volume', False), - ('image', self.new_image.id) + ('image', self.new_image.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) exc = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn('--reimage-boot-volume is required', str(exc)) def test_rebuild_with_reimage_boot_volume_pre_v293(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.92') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.92' + ) arglist = [ self.server.id, '--reimage-boot-volume', - '--image', self.new_image.id + '--image', + self.new_image.id, ] verifylist = [ ('server', self.server.id), - ('reimage_boot_volume', True) + ('reimage_boot_volume', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) exc = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.93 or greater is required', str(exc)) + '--os-compute-api-version 2.93 or greater is required', str(exc) + ) class TestEvacuateServer(TestServer): - def setUp(self): super(TestEvacuateServer, self).setUp() # Return value for utils.find_resource for image @@ -6662,9 +6929,7 @@ class TestEvacuateServer(TestServer): # Fake the rebuilt new server. attrs = { - 'image': { - 'id': self.image.id - }, + 'image': {'id': self.image.id}, 'networks': {}, 'adminPass': 'passw0rd', } @@ -6676,8 +6941,7 @@ class TestEvacuateServer(TestServer): 'evacuate': new_server, } self.server = compute_fakes.FakeServer.create_one_server( - attrs=attrs, - methods=methods + attrs=attrs, methods=methods ) # Return value for utils.find_resource for server. @@ -6702,32 +6966,39 @@ class TestEvacuateServer(TestServer): ('server', self.server.id), ] evac_args = { - 'host': None, 'on_shared_storage': False, 'password': None, + 'host': None, + 'on_shared_storage': False, + 'password': None, } self._test_evacuate(args, verify_args, evac_args) def test_evacuate_with_password(self): args = [ self.server.id, - '--password', 'password', + '--password', + 'password', ] verify_args = [ ('server', self.server.id), ('password', 'password'), ] evac_args = { - 'host': None, 'on_shared_storage': False, 'password': 'password', + 'host': None, + 'on_shared_storage': False, + 'password': 'password', } self._test_evacuate(args, verify_args, evac_args) def test_evacuate_with_host(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.29') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.29' + ) host = 'target-host' args = [ self.server.id, - '--host', 'target-host', + '--host', + 'target-host', ] verify_args = [ ('server', self.server.id), @@ -6738,12 +7009,14 @@ class TestEvacuateServer(TestServer): self._test_evacuate(args, verify_args, evac_args) def test_evacuate_with_host_pre_v229(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.28') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.28' + ) args = [ self.server.id, - '--host', 'target-host', + '--host', + 'target-host', ] verify_args = [ ('server', self.server.id), @@ -6752,35 +7025,32 @@ class TestEvacuateServer(TestServer): parsed_args = self.check_parser(self.cmd, args, verify_args) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_evacuate_without_share_storage(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.13') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.13' + ) - args = [ - self.server.id, - '--shared-storage' - ] + args = [self.server.id, '--shared-storage'] verify_args = [ ('server', self.server.id), ('shared_storage', True), ] evac_args = { - 'host': None, 'on_shared_storage': True, 'password': None, + 'host': None, + 'on_shared_storage': True, + 'password': None, } self._test_evacuate(args, verify_args, evac_args) def test_evacuate_without_share_storage_post_v213(self): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.14') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.14' + ) - args = [ - self.server.id, - '--shared-storage' - ] + args = [self.server.id, '--shared-storage'] verify_args = [ ('server', self.server.id), ('shared_storage', True), @@ -6788,9 +7058,8 @@ class TestEvacuateServer(TestServer): parsed_args = self.check_parser(self.cmd, args, verify_args) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) @mock.patch.object(common_utils, 'wait_for_status', return_value=True) def test_evacuate_with_wait_ok(self, mock_wait_for_status): @@ -6803,7 +7072,9 @@ class TestEvacuateServer(TestServer): ('wait', True), ] evac_args = { - 'host': None, 'on_shared_storage': False, 'password': None, + 'host': None, + 'on_shared_storage': False, + 'password': None, } self._test_evacuate(args, verify_args, evac_args) mock_wait_for_status.assert_called_once_with( @@ -6814,7 +7085,6 @@ class TestEvacuateServer(TestServer): class TestServerRemoveFixedIP(TestServer): - def setUp(self): super(TestServerRemoveFixedIP, self).setUp() @@ -6846,7 +7116,6 @@ class TestServerRemoveFixedIP(TestServer): class TestServerRescue(TestServer): - def setUp(self): super(TestServerRescue, self).setUp() @@ -6895,7 +7164,8 @@ class TestServerRescue(TestServer): new_image = image_fakes.create_one_image() self.find_image_mock.return_value = new_image arglist = [ - '--image', new_image.id, + '--image', + new_image.id, self.server.id, ] verifylist = [ @@ -6914,7 +7184,8 @@ class TestServerRescue(TestServer): def test_rescue_with_current_image_and_password(self): password = 'password-xxx' arglist = [ - '--password', password, + '--password', + password, self.server.id, ] verifylist = [ @@ -6930,11 +7201,8 @@ class TestServerRescue(TestServer): self.server.rescue.assert_called_with(image=None, password=password) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.floating_ip_remove' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_remove') class TestServerRemoveFloatingIPCompute(compute_fakes.TestComputev2): - def setUp(self): super(TestServerRemoveFloatingIPCompute, self).setUp() @@ -6965,7 +7233,6 @@ class TestServerRemoveFloatingIPCompute(compute_fakes.TestComputev2): class TestServerRemoveFloatingIPNetwork(network_fakes.TestNetworkV2): - def setUp(self): super(TestServerRemoveFloatingIPNetwork, self).setUp() @@ -7000,14 +7267,10 @@ class TestServerRemoveFloatingIPNetwork(network_fakes.TestNetworkV2): _floating_ip['ip'], ignore_missing=False, ) - self.network.update_ip.assert_called_once_with( - _floating_ip, - **attrs - ) + self.network.update_ip.assert_called_once_with(_floating_ip, **attrs) class TestServerRemovePort(TestServer): - def setUp(self): super(TestServerRemovePort, self).setUp() @@ -7039,13 +7302,15 @@ class TestServerRemovePort(TestServer): result = self.cmd.take_action(parsed_args) self.sdk_client.delete_server_interface.assert_called_with( - port_id, server=servers[0], ignore_missing=False) + port_id, server=servers[0], ignore_missing=False + ) self.assertIsNone(result) def test_server_remove_port(self): self._test_server_remove_port(self.find_port.return_value.id) self.find_port.assert_called_once_with( - 'fake-port', ignore_missing=False) + 'fake-port', ignore_missing=False + ) def test_server_remove_port_no_neutron(self): self.app.client_manager.network_endpoint_enabled = False @@ -7054,7 +7319,6 @@ class TestServerRemovePort(TestServer): class TestServerRemoveNetwork(TestServer): - def setUp(self): super(TestServerRemoveNetwork, self).setUp() @@ -7092,13 +7356,15 @@ class TestServerRemoveNetwork(TestServer): self.sdk_client.server_interfaces.assert_called_once_with(servers[0]) self.sdk_client.delete_server_interface.assert_called_once_with( - 'fake-port', server=servers[0]) + 'fake-port', server=servers[0] + ) self.assertIsNone(result) def test_server_remove_network(self): self._test_server_remove_network(self.find_network.return_value.id) self.find_network.assert_called_once_with( - 'fake-network', ignore_missing=False) + 'fake-network', ignore_missing=False + ) def test_server_remove_network_no_neutron(self): self.app.client_manager.network_endpoint_enabled = False @@ -7106,27 +7372,22 @@ class TestServerRemoveNetwork(TestServer): self.find_network.assert_not_called() -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.security_group_find' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_find') class TestServerRemoveSecurityGroup(TestServer): - def setUp(self): super(TestServerRemoveSecurityGroup, self).setUp() - self.security_group = \ + self.security_group = ( compute_fakes.FakeSecurityGroup.create_one_security_group() + ) - attrs = { - 'security_groups': [{'name': self.security_group['id']}] - } + attrs = {'security_groups': [{'name': self.security_group['id']}]} methods = { 'remove_security_group': None, } self.server = compute_fakes.FakeServer.create_one_server( - attrs=attrs, - methods=methods + attrs=attrs, methods=methods ) # This is the return value for utils.find_resource() for server self.servers_mock.get.return_value = self.server @@ -7136,10 +7397,7 @@ class TestServerRemoveSecurityGroup(TestServer): def test_server_remove_security_group(self, sg_find_mock): sg_find_mock.return_value = self.security_group - arglist = [ - self.server.id, - self.security_group['id'] - ] + arglist = [self.server.id, self.security_group['id']] verifylist = [ ('server', self.server.id), ('group', self.security_group['id']), @@ -7157,7 +7415,6 @@ class TestServerRemoveSecurityGroup(TestServer): class TestServerResize(TestServer): - def setUp(self): super(TestServerResize, self).setUp() @@ -7171,8 +7428,9 @@ class TestServerResize(TestServer): self.servers_mock.revert_resize.return_value = None # This is the return value for utils.find_resource() - self.flavors_get_return_value = \ + self.flavors_get_return_value = ( compute_fakes.FakeFlavor.create_one_flavor() + ) self.flavors_mock.get.return_value = self.flavors_get_return_value # Get the command object to test @@ -7200,7 +7458,8 @@ class TestServerResize(TestServer): def test_server_resize(self): arglist = [ - '--flavor', self.flavors_get_return_value.id, + '--flavor', + self.flavors_get_return_value.id, self.server.id, ] verifylist = [ @@ -7247,8 +7506,10 @@ class TestServerResize(TestServer): self.assertIsNone(result) # A warning should have been logged for using --confirm. mock_warning.assert_called_once() - self.assertIn('The --confirm option has been deprecated.', - str(mock_warning.call_args[0][0])) + self.assertIn( + 'The --confirm option has been deprecated.', + str(mock_warning.call_args[0][0]), + ) def test_server_resize_revert(self): arglist = [ @@ -7272,14 +7533,16 @@ class TestServerResize(TestServer): self.assertIsNone(result) # A warning should have been logged for using --revert. mock_warning.assert_called_once() - self.assertIn('The --revert option has been deprecated.', - str(mock_warning.call_args[0][0])) + self.assertIn( + 'The --revert option has been deprecated.', + str(mock_warning.call_args[0][0]), + ) @mock.patch.object(common_utils, 'wait_for_status', return_value=True) def test_server_resize_with_wait_ok(self, mock_wait_for_status): - arglist = [ - '--flavor', self.flavors_get_return_value.id, + '--flavor', + self.flavors_get_return_value.id, '--wait', self.server.id, ] @@ -7299,27 +7562,25 @@ class TestServerResize(TestServer): self.server.id, ) - kwargs = dict(success_status=['active', 'verify_resize'],) + kwargs = dict( + success_status=['active', 'verify_resize'], + ) mock_wait_for_status.assert_called_once_with( - self.servers_mock.get, - self.server.id, - callback=mock.ANY, - **kwargs + self.servers_mock.get, self.server.id, callback=mock.ANY, **kwargs ) self.servers_mock.resize.assert_called_with( - self.server, - self.flavors_get_return_value + self.server, self.flavors_get_return_value ) self.assertNotCalled(self.servers_mock.confirm_resize) self.assertNotCalled(self.servers_mock.revert_resize) @mock.patch.object(common_utils, 'wait_for_status', return_value=False) def test_server_resize_with_wait_fails(self, mock_wait_for_status): - arglist = [ - '--flavor', self.flavors_get_return_value.id, + '--flavor', + self.flavors_get_return_value.id, '--wait', self.server.id, ] @@ -7339,23 +7600,20 @@ class TestServerResize(TestServer): self.server.id, ) - kwargs = dict(success_status=['active', 'verify_resize'],) + kwargs = dict( + success_status=['active', 'verify_resize'], + ) mock_wait_for_status.assert_called_once_with( - self.servers_mock.get, - self.server.id, - callback=mock.ANY, - **kwargs + self.servers_mock.get, self.server.id, callback=mock.ANY, **kwargs ) self.servers_mock.resize.assert_called_with( - self.server, - self.flavors_get_return_value + self.server, self.flavors_get_return_value ) class TestServerResizeConfirm(TestServer): - def setUp(self): super(TestServerResizeConfirm, self).setUp() @@ -7363,7 +7621,8 @@ class TestServerResizeConfirm(TestServer): 'confirm_resize': None, } self.server = compute_fakes.FakeServer.create_one_server( - methods=methods) + methods=methods + ) # This is the return value for utils.find_resource() self.servers_mock.get.return_value = self.server @@ -7390,7 +7649,6 @@ class TestServerResizeConfirm(TestServer): # TODO(stephenfin): Remove in OSC 7.0 class TestServerMigrateConfirm(TestServer): - def setUp(self): super().setUp() @@ -7398,7 +7656,8 @@ class TestServerMigrateConfirm(TestServer): 'confirm_resize': None, } self.server = compute_fakes.FakeServer.create_one_server( - methods=methods) + methods=methods + ) # This is the return value for utils.find_resource() self.servers_mock.get.return_value = self.server @@ -7426,12 +7685,11 @@ class TestServerMigrateConfirm(TestServer): mock_warning.assert_called_once() self.assertIn( "The 'server migrate confirm' command has been deprecated", - str(mock_warning.call_args[0][0]) + str(mock_warning.call_args[0][0]), ) class TestServerConfirmMigration(TestServerResizeConfirm): - def setUp(self): super().setUp() @@ -7439,7 +7697,8 @@ class TestServerConfirmMigration(TestServerResizeConfirm): 'confirm_resize': None, } self.server = compute_fakes.FakeServer.create_one_server( - methods=methods) + methods=methods + ) # This is the return value for utils.find_resource() self.servers_mock.get.return_value = self.server @@ -7465,7 +7724,6 @@ class TestServerConfirmMigration(TestServerResizeConfirm): class TestServerResizeRevert(TestServer): - def setUp(self): super(TestServerResizeRevert, self).setUp() @@ -7473,7 +7731,8 @@ class TestServerResizeRevert(TestServer): 'revert_resize': None, } self.server = compute_fakes.FakeServer.create_one_server( - methods=methods) + methods=methods + ) # This is the return value for utils.find_resource() self.servers_mock.get.return_value = self.server @@ -7500,7 +7759,6 @@ class TestServerResizeRevert(TestServer): # TODO(stephenfin): Remove in OSC 7.0 class TestServerMigrateRevert(TestServer): - def setUp(self): super().setUp() @@ -7508,7 +7766,8 @@ class TestServerMigrateRevert(TestServer): 'revert_resize': None, } self.server = compute_fakes.FakeServer.create_one_server( - methods=methods) + methods=methods + ) # This is the return value for utils.find_resource() self.servers_mock.get.return_value = self.server @@ -7536,12 +7795,11 @@ class TestServerMigrateRevert(TestServer): mock_warning.assert_called_once() self.assertIn( "The 'server migrate revert' command has been deprecated", - str(mock_warning.call_args[0][0]) + str(mock_warning.call_args[0][0]), ) class TestServerRevertMigration(TestServer): - def setUp(self): super().setUp() @@ -7549,7 +7807,8 @@ class TestServerRevertMigration(TestServer): 'revert_resize': None, } self.server = compute_fakes.FakeServer.create_one_server( - methods=methods) + methods=methods + ) # This is the return value for utils.find_resource() self.servers_mock.get.return_value = self.server @@ -7575,7 +7834,6 @@ class TestServerRevertMigration(TestServer): class TestServerRestore(TestServer): - def setUp(self): super().setUp() @@ -7590,7 +7848,6 @@ class TestServerRestore(TestServer): class TestServerResume(TestServer): - def setUp(self): super().setUp() @@ -7605,7 +7862,6 @@ class TestServerResume(TestServer): class TestServerSet(TestServer): - def setUp(self): super(TestServerSet, self).setUp() @@ -7628,12 +7884,8 @@ class TestServerSet(TestServer): self.cmd = server.SetServer(self.app, None) def test_server_set_no_option(self): - arglist = [ - 'foo_vm' - ] - verifylist = [ - ('server', 'foo_vm') - ] + arglist = ['foo_vm'] + verifylist = [('server', 'foo_vm')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertNotCalled(self.fake_servers[0].update) @@ -7645,7 +7897,8 @@ class TestServerSet(TestServer): def test_server_set_with_state(self): for index, state in enumerate(['active', 'error']): arglist = [ - '--state', state, + '--state', + state, 'foo_vm', ] verifylist = [ @@ -7655,25 +7908,32 @@ class TestServerSet(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.fake_servers[index].reset_state.assert_called_once_with( - state=state) + state=state + ) self.assertIsNone(result) def test_server_set_with_invalid_state(self): arglist = [ - '--state', 'foo_state', + '--state', + 'foo_state', 'foo_vm', ] verifylist = [ ('state', 'foo_state'), ('server', 'foo_vm'), ] - self.assertRaises(utils.ParserException, - self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_server_set_with_name(self): arglist = [ - '--name', 'foo_name', + '--name', + 'foo_name', 'foo_vm', ] verifylist = [ @@ -7687,8 +7947,10 @@ class TestServerSet(TestServer): def test_server_set_with_property(self): arglist = [ - '--property', 'key1=value1', - '--property', 'key2=value2', + '--property', + 'key1=value1', + '--property', + 'key2=value2', 'foo_vm', ] verifylist = [ @@ -7698,12 +7960,14 @@ class TestServerSet(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.servers_mock.set_meta.assert_called_once_with( - self.fake_servers[0], parsed_args.properties) + self.fake_servers[0], parsed_args.properties + ) self.assertIsNone(result) def test_server_set_with_password(self): arglist = [ - '--password', 'foo', + '--password', + 'foo', 'foo_vm', ] verifylist = [ @@ -7732,8 +7996,9 @@ class TestServerSet(TestServer): self.fake_servers[0].clear_password.assert_called_once_with() # TODO(stephenfin): Remove this in a future major version - @mock.patch.object(getpass, 'getpass', - return_value=mock.sentinel.fake_pass) + @mock.patch.object( + getpass, 'getpass', return_value=mock.sentinel.fake_pass + ) def test_server_set_with_root_password(self, mock_getpass): arglist = [ '--root-password', @@ -7746,16 +8011,17 @@ class TestServerSet(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.fake_servers[0].change_password.assert_called_once_with( - mock.sentinel.fake_pass) + mock.sentinel.fake_pass + ) self.assertIsNone(result) def test_server_set_with_description(self): - # Description is supported for nova api version 2.19 or above self.fake_servers[0].api_version = api_versions.APIVersion('2.19') arglist = [ - '--description', 'foo_description', + '--description', + 'foo_description', 'foo_vm', ] verifylist = [ @@ -7765,16 +8031,17 @@ class TestServerSet(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.fake_servers[0].update.assert_called_once_with( - description='foo_description') + description='foo_description' + ) self.assertIsNone(result) def test_server_set_with_description_pre_v219(self): - # Description is not supported for nova api version below 2.19 self.fake_servers[0].api_version = api_versions.APIVersion('2.18') arglist = [ - '--description', 'foo_description', + '--description', + 'foo_description', 'foo_vm', ] verifylist = [ @@ -7782,15 +8049,18 @@ class TestServerSet(TestServer): ('server', 'foo_vm'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_set_with_tag(self): self.fake_servers[0].api_version = api_versions.APIVersion('2.26') arglist = [ - '--tag', 'tag1', - '--tag', 'tag2', + '--tag', + 'tag1', + '--tag', + 'tag2', 'foo_vm', ] verifylist = [ @@ -7801,18 +8071,22 @@ class TestServerSet(TestServer): result = self.cmd.take_action(parsed_args) - self.fake_servers[0].add_tag.assert_has_calls([ - mock.call(tag='tag1'), - mock.call(tag='tag2'), - ]) + self.fake_servers[0].add_tag.assert_has_calls( + [ + mock.call(tag='tag1'), + mock.call(tag='tag2'), + ] + ) self.assertIsNone(result) def test_server_set_with_tag_pre_v226(self): self.fake_servers[0].api_version = api_versions.APIVersion('2.25') arglist = [ - '--tag', 'tag1', - '--tag', 'tag2', + '--tag', + 'tag1', + '--tag', + 'tag2', 'foo_vm', ] verifylist = [ @@ -7822,19 +8096,18 @@ class TestServerSet(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.26 or greater is required', - str(ex)) + '--os-compute-api-version 2.26 or greater is required', str(ex) + ) def test_server_set_with_hostname(self): - self.fake_servers[0].api_version = api_versions.APIVersion('2.90') arglist = [ - '--hostname', 'foo-hostname', + '--hostname', + 'foo-hostname', 'foo_vm', ] verifylist = [ @@ -7844,15 +8117,16 @@ class TestServerSet(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.fake_servers[0].update.assert_called_once_with( - hostname='foo-hostname') + hostname='foo-hostname' + ) self.assertIsNone(result) def test_server_set_with_hostname_pre_v290(self): - self.fake_servers[0].api_version = api_versions.APIVersion('2.89') arglist = [ - '--hostname', 'foo-hostname', + '--hostname', + 'foo-hostname', 'foo_vm', ] verifylist = [ @@ -7861,12 +8135,11 @@ class TestServerSet(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) class TestServerShelve(TestServer): - def setUp(self): super().setUp() @@ -7984,7 +8257,6 @@ class TestServerShelve(TestServer): class TestServerShow(TestServer): - def setUp(self): super(TestServerShow, self).setUp() @@ -8005,7 +8277,8 @@ class TestServerShow(TestServer): 'fetch_topology': self.topology, } self.server = compute_fakes.FakeServer.create_one_server( - attrs=server_info, methods=server_method) + attrs=server_info, methods=server_method + ) # This is the return value for utils.find_resource() self.sdk_client.get_server.return_value = self.server @@ -8029,7 +8302,8 @@ class TestServerShow(TestServer): self.data = ( server.PowerStateColumn( - getattr(self.server, 'OS-EXT-STS:power_state')), + getattr(self.server, 'OS-EXT-STS:power_state') + ), format_columns.DictListColumn(self.server.networks), self.flavor.name + " (" + self.flavor.id + ")", self.server.id, @@ -8044,8 +8318,13 @@ class TestServerShow(TestServer): arglist = [] verifylist = [] - self.assertRaises(utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show(self): arglist = [ @@ -8082,7 +8361,7 @@ class TestServerShow(TestServer): 'vcpus': 1, 'extra_specs': {}, 'swap': 0, - 'disk': 1 + 'disk': 1, } columns, data = self.cmd.take_action(parsed_args) @@ -8145,12 +8424,12 @@ class TestServerShow(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, self.cmd.take_action, parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) @mock.patch('openstackclient.compute.v2.server.os.system') class TestServerSsh(TestServer): - def setUp(self): super().setUp() @@ -8172,7 +8451,8 @@ class TestServerSsh(TestServer): }, } self.server = compute_fakes.FakeServer.create_one_server( - attrs=self.attrs, methods=self.methods, + attrs=self.attrs, + methods=self.methods, ) self.servers_mock.get.return_value = self.server @@ -8205,8 +8485,10 @@ class TestServerSsh(TestServer): arglist = [ self.server.name, '--', - '-l', 'username', - '-p', '2222', + '-l', + 'username', + '-p', + '2222', ] verifylist = [ ('server', self.server.name), @@ -8234,8 +8516,10 @@ class TestServerSsh(TestServer): def test_server_ssh_deprecated_opts(self, mock_exec): arglist = [ self.server.name, - '-l', 'username', - '-p', '2222', + '-l', + 'username', + '-p', + '2222', ] verifylist = [ ('server', self.server.name), @@ -8266,7 +8550,6 @@ class TestServerSsh(TestServer): class TestServerStart(TestServer): - def setUp(self): super().setUp() @@ -8302,7 +8585,6 @@ class TestServerStart(TestServer): class TestServerStop(TestServer): - def setUp(self): super().setUp() @@ -8338,7 +8620,6 @@ class TestServerStop(TestServer): class TestServerSuspend(TestServer): - def setUp(self): super().setUp() @@ -8353,7 +8634,6 @@ class TestServerSuspend(TestServer): class TestServerUnlock(TestServer): - def setUp(self): super().setUp() @@ -8368,7 +8648,6 @@ class TestServerUnlock(TestServer): class TestServerUnpause(TestServer): - def setUp(self): super().setUp() @@ -8383,7 +8662,6 @@ class TestServerUnpause(TestServer): class TestServerUnset(TestServer): - def setUp(self): super(TestServerUnset, self).setUp() @@ -8406,8 +8684,10 @@ class TestServerUnset(TestServer): def test_server_unset_with_property(self): arglist = [ - '--property', 'key1', - '--property', 'key2', + '--property', + 'key1', + '--property', + 'key2', 'foo_vm', ] verifylist = [ @@ -8417,11 +8697,11 @@ class TestServerUnset(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.servers_mock.delete_meta.assert_called_once_with( - self.fake_server, ['key1', 'key2']) + self.fake_server, ['key1', 'key2'] + ) self.assertIsNone(result) def test_server_unset_with_description_api_newer(self): - # Description is supported for nova api version 2.19 or above self.app.client_manager.compute.api_version = 2.19 @@ -8435,16 +8715,14 @@ class TestServerUnset(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, - 'APIVersion', - return_value=2.19): + with mock.patch.object(api_versions, 'APIVersion', return_value=2.19): result = self.cmd.take_action(parsed_args) self.servers_mock.update.assert_called_once_with( - self.fake_server, description="") + self.fake_server, description="" + ) self.assertIsNone(result) def test_server_unset_with_description_api_older(self): - # Description is not supported for nova api version below 2.19 self.app.client_manager.compute.api_version = 2.18 @@ -8458,19 +8736,21 @@ class TestServerUnset(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, - 'APIVersion', - return_value=2.19): - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + with mock.patch.object(api_versions, 'APIVersion', return_value=2.19): + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_unset_with_tag(self): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.26') + '2.26' + ) arglist = [ - '--tag', 'tag1', - '--tag', 'tag2', + '--tag', + 'tag1', + '--tag', + 'tag2', 'foo_vm', ] verifylist = [ @@ -8482,18 +8762,23 @@ class TestServerUnset(TestServer): result = self.cmd.take_action(parsed_args) self.assertIsNone(result) - self.servers_mock.delete_tag.assert_has_calls([ - mock.call(self.fake_server, tag='tag1'), - mock.call(self.fake_server, tag='tag2'), - ]) + self.servers_mock.delete_tag.assert_has_calls( + [ + mock.call(self.fake_server, tag='tag1'), + mock.call(self.fake_server, tag='tag2'), + ] + ) def test_server_unset_with_tag_pre_v226(self): self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.25') + '2.25' + ) arglist = [ - '--tag', 'tag1', - '--tag', 'tag2', + '--tag', + 'tag1', + '--tag', + 'tag2', 'foo_vm', ] verifylist = [ @@ -8503,16 +8788,14 @@ class TestServerUnset(TestServer): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.26 or greater is required', - str(ex)) + '--os-compute-api-version 2.26 or greater is required', str(ex) + ) class TestServerUnshelve(TestServer): - def setUp(self): super().setUp() @@ -8551,12 +8834,13 @@ class TestServerUnshelve(TestServer): self._set_mock_microversion('2.77') arglist = [ - '--availability-zone', 'foo-az', + '--availability-zone', + 'foo-az', self.server.id, ] verifylist = [ ('availability_zone', 'foo-az'), - ('server', [self.server.id]) + ('server', [self.server.id]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -8576,11 +8860,12 @@ class TestServerUnshelve(TestServer): arglist = [ self.server.id, - '--availability-zone', 'foo-az', + '--availability-zone', + 'foo-az', ] verifylist = [ ('availability_zone', 'foo-az'), - ('server', [self.server.id]) + ('server', [self.server.id]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -8598,13 +8883,11 @@ class TestServerUnshelve(TestServer): self._set_mock_microversion('2.91') arglist = [ - '--host', 'server1', + '--host', + 'server1', self.server.id, ] - verifylist = [ - ('host', 'server1'), - ('server', [self.server.id]) - ] + verifylist = [('host', 'server1'), ('server', [self.server.id])] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) @@ -8622,13 +8905,11 @@ class TestServerUnshelve(TestServer): self._set_mock_microversion('2.90') arglist = [ - '--host', 'server1', + '--host', + 'server1', self.server.id, ] - verifylist = [ - ('host', 'server1'), - ('server', [self.server.id]) - ] + verifylist = [('host', 'server1'), ('server', [self.server.id])] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( @@ -8651,7 +8932,7 @@ class TestServerUnshelve(TestServer): ] verifylist = [ ('no_availability_zone', True), - ('server', [self.server.id]) + ('server', [self.server.id]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -8675,7 +8956,7 @@ class TestServerUnshelve(TestServer): ] verifylist = [ ('no_availability_zone', True), - ('server', [self.server.id]) + ('server', [self.server.id]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -8694,14 +8975,15 @@ class TestServerUnshelve(TestServer): self._set_mock_microversion('2.91') arglist = [ - '--availability-zone', "foo-az", + '--availability-zone', + "foo-az", '--no-availability-zone', self.server.id, ] verifylist = [ ('availability_zone', "foo-az"), ('no_availability_zone', True), - ('server', [self.server.id]) + ('server', [self.server.id]), ] ex = self.assertRaises( @@ -8773,28 +9055,57 @@ class TestServerGeneral(TestServer): 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]) + 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], + ) @mock.patch('osc_lib.utils.find_resource') def test_prep_server_detail(self, find_resource): @@ -8825,7 +9136,8 @@ class TestServerGeneral(TestServer): 'image': '%s (%s)' % (_image.name, _image.id), 'flavor': '%s (%s)' % (_flavor.name, _flavor.id), 'OS-EXT-STS:power_state': server.PowerStateColumn( - getattr(_server, 'OS-EXT-STS:power_state')), + getattr(_server, 'OS-EXT-STS:power_state') + ), 'properties': '', 'volumes_attached': [{"id": "6344fe9d-ef20-45b2-91a6"}], 'addresses': format_columns.DictListColumn(_server.networks), @@ -8836,7 +9148,7 @@ class TestServerGeneral(TestServer): server_detail = server._prep_server_detail( self.app.client_manager.compute, self.app.client_manager.image, - _server + _server, ) # 'networks' is used to create _server. Remove it. server_detail.pop('networks') diff --git a/openstackclient/tests/unit/compute/v2/test_server_backup.py b/openstackclient/tests/unit/compute/v2/test_server_backup.py index 1a5e0a12..6a5da4a6 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_backup.py +++ b/openstackclient/tests/unit/compute/v2/test_server_backup.py @@ -23,7 +23,6 @@ from openstackclient.tests.unit.image.v2 import fakes as image_fakes class TestServerBackup(compute_fakes.TestComputev2): - def setUp(self): super(TestServerBackup, self).setUp() @@ -58,12 +57,17 @@ class TestServerBackup(compute_fakes.TestComputev2): class TestServerBackupCreate(TestServerBackup): - # Just return whatever Image is testing with these days def image_columns(self, image): # columnlist = tuple(sorted(image.keys())) columnlist = ( - 'id', 'name', 'owner', 'protected', 'status', 'tags', 'visibility' + 'id', + 'name', + 'owner', + 'protected', + 'status', + 'tags', + 'visibility', ) return columnlist @@ -146,9 +150,12 @@ class TestServerBackupCreate(TestServerBackup): images = self.setup_images_mock(count=1, servers=servers) arglist = [ - '--name', 'image', - '--type', 'daily', - '--rotate', '2', + '--name', + 'image', + '--type', + 'daily', + '--rotate', + '2', servers[0].id, ] verifylist = [ @@ -183,8 +190,10 @@ class TestServerBackupCreate(TestServerBackup): ) arglist = [ - '--name', 'image', - '--type', 'daily', + '--name', + 'image', + '--type', + 'daily', '--wait', servers[0].id, ] @@ -210,9 +219,7 @@ class TestServerBackupCreate(TestServerBackup): ) mock_wait_for_status.assert_called_once_with( - self.images_mock.get_image, - images[0].id, - callback=mock.ANY + self.images_mock.get_image, images[0].id, callback=mock.ANY ) @mock.patch.object(common_utils, 'wait_for_status', return_value=True) @@ -225,8 +232,10 @@ class TestServerBackupCreate(TestServerBackup): ) arglist = [ - '--name', 'image', - '--type', 'daily', + '--name', + 'image', + '--type', + 'daily', '--wait', servers[0].id, ] @@ -251,9 +260,7 @@ class TestServerBackupCreate(TestServerBackup): ) mock_wait_for_status.assert_called_once_with( - self.images_mock.get_image, - images[0].id, - callback=mock.ANY + self.images_mock.get_image, images[0].id, callback=mock.ANY ) self.assertEqual(self.image_columns(images[0]), columns) diff --git a/openstackclient/tests/unit/compute/v2/test_server_event.py b/openstackclient/tests/unit/compute/v2/test_server_event.py index 7b4facd2..d151eda5 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_event.py +++ b/openstackclient/tests/unit/compute/v2/test_server_event.py @@ -24,7 +24,6 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes class TestServerEvent(compute_fakes.TestComputev2): - fake_server = compute_fakes.FakeServer.create_one_server() def setUp(self): @@ -39,24 +38,25 @@ class TestServerEvent(compute_fakes.TestComputev2): self.sdk_client.reset_mock() patcher = mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True) + sdk_utils, 'supports_microversion', return_value=True + ) self.addCleanup(patcher.stop) self.supports_microversion_mock = patcher.start() self._set_mock_microversion( - self.app.client_manager.compute.api_version.get_string()) + self.app.client_manager.compute.api_version.get_string() + ) def _set_mock_microversion(self, mock_v): """Set a specific microversion for the mock supports_microversion().""" self.supports_microversion_mock.reset_mock(return_value=True) self.supports_microversion_mock.side_effect = ( - lambda _, v: - api_versions.APIVersion(v) <= api_versions.APIVersion(mock_v) + lambda _, v: api_versions.APIVersion(v) + <= api_versions.APIVersion(mock_v) ) class TestListServerEvent(TestServerEvent): - fake_event = compute_fakes.create_one_server_action() columns = ( @@ -65,12 +65,14 @@ class TestListServerEvent(TestServerEvent): 'Action', 'Start Time', ) - data = (( - fake_event.request_id, - fake_event.server_id, - fake_event.action, - fake_event.start_time, - ), ) + data = ( + ( + fake_event.request_id, + fake_event.server_id, + fake_event.action, + fake_event.start_time, + ), + ) long_columns = ( 'Request ID', @@ -81,21 +83,25 @@ class TestListServerEvent(TestServerEvent): 'Project ID', 'User ID', ) - long_data = (( - fake_event.request_id, - fake_event.server_id, - fake_event.action, - fake_event.start_time, - fake_event.message, - fake_event.project_id, - fake_event.user_id, - ), ) + long_data = ( + ( + fake_event.request_id, + fake_event.server_id, + fake_event.action, + fake_event.start_time, + fake_event.message, + fake_event.project_id, + fake_event.user_id, + ), + ) def setUp(self): super().setUp() self.sdk_client.find_server.return_value = self.fake_server - self.sdk_client.server_actions.return_value = [self.fake_event, ] + self.sdk_client.server_actions.return_value = [ + self.fake_event, + ] self.cmd = server_event.ListServerEvent(self.app, None) @@ -146,7 +152,8 @@ class TestListServerEvent(TestServerEvent): self._set_mock_microversion('2.58') arglist = [ - '--changes-since', '2016-03-04T06:27:59Z', + '--changes-since', + '2016-03-04T06:27:59Z', self.fake_server.name, ] verifylist = [ @@ -171,12 +178,14 @@ class TestListServerEvent(TestServerEvent): @mock.patch.object(iso8601, 'parse_date', side_effect=iso8601.ParseError) def test_server_event_list_with_changes_since_invalid( - self, mock_parse_isotime, + self, + mock_parse_isotime, ): self._set_mock_microversion('2.58') arglist = [ - '--changes-since', 'Invalid time value', + '--changes-since', + 'Invalid time value', self.fake_server.name, ] verifylist = [ @@ -192,15 +201,14 @@ class TestListServerEvent(TestServerEvent): ) self.assertIn('Invalid changes-since value:', str(ex)) - mock_parse_isotime.assert_called_once_with( - 'Invalid time value' - ) + mock_parse_isotime.assert_called_once_with('Invalid time value') def test_server_event_list_with_changes_since_pre_v258(self): self._set_mock_microversion('2.57') arglist = [ - '--changes-since', '2016-03-04T06:27:59Z', + '--changes-since', + '2016-03-04T06:27:59Z', self.fake_server.name, ] verifylist = [ @@ -216,14 +224,16 @@ class TestListServerEvent(TestServerEvent): ) self.assertIn( - '--os-compute-api-version 2.58 or greater is required', str(ex), + '--os-compute-api-version 2.58 or greater is required', + str(ex), ) def test_server_event_list_with_changes_before(self): self._set_mock_microversion('2.66') arglist = [ - '--changes-before', '2016-03-04T06:27:59Z', + '--changes-before', + '2016-03-04T06:27:59Z', self.fake_server.name, ] verifylist = [ @@ -248,12 +258,14 @@ class TestListServerEvent(TestServerEvent): @mock.patch.object(iso8601, 'parse_date', side_effect=iso8601.ParseError) def test_server_event_list_with_changes_before_invalid( - self, mock_parse_isotime, + self, + mock_parse_isotime, ): self._set_mock_microversion('2.66') arglist = [ - '--changes-before', 'Invalid time value', + '--changes-before', + 'Invalid time value', self.fake_server.name, ] verifylist = [ @@ -263,20 +275,18 @@ class TestListServerEvent(TestServerEvent): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn('Invalid changes-before value:', str(ex)) - mock_parse_isotime.assert_called_once_with( - 'Invalid time value' - ) + mock_parse_isotime.assert_called_once_with('Invalid time value') def test_server_event_list_with_changes_before_pre_v266(self): self._set_mock_microversion('2.65') arglist = [ - '--changes-before', '2016-03-04T06:27:59Z', + '--changes-before', + '2016-03-04T06:27:59Z', self.fake_server.name, ] verifylist = [ @@ -286,9 +296,8 @@ class TestListServerEvent(TestServerEvent): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( '--os-compute-api-version 2.66 or greater is required', @@ -299,7 +308,8 @@ class TestListServerEvent(TestServerEvent): self._set_mock_microversion('2.58') arglist = [ - '--limit', '1', + '--limit', + '1', self.fake_server.name, ] verifylist = [ @@ -320,7 +330,8 @@ class TestListServerEvent(TestServerEvent): self._set_mock_microversion('2.57') arglist = [ - '--limit', '1', + '--limit', + '1', self.fake_server.name, ] verifylist = [ @@ -344,7 +355,8 @@ class TestListServerEvent(TestServerEvent): self._set_mock_microversion('2.58') arglist = [ - '--marker', 'test_event', + '--marker', + 'test_event', self.fake_server.name, ] verifylist = [ @@ -364,7 +376,8 @@ class TestListServerEvent(TestServerEvent): self._set_mock_microversion('2.57') arglist = [ - '--marker', 'test_event', + '--marker', + 'test_event', self.fake_server.name, ] verifylist = [ @@ -374,16 +387,15 @@ class TestListServerEvent(TestServerEvent): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.58 or greater is required', str(ex)) + '--os-compute-api-version 2.58 or greater is required', str(ex) + ) class TestShowServerEvent(TestServerEvent): - fake_event = compute_fakes.create_one_server_action() columns = ( 'action', diff --git a/openstackclient/tests/unit/compute/v2/test_server_group.py b/openstackclient/tests/unit/compute/v2/test_server_group.py index 655366a8..9a086067 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_group.py +++ b/openstackclient/tests/unit/compute/v2/test_server_group.py @@ -25,7 +25,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestServerGroup(compute_fakes.TestComputev2): - fake_server_group = compute_fakes.create_one_server_group() columns = ( @@ -58,18 +57,19 @@ class TestServerGroup(compute_fakes.TestComputev2): class TestServerGroupCreate(TestServerGroup): - def setUp(self): super().setUp() - self.sdk_client.create_server_group.return_value = \ + self.sdk_client.create_server_group.return_value = ( self.fake_server_group + ) self.cmd = server_group.CreateServerGroup(self.app, None) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_server_group_create(self, sm_mock): arglist = [ - '--policy', 'anti-affinity', + '--policy', + 'anti-affinity', 'affinity_group', ] verifylist = [ @@ -89,7 +89,8 @@ class TestServerGroupCreate(TestServerGroup): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_server_group_create_with_soft_policies(self, sm_mock): arglist = [ - '--policy', 'soft-anti-affinity', + '--policy', + 'soft-anti-affinity', 'affinity_group', ] verifylist = [ @@ -109,7 +110,8 @@ class TestServerGroupCreate(TestServerGroup): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) def test_server_group_create_with_soft_policies_pre_v215(self, sm_mock): arglist = [ - '--policy', 'soft-anti-affinity', + '--policy', + 'soft-anti-affinity', 'affinity_group', ] verifylist = [ @@ -118,18 +120,19 @@ class TestServerGroupCreate(TestServerGroup): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.15 or greater is required', - str(ex)) + '--os-compute-api-version 2.15 or greater is required', str(ex) + ) @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_server_group_create_with_rules(self, sm_mock): arglist = [ - '--policy', 'soft-anti-affinity', - '--rule', 'max_server_per_host=2', + '--policy', + 'soft-anti-affinity', + '--rule', + 'max_server_per_host=2', 'affinity_group', ] verifylist = [ @@ -149,11 +152,14 @@ class TestServerGroupCreate(TestServerGroup): self.assertCountEqual(self.data, data) @mock.patch.object( - sdk_utils, 'supports_microversion', side_effect=[True, False]) + sdk_utils, 'supports_microversion', side_effect=[True, False] + ) def test_server_group_create_with_rules_pre_v264(self, sm_mock): arglist = [ - '--policy', 'soft-anti-affinity', - '--rule', 'max_server_per_host=2', + '--policy', + 'soft-anti-affinity', + '--rule', + 'max_server_per_host=2', 'affinity_group', ] verifylist = [ @@ -164,16 +170,14 @@ class TestServerGroupCreate(TestServerGroup): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.64 or greater is required', - str(ex)) + '--os-compute-api-version 2.64 or greater is required', str(ex) + ) class TestServerGroupDelete(TestServerGroup): - def setUp(self): super().setUp() @@ -198,10 +202,7 @@ class TestServerGroupDelete(TestServerGroup): self.assertIsNone(result) def test_server_group_multiple_delete(self): - arglist = [ - 'affinity_group', - 'anti_affinity_group' - ] + arglist = ['affinity_group', 'anti_affinity_group'] verifylist = [ ('server_group', ['affinity_group', 'anti_affinity_group']), ] @@ -221,24 +222,25 @@ class TestServerGroupDelete(TestServerGroup): def test_server_group_delete_no_input(self): arglist = [] verifylist = None - self.assertRaises(tests_utils.ParserException, - self.check_parser, - self.cmd, - arglist, - verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_server_group_multiple_delete_with_exception(self): - arglist = [ - 'affinity_group', - 'anti_affinity_group' - ] + arglist = ['affinity_group', 'anti_affinity_group'] verifylist = [ ('server_group', ['affinity_group', 'anti_affinity_group']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.sdk_client.find_server_group.side_effect = [ - self.fake_server_group, exceptions.CommandError] + self.fake_server_group, + exceptions.CommandError, + ] try: self.cmd.take_action(parsed_args) self.fail('CommandError should be raised.') @@ -256,7 +258,6 @@ class TestServerGroupDelete(TestServerGroup): class TestServerGroupList(TestServerGroup): - list_columns = ( 'ID', 'Name', @@ -287,43 +288,51 @@ class TestServerGroupList(TestServerGroup): 'User Id', ) - list_data = (( - TestServerGroup.fake_server_group.id, - TestServerGroup.fake_server_group.name, - format_columns.ListColumn( - TestServerGroup.fake_server_group.policies + list_data = ( + ( + TestServerGroup.fake_server_group.id, + TestServerGroup.fake_server_group.name, + format_columns.ListColumn( + TestServerGroup.fake_server_group.policies + ), ), - ),) + ) - list_data_long = (( - TestServerGroup.fake_server_group.id, - TestServerGroup.fake_server_group.name, - format_columns.ListColumn( - TestServerGroup.fake_server_group.policies + list_data_long = ( + ( + TestServerGroup.fake_server_group.id, + TestServerGroup.fake_server_group.name, + format_columns.ListColumn( + TestServerGroup.fake_server_group.policies + ), + format_columns.ListColumn( + TestServerGroup.fake_server_group.member_ids + ), + TestServerGroup.fake_server_group.project_id, + TestServerGroup.fake_server_group.user_id, ), - format_columns.ListColumn( - TestServerGroup.fake_server_group.member_ids + ) + + list_data_v264 = ( + ( + TestServerGroup.fake_server_group.id, + TestServerGroup.fake_server_group.name, + TestServerGroup.fake_server_group.policy, ), - TestServerGroup.fake_server_group.project_id, - TestServerGroup.fake_server_group.user_id, - ),) - - list_data_v264 = (( - TestServerGroup.fake_server_group.id, - TestServerGroup.fake_server_group.name, - TestServerGroup.fake_server_group.policy, - ),) - - list_data_v264_long = (( - TestServerGroup.fake_server_group.id, - TestServerGroup.fake_server_group.name, - TestServerGroup.fake_server_group.policy, - format_columns.ListColumn( - TestServerGroup.fake_server_group.member_ids + ) + + list_data_v264_long = ( + ( + TestServerGroup.fake_server_group.id, + TestServerGroup.fake_server_group.name, + TestServerGroup.fake_server_group.policy, + format_columns.ListColumn( + TestServerGroup.fake_server_group.member_ids + ), + TestServerGroup.fake_server_group.project_id, + TestServerGroup.fake_server_group.user_id, ), - TestServerGroup.fake_server_group.project_id, - TestServerGroup.fake_server_group.user_id, - ),) + ) def setUp(self): super().setUp() @@ -363,7 +372,8 @@ class TestServerGroupList(TestServerGroup): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.server_groups.assert_called_once_with( - all_projects=True) + all_projects=True + ) self.assertCountEqual(self.list_columns_long, columns) self.assertCountEqual(self.list_data_long, tuple(data)) @@ -371,7 +381,8 @@ class TestServerGroupList(TestServerGroup): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_server_group_list_with_limit(self, sm_mock): arglist = [ - '--limit', '1', + '--limit', + '1', ] verifylist = [ ('all_projects', False), @@ -388,7 +399,8 @@ class TestServerGroupList(TestServerGroup): @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_server_group_list_with_offset(self, sm_mock): arglist = [ - '--offset', '5', + '--offset', + '5', ] verifylist = [ ('all_projects', False), @@ -429,14 +441,14 @@ class TestServerGroupList(TestServerGroup): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.sdk_client.server_groups.assert_called_once_with( - all_projects=True) + all_projects=True + ) self.assertCountEqual(self.list_columns_v264_long, columns) self.assertCountEqual(self.list_data_v264_long, tuple(data)) class TestServerGroupShow(TestServerGroup): - def setUp(self): super().setUp() diff --git a/openstackclient/tests/unit/compute/v2/test_server_image.py b/openstackclient/tests/unit/compute/v2/test_server_image.py index db0e1d9e..8a27b481 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_image.py +++ b/openstackclient/tests/unit/compute/v2/test_server_image.py @@ -22,7 +22,6 @@ from openstackclient.tests.unit.image.v2 import fakes as image_fakes class TestServerImage(compute_fakes.TestComputev2): - def setUp(self): super(TestServerImage, self).setUp() @@ -57,11 +56,16 @@ class TestServerImage(compute_fakes.TestComputev2): class TestServerImageCreate(TestServerImage): - def image_columns(self, image): # columnlist = tuple(sorted(image.keys())) columnlist = ( - 'id', 'name', 'owner', 'protected', 'status', 'tags', 'visibility' + 'id', + 'name', + 'owner', + 'protected', + 'status', + 'tags', + 'visibility', ) return columnlist @@ -141,8 +145,10 @@ class TestServerImageCreate(TestServerImage): images = self.setup_images_mock(count=1, servers=servers) arglist = [ - '--name', 'img-nam', - '--property', 'key=value', + '--name', + 'img-nam', + '--property', + 'key=value', servers[0].id, ] verifylist = [ @@ -194,9 +200,7 @@ class TestServerImageCreate(TestServerImage): ) mock_wait_for_status.assert_called_once_with( - self.images_mock.get_image, - images[0].id, - callback=mock.ANY + self.images_mock.get_image, images[0].id, callback=mock.ANY ) @mock.patch.object(common_utils, 'wait_for_status', return_value=True) @@ -226,9 +230,7 @@ class TestServerImageCreate(TestServerImage): ) mock_wait_for_status.assert_called_once_with( - self.images_mock.get_image, - images[0].id, - callback=mock.ANY + self.images_mock.get_image, images[0].id, callback=mock.ANY ) self.assertEqual(self.image_columns(images[0]), columns) diff --git a/openstackclient/tests/unit/compute/v2/test_server_migration.py b/openstackclient/tests/unit/compute/v2/test_server_migration.py index afe868d9..58c2e7b2 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_migration.py +++ b/openstackclient/tests/unit/compute/v2/test_server_migration.py @@ -23,7 +23,6 @@ from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes class TestServerMigration(compute_fakes.TestComputev2): - def setUp(self): super().setUp() @@ -32,8 +31,9 @@ class TestServerMigration(compute_fakes.TestComputev2): self.servers_mock.reset_mock() # Get a shortcut to the compute client ServerMigrationsManager Mock - self.server_migrations_mock = \ + self.server_migrations_mock = ( self.app.client_manager.compute.server_migrations + ) self.server_migrations_mock.reset_mock() self.app.client_manager.sdk_connection = mock.Mock() @@ -41,7 +41,8 @@ class TestServerMigration(compute_fakes.TestComputev2): self.sdk_client = self.app.client_manager.sdk_connection.compute patcher = mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True) + sdk_utils, 'supports_microversion', return_value=True + ) self.addCleanup(patcher.stop) self.supports_microversion_mock = patcher.start() @@ -49,23 +50,40 @@ class TestServerMigration(compute_fakes.TestComputev2): """Set a specific microversion for the mock supports_microversion().""" self.supports_microversion_mock.reset_mock(return_value=True) self.supports_microversion_mock.side_effect = ( - lambda _, v: - api_versions.APIVersion(v) <= api_versions.APIVersion(mock_v)) + lambda _, v: api_versions.APIVersion(v) + <= api_versions.APIVersion(mock_v) + ) class TestListMigration(TestServerMigration): """Test fetch all migrations.""" MIGRATION_COLUMNS = [ - 'Source Node', 'Dest Node', 'Source Compute', - 'Dest Compute', 'Dest Host', 'Status', 'Server UUID', - 'Old Flavor', 'New Flavor', 'Created At', 'Updated At' + 'Source Node', + 'Dest Node', + 'Source Compute', + 'Dest Compute', + 'Dest Host', + 'Status', + 'Server UUID', + 'Old Flavor', + 'New Flavor', + 'Created At', + 'Updated At', ] MIGRATION_FIELDS = [ - 'source_node', 'dest_node', 'source_compute', - 'dest_compute', 'dest_host', 'status', 'server_id', 'old_flavor_id', - 'new_flavor_id', 'created_at', 'updated_at' + 'source_node', + 'dest_node', + 'source_compute', + 'dest_compute', + 'dest_host', + 'status', + 'server_id', + 'old_flavor_id', + 'new_flavor_id', + 'created_at', + 'updated_at', ] def setUp(self): @@ -79,8 +97,10 @@ class TestListMigration(TestServerMigration): self.migrations = compute_fakes.create_migrations(count=3) self.sdk_client.migrations.return_value = self.migrations - self.data = (common_utils.get_item_properties( - s, self.MIGRATION_FIELDS) for s in self.migrations) + self.data = ( + common_utils.get_item_properties(s, self.MIGRATION_FIELDS) + for s in self.migrations + ) # Get the command object to test self.cmd = server_migration.ListMigration(self.app, None) @@ -102,10 +122,14 @@ class TestListMigration(TestServerMigration): def test_server_migration_list(self): arglist = [ - '--server', 'server1', - '--host', 'host1', - '--status', 'migrating', - '--type', 'cold-migration', + '--server', + 'server1', + '--host', + 'host1', + '--status', + 'migrating', + '--type', + 'cold-migration', ] verifylist = [ ('server', 'server1'), @@ -131,19 +155,39 @@ class TestListMigration(TestServerMigration): class TestListMigrationV223(TestListMigration): - """Test fetch all migrations. """ + """Test fetch all migrations.""" MIGRATION_COLUMNS = [ - 'Id', 'Source Node', 'Dest Node', 'Source Compute', 'Dest Compute', - 'Dest Host', 'Status', 'Server UUID', 'Old Flavor', 'New Flavor', - 'Type', 'Created At', 'Updated At' + 'Id', + 'Source Node', + 'Dest Node', + 'Source Compute', + 'Dest Compute', + 'Dest Host', + 'Status', + 'Server UUID', + 'Old Flavor', + 'New Flavor', + 'Type', + 'Created At', + 'Updated At', ] # These are the Migration object fields. MIGRATION_FIELDS = [ - 'id', 'source_node', 'dest_node', 'source_compute', 'dest_compute', - 'dest_host', 'status', 'server_id', 'old_flavor_id', - 'new_flavor_id', 'migration_type', 'created_at', 'updated_at' + 'id', + 'source_node', + 'dest_node', + 'source_compute', + 'dest_compute', + 'dest_host', + 'status', + 'server_id', + 'old_flavor_id', + 'new_flavor_id', + 'migration_type', + 'created_at', + 'updated_at', ] def setUp(self): @@ -152,12 +196,8 @@ class TestListMigrationV223(TestListMigration): self._set_mock_microversion('2.23') def test_server_migration_list(self): - arglist = [ - '--status', 'migrating' - ] - verifylist = [ - ('status', 'migrating') - ] + arglist = ['--status', 'migrating'] + verifylist = [('status', 'migrating')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) @@ -173,20 +213,41 @@ class TestListMigrationV223(TestListMigration): class TestListMigrationV259(TestListMigration): - """Test fetch all migrations. """ + """Test fetch all migrations.""" MIGRATION_COLUMNS = [ - 'Id', 'UUID', 'Source Node', 'Dest Node', 'Source Compute', - 'Dest Compute', 'Dest Host', 'Status', 'Server UUID', - 'Old Flavor', 'New Flavor', 'Type', 'Created At', 'Updated At' + 'Id', + 'UUID', + 'Source Node', + 'Dest Node', + 'Source Compute', + 'Dest Compute', + 'Dest Host', + 'Status', + 'Server UUID', + 'Old Flavor', + 'New Flavor', + 'Type', + 'Created At', + 'Updated At', ] # These are the Migration object fields. MIGRATION_FIELDS = [ - 'id', 'uuid', 'source_node', 'dest_node', 'source_compute', - 'dest_compute', 'dest_host', 'status', 'server_id', - 'old_flavor_id', 'new_flavor_id', 'migration_type', - 'created_at', 'updated_at' + 'id', + 'uuid', + 'source_node', + 'dest_node', + 'source_compute', + 'dest_compute', + 'dest_host', + 'status', + 'server_id', + 'old_flavor_id', + 'new_flavor_id', + 'migration_type', + 'created_at', + 'updated_at', ] def setUp(self): @@ -196,16 +257,20 @@ class TestListMigrationV259(TestListMigration): def test_server_migration_list(self): arglist = [ - '--status', 'migrating', - '--limit', '1', - '--marker', 'test_kp', - '--changes-since', '2019-08-09T08:03:25Z' + '--status', + 'migrating', + '--limit', + '1', + '--marker', + 'test_kp', + '--changes-since', + '2019-08-09T08:03:25Z', ] verifylist = [ ('status', 'migrating'), ('limit', 1), ('marker', 'test_kp'), - ('changes_since', '2019-08-09T08:03:25Z') + ('changes_since', '2019-08-09T08:03:25Z'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) @@ -226,77 +291,85 @@ class TestListMigrationV259(TestListMigration): def test_server_migration_list_with_limit_pre_v259(self): self._set_mock_microversion('2.58') - arglist = [ - '--status', 'migrating', - '--limit', '1' - ] - verifylist = [ - ('status', 'migrating'), - ('limit', 1) - ] + arglist = ['--status', 'migrating', '--limit', '1'] + verifylist = [('status', 'migrating'), ('limit', 1)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.59 or greater is required', - str(ex)) + '--os-compute-api-version 2.59 or greater is required', str(ex) + ) def test_server_migration_list_with_marker_pre_v259(self): self._set_mock_microversion('2.58') - arglist = [ - '--status', 'migrating', - '--marker', 'test_kp' - ] - verifylist = [ - ('status', 'migrating'), - ('marker', 'test_kp') - ] + arglist = ['--status', 'migrating', '--marker', 'test_kp'] + verifylist = [('status', 'migrating'), ('marker', 'test_kp')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.59 or greater is required', - str(ex)) + '--os-compute-api-version 2.59 or greater is required', str(ex) + ) def test_server_migration_list_with_changes_since_pre_v259(self): self._set_mock_microversion('2.58') arglist = [ - '--status', 'migrating', - '--changes-since', '2019-08-09T08:03:25Z' + '--status', + 'migrating', + '--changes-since', + '2019-08-09T08:03:25Z', ] verifylist = [ ('status', 'migrating'), - ('changes_since', '2019-08-09T08:03:25Z') + ('changes_since', '2019-08-09T08:03:25Z'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.59 or greater is required', - str(ex)) + '--os-compute-api-version 2.59 or greater is required', str(ex) + ) class TestListMigrationV266(TestListMigration): - """Test fetch all migrations by changes-before. """ + """Test fetch all migrations by changes-before.""" MIGRATION_COLUMNS = [ - 'Id', 'UUID', 'Source Node', 'Dest Node', 'Source Compute', - 'Dest Compute', 'Dest Host', 'Status', 'Server UUID', - 'Old Flavor', 'New Flavor', 'Type', 'Created At', 'Updated At' + 'Id', + 'UUID', + 'Source Node', + 'Dest Node', + 'Source Compute', + 'Dest Compute', + 'Dest Host', + 'Status', + 'Server UUID', + 'Old Flavor', + 'New Flavor', + 'Type', + 'Created At', + 'Updated At', ] # These are the Migration object fields. MIGRATION_FIELDS = [ - 'id', 'uuid', 'source_node', 'dest_node', 'source_compute', - 'dest_compute', 'dest_host', 'status', 'server_id', - 'old_flavor_id', 'new_flavor_id', 'migration_type', - 'created_at', 'updated_at' + 'id', + 'uuid', + 'source_node', + 'dest_node', + 'source_compute', + 'dest_compute', + 'dest_host', + 'status', + 'server_id', + 'old_flavor_id', + 'new_flavor_id', + 'migration_type', + 'created_at', + 'updated_at', ] def setUp(self): @@ -306,18 +379,23 @@ class TestListMigrationV266(TestListMigration): def test_server_migration_list_with_changes_before(self): arglist = [ - '--status', 'migrating', - '--limit', '1', - '--marker', 'test_kp', - '--changes-since', '2019-08-07T08:03:25Z', - '--changes-before', '2019-08-09T08:03:25Z' + '--status', + 'migrating', + '--limit', + '1', + '--marker', + 'test_kp', + '--changes-since', + '2019-08-07T08:03:25Z', + '--changes-before', + '2019-08-09T08:03:25Z', ] verifylist = [ ('status', 'migrating'), ('limit', 1), ('marker', 'test_kp'), ('changes_since', '2019-08-07T08:03:25Z'), - ('changes_before', '2019-08-09T08:03:25Z') + ('changes_before', '2019-08-09T08:03:25Z'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) @@ -340,38 +418,60 @@ class TestListMigrationV266(TestListMigration): def test_server_migration_list_with_changes_before_pre_v266(self): self._set_mock_microversion('2.65') arglist = [ - '--status', 'migrating', - '--changes-before', '2019-08-09T08:03:25Z' + '--status', + 'migrating', + '--changes-before', + '2019-08-09T08:03:25Z', ] verifylist = [ ('status', 'migrating'), - ('changes_before', '2019-08-09T08:03:25Z') + ('changes_before', '2019-08-09T08:03:25Z'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.66 or greater is required', - str(ex)) + '--os-compute-api-version 2.66 or greater is required', str(ex) + ) class TestListMigrationV280(TestListMigration): - """Test fetch all migrations by user-id and/or project-id. """ + """Test fetch all migrations by user-id and/or project-id.""" MIGRATION_COLUMNS = [ - 'Id', 'UUID', 'Source Node', 'Dest Node', 'Source Compute', - 'Dest Compute', 'Dest Host', 'Status', 'Server UUID', - 'Old Flavor', 'New Flavor', 'Type', 'Created At', 'Updated At' + 'Id', + 'UUID', + 'Source Node', + 'Dest Node', + 'Source Compute', + 'Dest Compute', + 'Dest Host', + 'Status', + 'Server UUID', + 'Old Flavor', + 'New Flavor', + 'Type', + 'Created At', + 'Updated At', ] # These are the Migration object fields. MIGRATION_FIELDS = [ - 'id', 'uuid', 'source_node', 'dest_node', 'source_compute', - 'dest_compute', 'dest_host', 'status', 'server_id', - 'old_flavor_id', 'new_flavor_id', 'migration_type', - 'created_at', 'updated_at' + 'id', + 'uuid', + 'source_node', + 'dest_node', + 'source_compute', + 'dest_compute', + 'dest_host', + 'status', + 'server_id', + 'old_flavor_id', + 'new_flavor_id', + 'migration_type', + 'created_at', + 'updated_at', ] project = identity_fakes.FakeProject.create_one_project() @@ -393,12 +493,18 @@ class TestListMigrationV280(TestListMigration): def test_server_migration_list_with_project(self): arglist = [ - '--status', 'migrating', - '--limit', '1', - '--marker', 'test_kp', - '--changes-since', '2019-08-07T08:03:25Z', - '--changes-before', '2019-08-09T08:03:25Z', - '--project', self.project.id + '--status', + 'migrating', + '--limit', + '1', + '--marker', + 'test_kp', + '--changes-since', + '2019-08-07T08:03:25Z', + '--changes-before', + '2019-08-09T08:03:25Z', + '--project', + self.project.id, ] verifylist = [ ('status', 'migrating'), @@ -406,7 +512,7 @@ class TestListMigrationV280(TestListMigration): ('marker', 'test_kp'), ('changes_since', '2019-08-07T08:03:25Z'), ('changes_before', '2019-08-09T08:03:25Z'), - ('project', self.project.id) + ('project', self.project.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) @@ -425,9 +531,11 @@ class TestListMigrationV280(TestListMigration): self.sdk_client.migrations.assert_called_with(**kwargs) self.MIGRATION_COLUMNS.insert( - len(self.MIGRATION_COLUMNS) - 2, "Project") + len(self.MIGRATION_COLUMNS) - 2, "Project" + ) self.MIGRATION_FIELDS.insert( - len(self.MIGRATION_FIELDS) - 2, "project_id") + len(self.MIGRATION_FIELDS) - 2, "project_id" + ) self.assertEqual(self.MIGRATION_COLUMNS, columns) self.assertEqual(tuple(self.data), tuple(data)) # Clean up global variables MIGRATION_COLUMNS @@ -438,32 +546,40 @@ class TestListMigrationV280(TestListMigration): def test_get_migrations_with_project_pre_v280(self): self._set_mock_microversion('2.79') arglist = [ - '--status', 'migrating', - '--changes-before', '2019-08-09T08:03:25Z', - '--project', '0c2accde-644a-45fa-8c10-e76debc7fbc3' + '--status', + 'migrating', + '--changes-before', + '2019-08-09T08:03:25Z', + '--project', + '0c2accde-644a-45fa-8c10-e76debc7fbc3', ] verifylist = [ ('status', 'migrating'), ('changes_before', '2019-08-09T08:03:25Z'), - ('project', '0c2accde-644a-45fa-8c10-e76debc7fbc3') + ('project', '0c2accde-644a-45fa-8c10-e76debc7fbc3'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.80 or greater is required', - str(ex)) + '--os-compute-api-version 2.80 or greater is required', str(ex) + ) def test_server_migration_list_with_user(self): arglist = [ - '--status', 'migrating', - '--limit', '1', - '--marker', 'test_kp', - '--changes-since', '2019-08-07T08:03:25Z', - '--changes-before', '2019-08-09T08:03:25Z', - '--user', self.user.id, + '--status', + 'migrating', + '--limit', + '1', + '--marker', + 'test_kp', + '--changes-since', + '2019-08-07T08:03:25Z', + '--changes-before', + '2019-08-09T08:03:25Z', + '--user', + self.user.id, ] verifylist = [ ('status', 'migrating'), @@ -490,10 +606,8 @@ class TestListMigrationV280(TestListMigration): self.sdk_client.migrations.assert_called_with(**kwargs) - self.MIGRATION_COLUMNS.insert( - len(self.MIGRATION_COLUMNS) - 2, "User") - self.MIGRATION_FIELDS.insert( - len(self.MIGRATION_FIELDS) - 2, "user_id") + self.MIGRATION_COLUMNS.insert(len(self.MIGRATION_COLUMNS) - 2, "User") + self.MIGRATION_FIELDS.insert(len(self.MIGRATION_FIELDS) - 2, "user_id") self.assertEqual(self.MIGRATION_COLUMNS, columns) self.assertEqual(tuple(self.data), tuple(data)) # Clean up global variables MIGRATION_COLUMNS @@ -504,9 +618,12 @@ class TestListMigrationV280(TestListMigration): def test_get_migrations_with_user_pre_v280(self): self._set_mock_microversion('2.79') arglist = [ - '--status', 'migrating', - '--changes-before', '2019-08-09T08:03:25Z', - '--user', self.user.id, + '--status', + 'migrating', + '--changes-before', + '2019-08-09T08:03:25Z', + '--user', + self.user.id, ] verifylist = [ ('status', 'migrating'), @@ -515,21 +632,26 @@ class TestListMigrationV280(TestListMigration): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.80 or greater is required', - str(ex)) + '--os-compute-api-version 2.80 or greater is required', str(ex) + ) def test_server_migration_list_with_project_and_user(self): arglist = [ - '--status', 'migrating', - '--limit', '1', - '--changes-since', '2019-08-07T08:03:25Z', - '--changes-before', '2019-08-09T08:03:25Z', - '--project', self.project.id, - '--user', self.user.id, + '--status', + 'migrating', + '--limit', + '1', + '--changes-since', + '2019-08-07T08:03:25Z', + '--changes-before', + '2019-08-09T08:03:25Z', + '--project', + self.project.id, + '--user', + self.user.id, ] verifylist = [ ('status', 'migrating'), @@ -556,13 +678,13 @@ class TestListMigrationV280(TestListMigration): self.sdk_client.migrations.assert_called_with(**kwargs) self.MIGRATION_COLUMNS.insert( - len(self.MIGRATION_COLUMNS) - 2, "Project") - self.MIGRATION_FIELDS.insert( - len(self.MIGRATION_FIELDS) - 2, "project_id") - self.MIGRATION_COLUMNS.insert( - len(self.MIGRATION_COLUMNS) - 2, "User") + len(self.MIGRATION_COLUMNS) - 2, "Project" + ) self.MIGRATION_FIELDS.insert( - len(self.MIGRATION_FIELDS) - 2, "user_id") + len(self.MIGRATION_FIELDS) - 2, "project_id" + ) + self.MIGRATION_COLUMNS.insert(len(self.MIGRATION_COLUMNS) - 2, "User") + self.MIGRATION_FIELDS.insert(len(self.MIGRATION_FIELDS) - 2, "user_id") self.assertEqual(self.MIGRATION_COLUMNS, columns) self.assertEqual(tuple(self.data), tuple(data)) # Clean up global variables MIGRATION_COLUMNS @@ -574,29 +696,31 @@ class TestListMigrationV280(TestListMigration): def test_get_migrations_with_project_and_user_pre_v280(self): self._set_mock_microversion('2.79') arglist = [ - '--status', 'migrating', - '--changes-before', '2019-08-09T08:03:25Z', - '--project', self.project.id, - '--user', self.user.id, + '--status', + 'migrating', + '--changes-before', + '2019-08-09T08:03:25Z', + '--project', + self.project.id, + '--user', + self.user.id, ] verifylist = [ ('status', 'migrating'), ('changes_before', '2019-08-09T08:03:25Z'), ('project', self.project.id), - ('user', self.user.id) + ('user', self.user.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.80 or greater is required', - str(ex)) + '--os-compute-api-version 2.80 or greater is required', str(ex) + ) class TestServerMigrationShow(TestServerMigration): - def setUp(self): super().setUp() @@ -604,8 +728,9 @@ class TestServerMigrationShow(TestServerMigration): self.sdk_client.find_server.return_value = self.server self.server_migration = compute_fakes.create_one_server_migration() - self.sdk_client.get_server_migration.return_value =\ + self.sdk_client.get_server_migration.return_value = ( self.server_migration + ) self.sdk_client.server_migrations.return_value = iter( [self.server_migration] ) @@ -665,9 +790,11 @@ class TestServerMigrationShow(TestServerMigration): self.assertEqual(self.data, data) self.sdk_client.find_server.assert_called_with( - self.server.id, ignore_missing=False) + self.server.id, ignore_missing=False + ) self.sdk_client.get_server_migration.assert_called_with( - self.server.id, '2', ignore_missing=False) + self.server.id, '2', ignore_missing=False + ) def test_server_migration_show(self): self._set_mock_microversion('2.24') @@ -705,12 +832,11 @@ class TestServerMigrationShow(TestServerMigration): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.24 or greater is required', - str(ex)) + '--os-compute-api-version 2.24 or greater is required', str(ex) + ) def test_server_migration_show_by_uuid(self): self._set_mock_microversion('2.59') @@ -735,7 +861,8 @@ class TestServerMigrationShow(TestServerMigration): self.assertEqual(self.data, data) self.sdk_client.find_server.assert_called_with( - self.server.id, ignore_missing=False) + self.server.id, ignore_missing=False + ) self.sdk_client.server_migrations.assert_called_with(self.server.id) self.sdk_client.get_server_migration.assert_not_called() @@ -751,12 +878,12 @@ class TestServerMigrationShow(TestServerMigration): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( 'In-progress live migration 69f95745-bfe3-4302-90f7-5b0022cba1ce', - str(ex)) + str(ex), + ) def test_server_migration_show_by_uuid_pre_v259(self): self._set_mock_microversion('2.58') @@ -769,12 +896,11 @@ class TestServerMigrationShow(TestServerMigration): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.59 or greater is required', - str(ex)) + '--os-compute-api-version 2.59 or greater is required', str(ex) + ) def test_server_migration_show_invalid_id(self): self._set_mock_microversion('2.24') @@ -787,16 +913,14 @@ class TestServerMigrationShow(TestServerMigration): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - 'The <migration> argument must be an ID or UUID', - str(ex)) + 'The <migration> argument must be an ID or UUID', str(ex) + ) class TestServerMigrationAbort(TestServerMigration): - def setUp(self): super().setUp() @@ -821,9 +945,11 @@ class TestServerMigrationAbort(TestServerMigration): result = self.cmd.take_action(parsed_args) self.sdk_client.find_server.assert_called_with( - self.server.id, ignore_missing=False) + self.server.id, ignore_missing=False + ) self.sdk_client.abort_server_migration.assert_called_with( - '2', self.server.id, ignore_missing=False) + '2', self.server.id, ignore_missing=False + ) self.assertIsNone(result) def test_migration_abort_pre_v224(self): @@ -837,12 +963,11 @@ class TestServerMigrationAbort(TestServerMigration): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.24 or greater is required', - str(ex)) + '--os-compute-api-version 2.24 or greater is required', str(ex) + ) def test_server_migration_abort_by_uuid(self): self._set_mock_microversion('2.59') @@ -862,18 +987,18 @@ class TestServerMigrationAbort(TestServerMigration): result = self.cmd.take_action(parsed_args) self.sdk_client.find_server.assert_called_with( - self.server.id, ignore_missing=False) + self.server.id, ignore_missing=False + ) self.sdk_client.server_migrations.assert_called_with(self.server.id) self.sdk_client.abort_server_migration.assert_called_with( - self.server_migration.id, self.server.id, ignore_missing=False) + self.server_migration.id, self.server.id, ignore_missing=False + ) self.assertIsNone(result) def test_server_migration_abort_by_uuid_no_matches(self): self._set_mock_microversion('2.59') - self.sdk_client.server_migrations.return_value = iter( - [] - ) + self.sdk_client.server_migrations.return_value = iter([]) arglist = [ self.server.id, @@ -883,12 +1008,12 @@ class TestServerMigrationAbort(TestServerMigration): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( 'In-progress live migration 69f95745-bfe3-4302-90f7-5b0022cba1ce', - str(ex)) + str(ex), + ) def test_server_migration_abort_by_uuid_pre_v259(self): self._set_mock_microversion('2.58') @@ -901,16 +1026,14 @@ class TestServerMigrationAbort(TestServerMigration): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.59 or greater is required', - str(ex)) + '--os-compute-api-version 2.59 or greater is required', str(ex) + ) class TestServerMigrationForceComplete(TestServerMigration): - def setUp(self): super().setUp() @@ -935,9 +1058,11 @@ class TestServerMigrationForceComplete(TestServerMigration): result = self.cmd.take_action(parsed_args) self.sdk_client.find_server.assert_called_with( - self.server.id, ignore_missing=False) - self.sdk_client.force_complete_server_migration\ - .assert_called_with('2', self.server.id) + self.server.id, ignore_missing=False + ) + self.sdk_client.force_complete_server_migration.assert_called_with( + '2', self.server.id + ) self.assertIsNone(result) def test_migration_force_complete_pre_v222(self): @@ -951,12 +1076,11 @@ class TestServerMigrationForceComplete(TestServerMigration): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.22 or greater is required', - str(ex)) + '--os-compute-api-version 2.22 or greater is required', str(ex) + ) def test_server_migration_force_complete_by_uuid(self): self._set_mock_microversion('2.59') @@ -976,10 +1100,12 @@ class TestServerMigrationForceComplete(TestServerMigration): result = self.cmd.take_action(parsed_args) self.sdk_client.find_server.assert_called_with( - self.server.id, ignore_missing=False) + self.server.id, ignore_missing=False + ) self.sdk_client.server_migrations.assert_called_with(self.server.id) - self.sdk_client.force_complete_server_migration.\ - assert_called_with(self.server_migration.id, self.server.id) + self.sdk_client.force_complete_server_migration.assert_called_with( + self.server_migration.id, self.server.id + ) self.assertIsNone(result) def test_server_migration_force_complete_by_uuid_no_matches(self): @@ -995,12 +1121,12 @@ class TestServerMigrationForceComplete(TestServerMigration): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( 'In-progress live migration 69f95745-bfe3-4302-90f7-5b0022cba1ce', - str(ex)) + str(ex), + ) def test_server_migration_force_complete_by_uuid_pre_v259(self): self._set_mock_microversion('2.58') @@ -1013,9 +1139,8 @@ class TestServerMigrationForceComplete(TestServerMigration): parsed_args = self.check_parser(self.cmd, arglist, verifylist) ex = self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.assertIn( - '--os-compute-api-version 2.59 or greater is required', - str(ex)) + '--os-compute-api-version 2.59 or greater is required', str(ex) + ) diff --git a/openstackclient/tests/unit/compute/v2/test_server_volume.py b/openstackclient/tests/unit/compute/v2/test_server_volume.py index f86bc7dd..845029f2 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_volume.py +++ b/openstackclient/tests/unit/compute/v2/test_server_volume.py @@ -23,7 +23,6 @@ from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes class TestServerVolume(compute_fakes.TestComputev2): - def setUp(self): super().setUp() @@ -35,7 +34,6 @@ class TestServerVolume(compute_fakes.TestComputev2): class TestServerVolumeList(TestServerVolume): - def setUp(self): super().setUp() @@ -44,15 +42,17 @@ class TestServerVolumeList(TestServerVolume): self.compute_client.find_server.return_value = self.server self.compute_client.volume_attachments.return_value = ( - self.volume_attachments) + self.volume_attachments + ) # Get the command object to test self.cmd = server_volume.ListServerVolume(self.app, None) @mock.patch.object(sdk_utils, 'supports_microversion') def test_server_volume_list(self, sm_mock): - self.app.client_manager.compute.api_version = \ - api_versions.APIVersion('2.1') + self.app.client_manager.compute.api_version = api_versions.APIVersion( + '2.1' + ) sm_mock.side_effect = [False, False, False, False] arglist = [ @@ -102,7 +102,14 @@ class TestServerVolumeList(TestServerVolume): columns, data = self.cmd.take_action(parsed_args) self.assertEqual( - ('ID', 'Device', 'Server ID', 'Volume ID', 'Tag',), columns, + ( + 'ID', + 'Device', + 'Server ID', + 'Volume ID', + 'Tag', + ), + columns, ) self.assertEqual( ( @@ -142,7 +149,11 @@ class TestServerVolumeList(TestServerVolume): self.assertEqual( ( - 'ID', 'Device', 'Server ID', 'Volume ID', 'Tag', + 'ID', + 'Device', + 'Server ID', + 'Volume ID', + 'Tag', 'Delete On Termination?', ), columns, @@ -174,7 +185,6 @@ class TestServerVolumeList(TestServerVolume): @mock.patch.object(sdk_utils, 'supports_microversion') def test_server_volume_list_with_attachment_ids(self, sm_mock): - sm_mock.side_effect = [True, True, True, True] arglist = [ self.server.id, @@ -188,8 +198,12 @@ class TestServerVolumeList(TestServerVolume): self.assertEqual( ( - 'Device', 'Server ID', 'Volume ID', 'Tag', - 'Delete On Termination?', 'Attachment ID', + 'Device', + 'Server ID', + 'Volume ID', + 'Tag', + 'Delete On Termination?', + 'Attachment ID', 'BlockDeviceMapping UUID', ), columns, @@ -203,8 +217,7 @@ class TestServerVolumeList(TestServerVolume): self.volume_attachments[0].tag, self.volume_attachments[0].delete_on_termination, self.volume_attachments[0].attachment_id, - self.volume_attachments[0].bdm_id - + self.volume_attachments[0].bdm_id, ), ( self.volume_attachments[1].device, @@ -213,7 +226,7 @@ class TestServerVolumeList(TestServerVolume): self.volume_attachments[1].tag, self.volume_attachments[1].delete_on_termination, self.volume_attachments[1].attachment_id, - self.volume_attachments[1].bdm_id + self.volume_attachments[1].bdm_id, ), ), tuple(data), @@ -224,7 +237,6 @@ class TestServerVolumeList(TestServerVolume): class TestServerVolumeUpdate(TestServerVolume): - def setUp(self): super().setUp() @@ -299,15 +311,14 @@ class TestServerVolumeUpdate(TestServerVolume): result = self.cmd.take_action(parsed_args) self.compute_client.update_volume_attachment.assert_called_once_with( - self.server, - self.volume, - delete_on_termination=False + self.server, self.volume, delete_on_termination=False ) self.assertIsNone(result) @mock.patch.object(sdk_utils, 'supports_microversion') def test_server_volume_update_with_delete_on_termination_pre_v285( - self, sm_mock, + self, + sm_mock, ): sm_mock.return_value = False @@ -332,7 +343,8 @@ class TestServerVolumeUpdate(TestServerVolume): @mock.patch.object(sdk_utils, 'supports_microversion') def test_server_volume_update_with_preserve_on_termination_pre_v285( - self, sm_mock, + self, + sm_mock, ): sm_mock.return_value = False diff --git a/openstackclient/tests/unit/compute/v2/test_service.py b/openstackclient/tests/unit/compute/v2/test_service.py index 5b58431a..b61d9243 100644 --- a/openstackclient/tests/unit/compute/v2/test_service.py +++ b/openstackclient/tests/unit/compute/v2/test_service.py @@ -25,7 +25,6 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes class TestService(compute_fakes.TestComputev2): - def setUp(self): super(TestService, self).setUp() @@ -35,7 +34,6 @@ class TestService(compute_fakes.TestComputev2): class TestServiceDelete(TestService): - services = compute_fakes.FakeService.create_services(count=2) def setUp(self): @@ -58,8 +56,7 @@ class TestServiceDelete(TestService): result = self.cmd.take_action(parsed_args) self.sdk_client.delete_service.assert_called_with( - self.services[0].binary, - ignore_missing=False + self.services[0].binary, ignore_missing=False ) self.assertIsNone(result) @@ -85,14 +82,12 @@ class TestServiceDelete(TestService): self.services[0].binary, 'unexist_service', ] - verifylist = [ - ('service', arglist) - ] + verifylist = [('service', arglist)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) delete_mock_result = [None, exceptions.CommandError] - self.sdk_client.delete_service = ( - mock.Mock(side_effect=delete_mock_result) + self.sdk_client.delete_service = mock.Mock( + side_effect=delete_mock_result ) try: @@ -100,20 +95,18 @@ class TestServiceDelete(TestService): self.fail('CommandError should be raised.') except exceptions.CommandError as e: self.assertEqual( - '1 of 2 compute services failed to delete.', str(e)) + '1 of 2 compute services failed to delete.', str(e) + ) self.sdk_client.delete_service.assert_any_call( - self.services[0].binary, - ignore_missing=False + self.services[0].binary, ignore_missing=False ) self.sdk_client.delete_service.assert_any_call( - 'unexist_service', - ignore_missing=False + 'unexist_service', ignore_missing=False ) class TestServiceList(TestService): - service = compute_fakes.FakeService.create_one_service() columns = ( @@ -125,20 +118,20 @@ class TestServiceList(TestService): 'State', 'Updated At', ) - columns_long = columns + ( - 'Disabled Reason', - ) - - data = [( - service.id, - service.binary, - service.host, - service.availability_zone, - service.status, - service.state, - service.updated_at, - )] - data_long = [data[0] + (service.disabled_reason, )] + columns_long = columns + ('Disabled Reason',) + + data = [ + ( + service.id, + service.binary, + service.host, + service.availability_zone, + service.status, + service.state, + service.updated_at, + ) + ] + data_long = [data[0] + (service.disabled_reason,)] def setUp(self): super(TestServiceList, self).setUp() @@ -150,8 +143,10 @@ class TestServiceList(TestService): def test_service_list(self): arglist = [ - '--host', self.service.host, - '--service', self.service.binary, + '--host', + self.service.host, + '--service', + self.service.binary, ] verifylist = [ ('host', self.service.host), @@ -177,14 +172,16 @@ class TestServiceList(TestService): sm_mock.return_value = False arglist = [ - '--host', self.service.host, - '--service', self.service.binary, - '--long' + '--host', + self.service.host, + '--service', + self.service.binary, + '--long', ] verifylist = [ ('host', self.service.host), ('service', self.service.binary), - ('long', True) + ('long', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -206,18 +203,21 @@ class TestServiceList(TestService): sm_mock.return_value = True arglist = [ - '--host', self.service.host, - '--service', self.service.binary, - '--long' + '--host', + self.service.host, + '--service', + self.service.binary, + '--long', ] verifylist = [ ('host', self.service.host), ('service', self.service.binary), - ('long', True) + ('long', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.app.client_manager.compute.api_version = api_versions.APIVersion( - '2.11') + '2.11' + ) # In base command class Lister in cliff, abstract method take_action() # returns a tuple containing the column names and an iterable @@ -238,7 +238,6 @@ class TestServiceList(TestService): class TestServiceSet(TestService): - def setUp(self): super(TestServiceSet, self).setUp() @@ -285,9 +284,7 @@ class TestServiceSet(TestService): result = self.cmd.take_action(parsed_args) self.sdk_client.enable_service.assert_called_with( - None, - self.service.host, - self.service.binary + None, self.service.host, self.service.binary ) self.assertIsNone(result) @@ -309,10 +306,7 @@ class TestServiceSet(TestService): result = self.cmd.take_action(parsed_args) self.sdk_client.disable_service.assert_called_with( - None, - self.service.host, - self.service.binary, - None + None, self.service.host, self.service.binary, None ) self.assertIsNone(result) @@ -322,7 +316,8 @@ class TestServiceSet(TestService): reason = 'earthquake' arglist = [ '--disable', - '--disable-reason', reason, + '--disable-reason', + reason, self.service.host, self.service.binary, ] @@ -337,10 +332,7 @@ class TestServiceSet(TestService): result = self.cmd.take_action(parsed_args) self.sdk_client.disable_service.assert_called_with( - None, - self.service.host, - self.service.binary, - reason + None, self.service.host, self.service.binary, reason ) self.assertIsNone(result) @@ -349,7 +341,8 @@ class TestServiceSet(TestService): sm_mock.return_value = False reason = 'earthquake' arglist = [ - '--disable-reason', reason, + '--disable-reason', + reason, self.service.host, self.service.binary, ] @@ -363,8 +356,11 @@ class TestServiceSet(TestService): self.cmd.take_action(parsed_args) self.fail("CommandError should be raised.") except exceptions.CommandError as e: - self.assertEqual("Cannot specify option --disable-reason without " - "--disable specified.", str(e)) + self.assertEqual( + "Cannot specify option --disable-reason without " + "--disable specified.", + str(e), + ) @mock.patch.object(sdk_utils, 'supports_microversion') def test_service_set_enable_with_disable_reason(self, sm_mock): @@ -372,7 +368,8 @@ class TestServiceSet(TestService): reason = 'earthquake' arglist = [ '--enable', - '--disable-reason', reason, + '--disable-reason', + reason, self.service.host, self.service.binary, ] @@ -387,8 +384,11 @@ class TestServiceSet(TestService): self.cmd.take_action(parsed_args) self.fail("CommandError should be raised.") except exceptions.CommandError as e: - self.assertEqual("Cannot specify option --disable-reason without " - "--disable specified.", str(e)) + self.assertEqual( + "Cannot specify option --disable-reason without " + "--disable specified.", + str(e), + ) @mock.patch.object(sdk_utils, 'supports_microversion') def test_service_set_state_up(self, sm_mock): @@ -406,10 +406,7 @@ class TestServiceSet(TestService): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.update_service_forced_down.assert_called_once_with( - None, - self.service.host, - self.service.binary, - False + None, self.service.host, self.service.binary, False ) self.assertNotCalled(self.sdk_client.enable_service) self.assertNotCalled(self.sdk_client.disable_service) @@ -431,10 +428,7 @@ class TestServiceSet(TestService): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.update_service_forced_down.assert_called_once_with( - None, - self.service.host, - self.service.binary, - True + None, self.service.host, self.service.binary, True ) self.assertNotCalled(self.sdk_client.enable_service) self.assertNotCalled(self.sdk_client.disable_service) @@ -458,15 +452,10 @@ class TestServiceSet(TestService): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.sdk_client.enable_service.assert_called_once_with( - None, - self.service.host, - self.service.binary + None, self.service.host, self.service.binary ) self.sdk_client.update_service_forced_down.assert_called_once_with( - None, - self.service.host, - self.service.binary, - True + None, self.service.host, self.service.binary, True ) self.assertIsNone(result) @@ -487,15 +476,14 @@ class TestServiceSet(TestService): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(self.sdk_client, 'enable_service', - side_effect=Exception()): - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + with mock.patch.object( + self.sdk_client, 'enable_service', side_effect=Exception() + ): + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) self.sdk_client.update_service_forced_down.assert_called_once_with( - None, - self.service.host, - self.service.binary, - True + None, self.service.host, self.service.binary, True ) @mock.patch.object(sdk_utils, 'supports_microversion') @@ -520,16 +508,11 @@ class TestServiceSet(TestService): self.sdk_client.services.return_value = [mock.Mock(id=service_id)] result = self.cmd.take_action(parsed_args) self.sdk_client.disable_service.assert_called_once_with( - service_id, - self.service.host, - self.service.binary, - None + service_id, self.service.host, self.service.binary, None ) self.sdk_client.update_service_forced_down.assert_called_once_with( - service_id, - self.service.host, - self.service.binary, - True) + service_id, self.service.host, self.service.binary, True + ) self.assertIsNone(result) @mock.patch.object(sdk_utils, 'supports_microversion') @@ -540,7 +523,8 @@ class TestServiceSet(TestService): reason = 'earthquake' arglist = [ '--disable', - '--disable-reason', reason, + '--disable-reason', + reason, self.service.host, self.service.binary, ] @@ -555,10 +539,7 @@ class TestServiceSet(TestService): self.sdk_client.services.return_value = [mock.Mock(id=service_id)] result = self.cmd.take_action(parsed_args) self.sdk_client.disable_service.assert_called_once_with( - service_id, - self.service.host, - self.service.binary, - reason + service_id, self.service.host, self.service.binary, reason ) self.assertIsNone(result) @@ -584,33 +565,41 @@ class TestServiceSet(TestService): self.sdk_client.services.return_value = [mock.Mock(id=service_id)] result = self.cmd.take_action(parsed_args) self.sdk_client.enable_service.assert_called_once_with( - service_id, - self.service.host, - self.service.binary + service_id, self.service.host, self.service.binary ) self.sdk_client.update_service_forced_down.assert_called_once_with( - service_id, - self.service.host, - self.service.binary, - False + service_id, self.service.host, self.service.binary, False ) self.assertIsNone(result) def test_service_set_find_service_by_host_and_binary_no_results(self): # Tests that no compute services are found by host and binary. self.sdk_client.services.return_value = [] - ex = self.assertRaises(exceptions.CommandError, - self.cmd._find_service_by_host_and_binary, - self.sdk_client, 'fake-host', 'nova-compute') - self.assertIn('Compute service for host "fake-host" and binary ' - '"nova-compute" not found.', str(ex)) + ex = self.assertRaises( + exceptions.CommandError, + self.cmd._find_service_by_host_and_binary, + self.sdk_client, + 'fake-host', + 'nova-compute', + ) + self.assertIn( + 'Compute service for host "fake-host" and binary ' + '"nova-compute" not found.', + str(ex), + ) def test_service_set_find_service_by_host_and_binary_many_results(self): # Tests that more than one compute service is found by host and binary. self.sdk_client.services.return_value = [mock.Mock(), mock.Mock()] - ex = self.assertRaises(exceptions.CommandError, - self.cmd._find_service_by_host_and_binary, - self.sdk_client, 'fake-host', 'nova-compute') - self.assertIn('Multiple compute services found for host "fake-host" ' - 'and binary "nova-compute". Unable to proceed.', - str(ex)) + ex = self.assertRaises( + exceptions.CommandError, + self.cmd._find_service_by_host_and_binary, + self.sdk_client, + 'fake-host', + 'nova-compute', + ) + self.assertIn( + 'Multiple compute services found for host "fake-host" ' + 'and binary "nova-compute". Unable to proceed.', + str(ex), + ) diff --git a/openstackclient/tests/unit/compute/v2/test_usage.py b/openstackclient/tests/unit/compute/v2/test_usage.py index 85b45e1b..0915a9c7 100644 --- a/openstackclient/tests/unit/compute/v2/test_usage.py +++ b/openstackclient/tests/unit/compute/v2/test_usage.py @@ -19,7 +19,6 @@ from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes class TestUsage(compute_fakes.TestComputev2): - def setUp(self): super(TestUsage, self).setUp() @@ -32,27 +31,29 @@ class TestUsage(compute_fakes.TestComputev2): class TestUsageList(TestUsage): - project = identity_fakes.FakeProject.create_one_project() # Return value of self.usage_mock.list(). usages = compute_fakes.FakeUsage.create_usages( - attrs={'project_id': project.name}, count=1) + attrs={'project_id': project.name}, count=1 + ) columns = ( "Project", "Servers", "RAM MB-Hours", "CPU Hours", - "Disk GB-Hours" + "Disk GB-Hours", ) - data = [( - usage_cmds.ProjectColumn(usages[0].project_id), - usage_cmds.CountColumn(usages[0].server_usages), - usage_cmds.FloatColumn(usages[0].total_memory_mb_usage), - usage_cmds.FloatColumn(usages[0].total_vcpus_usage), - usage_cmds.FloatColumn(usages[0].total_local_gb_usage), - )] + data = [ + ( + usage_cmds.ProjectColumn(usages[0].project_id), + usage_cmds.CountColumn(usages[0].server_usages), + usage_cmds.FloatColumn(usages[0].total_memory_mb_usage), + usage_cmds.FloatColumn(usages[0].total_vcpus_usage), + usage_cmds.FloatColumn(usages[0].total_local_gb_usage), + ) + ] def setUp(self): super(TestUsageList, self).setUp() @@ -64,7 +65,6 @@ class TestUsageList(TestUsage): self.cmd = usage_cmds.ListUsage(self.app, None) def test_usage_list_no_options(self): - arglist = [] verifylist = [ ('start', None), @@ -82,8 +82,10 @@ class TestUsageList(TestUsage): def test_usage_list_with_options(self): arglist = [ - '--start', '2016-11-11', - '--end', '2016-12-20', + '--start', + '2016-11-11', + '--end', + '2016-12-20', ] verifylist = [ ('start', '2016-11-11'), @@ -98,7 +100,8 @@ class TestUsageList(TestUsage): self.sdk_client.usages.assert_called_with( start='2016-11-11T00:00:00', end='2016-12-20T00:00:00', - detailed=True) + detailed=True, + ) self.assertCountEqual(self.columns, columns) self.assertCountEqual(tuple(self.data), tuple(data)) @@ -115,19 +118,19 @@ class TestUsageList(TestUsage): columns, data = self.cmd.take_action(parsed_args) self.projects_mock.list.assert_called_with() - self.sdk_client.usages.assert_has_calls([ - mock.call(start=mock.ANY, end=mock.ANY, detailed=True) - ]) + self.sdk_client.usages.assert_has_calls( + [mock.call(start=mock.ANY, end=mock.ANY, detailed=True)] + ) self.assertCountEqual(self.columns, columns) self.assertCountEqual(tuple(self.data), tuple(data)) class TestUsageShow(TestUsage): - project = identity_fakes.FakeProject.create_one_project() # Return value of self.usage_mock.list(). usage = compute_fakes.FakeUsage.create_one_usage( - attrs={'project_id': project.name}) + attrs={'project_id': project.name} + ) columns = ( 'Project', @@ -155,7 +158,6 @@ class TestUsageShow(TestUsage): self.cmd = usage_cmds.ShowUsage(self.app, None) def test_usage_show_no_options(self): - self.app.client_manager.auth_ref = mock.Mock() self.app.client_manager.auth_ref.project_id = self.project.id @@ -174,11 +176,13 @@ class TestUsageShow(TestUsage): self.assertEqual(self.data, data) def test_usage_show_with_options(self): - arglist = [ - '--project', self.project.id, - '--start', '2016-11-11', - '--end', '2016-12-20', + '--project', + self.project.id, + '--start', + '2016-11-11', + '--end', + '2016-12-20', ] verifylist = [ ('project', self.project.id), @@ -193,7 +197,8 @@ class TestUsageShow(TestUsage): self.sdk_client.get_usage.assert_called_with( project=self.project.id, start='2016-11-11T00:00:00', - end='2016-12-20T00:00:00') + end='2016-12-20T00:00:00', + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) |