diff options
| author | Jenkins <jenkins@review.openstack.org> | 2017-03-07 19:20:11 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2017-03-07 19:20:11 +0000 |
| commit | 054060cbef033b36d22caf47ae44f47e26da597f (patch) | |
| tree | 1cb6a814c03741e2927f7276aac550a24c29fa3c /openstackclient/tests/unit/compute | |
| parent | c0a23b89b16651e0bb07adf1800aa57cbfbb564b (diff) | |
| parent | c03b9a871c4fe6b99221cb4b0d1e0eb7c90283fe (diff) | |
| download | python-openstackclient-054060cbef033b36d22caf47ae44f47e26da597f.tar.gz | |
Merge "Add server event list and show commands"
Diffstat (limited to 'openstackclient/tests/unit/compute')
| -rw-r--r-- | openstackclient/tests/unit/compute/v2/fakes.py | 44 | ||||
| -rw-r--r-- | openstackclient/tests/unit/compute/v2/test_server_event.py | 167 |
2 files changed, 211 insertions, 0 deletions
diff --git a/openstackclient/tests/unit/compute/v2/fakes.py b/openstackclient/tests/unit/compute/v2/fakes.py index 4fe735b6..bbb770bb 100644 --- a/openstackclient/tests/unit/compute/v2/fakes.py +++ b/openstackclient/tests/unit/compute/v2/fakes.py @@ -204,6 +204,9 @@ class FakeComputev2Client(object): self.server_groups = mock.Mock() self.server_groups.resource_class = fakes.FakeResource(None, {}) + self.instance_action = mock.Mock() + self.instance_action.resource_class = fakes.FakeResource(None, {}) + self.auth_token = kwargs['token'] self.management_url = kwargs['endpoint'] @@ -656,6 +659,47 @@ class FakeServer(object): return mock.Mock(side_effect=servers) +class FakeServerEvent(object): + """Fake one or more server event.""" + + @staticmethod + def create_one_server_event(attrs=None): + """Create a fake server event. + + :param attrs: + A dictionary with all attributes + :return: + A FakeResource object, with id and other attributes + """ + attrs = attrs or {} + + # Set default attributes + server_event_info = { + "instance_uuid": "server-event-" + uuid.uuid4().hex, + "user_id": "user-id-" + uuid.uuid4().hex, + "start_time": "2017-02-27T07:47:13.000000", + "request_id": "req-" + uuid.uuid4().hex, + "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" + }] + } + # Overwrite default attributes + server_event_info.update(attrs) + + server_event = fakes.FakeResource( + info=copy.deepcopy(server_event_info), + loaded=True, + ) + return server_event + + class FakeService(object): """Fake one or more services.""" diff --git a/openstackclient/tests/unit/compute/v2/test_server_event.py b/openstackclient/tests/unit/compute/v2/test_server_event.py new file mode 100644 index 00000000..5c94891a --- /dev/null +++ b/openstackclient/tests/unit/compute/v2/test_server_event.py @@ -0,0 +1,167 @@ +# Copyright 2017 Huawei, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +from openstackclient.compute.v2 import server_event +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): + super(TestServerEvent, self).setUp() + + self.servers_mock = self.app.client_manager.compute.servers + self.servers_mock.reset_mock() + self.events_mock = self.app.client_manager.compute.instance_action + self.events_mock.reset_mock() + + self.servers_mock.get.return_value = self.fake_server + + +class TestListServerEvent(TestServerEvent): + + fake_event = compute_fakes.FakeServerEvent.create_one_server_event() + + columns = ( + 'Request ID', + 'Server ID', + 'Action', + 'Start Time', + ) + data = (( + fake_event.request_id, + fake_event.instance_uuid, + fake_event.action, + fake_event.start_time, + ), ) + + long_columns = ( + 'Request ID', + 'Server ID', + 'Action', + 'Start Time', + 'Message', + 'Project ID', + 'User ID', + ) + long_data = (( + fake_event.request_id, + fake_event.instance_uuid, + fake_event.action, + fake_event.start_time, + fake_event.message, + fake_event.project_id, + fake_event.user_id, + ), ) + + def setUp(self): + super(TestListServerEvent, self).setUp() + + self.events_mock.list.return_value = [self.fake_event, ] + self.cmd = server_event.ListServerEvent(self.app, None) + + def test_server_event_list(self): + arglist = [ + self.fake_server.name, + ] + verifylist = [ + ('server', self.fake_server.name), + ('long', False), + ] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + + self.servers_mock.get.assert_called_once_with(self.fake_server.name) + self.events_mock.list.assert_called_once_with(self.fake_server.id) + + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, tuple(data)) + + def test_server_event_list_long(self): + arglist = [ + '--long', + self.fake_server.name, + ] + verifylist = [ + ('server', self.fake_server.name), + ('long', True), + ] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + + self.servers_mock.get.assert_called_once_with(self.fake_server.name) + self.events_mock.list.assert_called_once_with(self.fake_server.id) + + self.assertEqual(self.long_columns, columns) + self.assertEqual(self.long_data, tuple(data)) + + +class TestShowServerEvent(TestServerEvent): + + fake_event = compute_fakes.FakeServerEvent.create_one_server_event() + + columns = ( + 'action', + 'events', + 'instance_uuid', + 'message', + 'project_id', + 'request_id', + 'start_time', + 'user_id', + ) + data = ( + fake_event.action, + fake_event.events, + fake_event.instance_uuid, + fake_event.message, + fake_event.project_id, + fake_event.request_id, + fake_event.start_time, + fake_event.user_id, + ) + + def setUp(self): + super(TestShowServerEvent, self).setUp() + + self.events_mock.get.return_value = self.fake_event + self.cmd = server_event.ShowServerEvent(self.app, None) + + def test_server_event_show(self): + arglist = [ + self.fake_server.name, + self.fake_event.request_id, + ] + verifylist = [ + ('server', self.fake_server.name), + ('request_id', self.fake_event.request_id), + ] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + + self.servers_mock.get.assert_called_once_with(self.fake_server.name) + self.events_mock.get.assert_called_once_with( + self.fake_server.id, self.fake_event.request_id) + + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, data) |
