summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
authorzhangbailin <zhangbailin@inspur.com>2019-05-06 19:06:55 +0800
committerBrin Zhang <zhangbailin@inspur.com>2019-05-31 05:39:29 +0000
commitef1fd388154eee11b9e83f80e5004670fdffb6cc (patch)
tree560f2f6d83619a45f18070966ad338b9555396a0 /openstackclient/tests
parent91bc0f35def33d49d293be4bd517678222c6b791 (diff)
downloadpython-openstackclient-ef1fd388154eee11b9e83f80e5004670fdffb6cc.tar.gz
Add changes-before attribute to server list
Closes-Bug: #1827844 Part of bp support-to-query-nova-resources-filter-by-changes-before Change-Id: I4f28168188973730247bcbcb70ba0e70eb81e3be
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/functional/compute/v2/test_server.py78
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py66
2 files changed, 144 insertions, 0 deletions
diff --git a/openstackclient/tests/functional/compute/v2/test_server.py b/openstackclient/tests/functional/compute/v2/test_server.py
index c8fb44d3..6330ac98 100644
--- a/openstackclient/tests/functional/compute/v2/test_server.py
+++ b/openstackclient/tests/functional/compute/v2/test_server.py
@@ -63,6 +63,84 @@ class ServerTests(common.ComputeTestCase):
self.assertNotIn(name1, col_name)
self.assertIn(name2, col_name)
+ def test_server_list_with_changes_before(self):
+ """Test server list.
+
+ Getting the servers list with updated_at time equal or
+ before than changes-before.
+ """
+ cmd_output = self.server_create()
+ server_name1 = cmd_output['name']
+
+ cmd_output = self.server_create()
+ server_name2 = cmd_output['name']
+ updated_at2 = cmd_output['updated']
+
+ cmd_output = self.server_create()
+ server_name3 = cmd_output['name']
+
+ cmd_output = json.loads(self.openstack(
+ '--os-compute-api-version 2.66 ' +
+ 'server list -f json '
+ '--changes-before ' + updated_at2
+ ))
+
+ col_updated = [server["Name"] for server in cmd_output]
+ self.assertIn(server_name1, col_updated)
+ self.assertIn(server_name2, col_updated)
+ self.assertNotIn(server_name3, col_updated)
+
+ def test_server_list_with_changes_since(self):
+ """Test server list.
+
+ Getting the servers list with updated_at time equal or
+ later than changes-since.
+ """
+ cmd_output = self.server_create()
+ server_name1 = cmd_output['name']
+ cmd_output = self.server_create()
+ server_name2 = cmd_output['name']
+ updated_at2 = cmd_output['updated']
+ cmd_output = self.server_create()
+ server_name3 = cmd_output['name']
+
+ cmd_output = json.loads(self.openstack(
+ 'server list -f json '
+ '--changes-since ' + updated_at2
+ ))
+
+ col_updated = [server["Name"] for server in cmd_output]
+ self.assertNotIn(server_name1, col_updated)
+ self.assertIn(server_name2, col_updated)
+ self.assertIn(server_name3, col_updated)
+
+ def test_server_list_with_changes_before_and_changes_since(self):
+ """Test server list.
+
+ Getting the servers list with updated_at time equal or before than
+ changes-before and equal or later than changes-since.
+ """
+ cmd_output = self.server_create()
+ server_name1 = cmd_output['name']
+ cmd_output = self.server_create()
+ server_name2 = cmd_output['name']
+ updated_at2 = cmd_output['updated']
+ cmd_output = self.server_create()
+ server_name3 = cmd_output['name']
+ updated_at3 = cmd_output['updated']
+
+ cmd_output = json.loads(self.openstack(
+ '--os-compute-api-version 2.66 ' +
+ 'server list -f json ' +
+ '--changes-since ' + updated_at2 +
+ ' --changes-before ' + updated_at3
+ ))
+
+ col_updated = [server["Name"] for server in cmd_output]
+ self.assertNotIn(server_name1, col_updated)
+ self.assertIn(server_name2, col_updated)
+ self.assertIn(server_name3, col_updated)
+
def test_server_set(self):
"""Test server create, delete, set, show"""
cmd_output = self.server_create()
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index c30af8fb..f0c8843b 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -1991,6 +1991,7 @@ class TestServerList(TestServer):
'user_id': None,
'deleted': False,
'changes-since': None,
+ 'changes-before': None,
}
# Default params of the core function of the command in the case of no
@@ -2272,6 +2273,71 @@ class TestServerList(TestServer):
'Invalid time value'
)
+ def test_server_list_v266_with_changes_before(self):
+ self.app.client_manager.compute.api_version = (
+ api_versions.APIVersion('2.66'))
+ arglist = [
+ '--changes-before', '2016-03-05T06:27:59Z',
+ '--deleted'
+ ]
+ verifylist = [
+ ('changes_before', '2016-03-05T06:27:59Z'),
+ ('deleted', True),
+ ]
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.search_opts['changes-before'] = '2016-03-05T06:27:59Z'
+ self.search_opts['deleted'] = True
+ self.servers_mock.list.assert_called_with(**self.kwargs)
+
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(tuple(self.data), tuple(data))
+
+ @mock.patch.object(timeutils, 'parse_isotime', side_effect=ValueError)
+ def test_server_list_v266_with_invalid_changes_before(
+ self, mock_parse_isotime):
+ self.app.client_manager.compute.api_version = (
+ api_versions.APIVersion('2.66'))
+
+ arglist = [
+ '--changes-before', 'Invalid time value',
+ ]
+ verifylist = [
+ ('changes_before', 'Invalid time value'),
+ ]
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ try:
+ 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'
+ )
+
+ def test_server_with_changes_before_older_version(self):
+ self.app.client_manager.compute.api_version = (
+ api_versions.APIVersion('2.65'))
+
+ arglist = [
+ '--changes-before', '2016-03-05T06:27:59Z',
+ '--deleted'
+ ]
+ verifylist = [
+ ('changes_before', '2016-03-05T06:27:59Z'),
+ ('deleted', True),
+ ]
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.assertRaises(exceptions.CommandError,
+ self.cmd.take_action,
+ parsed_args)
+
def test_server_list_v269_with_partial_constructs(self):
self.app.client_manager.compute.api_version = \
api_versions.APIVersion('2.69')