From 01c7a3aa10f13eb889221f609dc4fb1463904fe3 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Wed, 1 Sep 2021 11:27:31 +0100 Subject: [PATCH] tests: Add missing 'nova update' unit tests We have functional tests for the 'nova update' commands, but no unit tests to verify e.g. that we can't set a description for the server before microversion 2.19. Add such tests. Change-Id: I9af89655a7e7276446a881fd28d21ddd6581048c Signed-off-by: Stephen Finucane --- novaclient/tests/unit/v2/fakes.py | 3 +++ novaclient/tests/unit/v2/test_shell.py | 29 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/novaclient/tests/unit/v2/fakes.py b/novaclient/tests/unit/v2/fakes.py index 29492cbfb..07216adc2 100644 --- a/novaclient/tests/unit/v2/fakes.py +++ b/novaclient/tests/unit/v2/fakes.py @@ -2408,6 +2408,9 @@ class FakeSessionClient(base_client.SessionClient): def delete_servers_1234_migrations_1(self): return (202, {}, None) + def put_servers_1234(self, **kw): + return (201, {}, None) + def put_servers_1234_tags_tag(self, **kw): return (201, {}, None) diff --git a/novaclient/tests/unit/v2/test_shell.py b/novaclient/tests/unit/v2/test_shell.py index 10e8c732e..ed36685f2 100644 --- a/novaclient/tests/unit/v2/test_shell.py +++ b/novaclient/tests/unit/v2/test_shell.py @@ -2395,6 +2395,35 @@ class ShellTest(utils.TestCase): self.assert_called('POST', '/servers/1234/action', {'migrate': {'host': 'target-host'}}) + def test_update(self): + self.run_command('update --name new-name sample-server') + expected_put_body = { + "server": { + "name": "new-name" + } + } + self.assert_called('GET', '/servers/1234', pos=-2) + self.assert_called('PUT', '/servers/1234', expected_put_body, pos=-1) + + def test_update_with_description(self): + self.run_command( + 'update --description new-description sample-server', + api_version='2.19') + expected_put_body = { + "server": { + "description": "new-description" + } + } + self.assert_called('GET', '/servers/1234', pos=-2) + self.assert_called('PUT', '/servers/1234', expected_put_body, pos=-1) + + def test_update_with_description_pre_v219(self): + self.assertRaises( + SystemExit, + self.run_command, + 'update --description new-description sample-server', + api_version='2.18') + def test_resize(self): self.run_command('resize sample-server 1') self.assert_called('POST', '/servers/1234/action',