1# Copyright 2017 Huawei, Inc. All rights reserved. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); you may 4# not use this file except in compliance with the License. You may obtain 5# a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12# License for the specific language governing permissions and limitations 13# under the License. 14# 15 16from openstackclient.compute.v2 import server_event 17from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes 18 19 20class TestServerEvent(compute_fakes.TestComputev2): 21 22 fake_server = compute_fakes.FakeServer.create_one_server() 23 24 def setUp(self): 25 super(TestServerEvent, self).setUp() 26 27 self.servers_mock = self.app.client_manager.compute.servers 28 self.servers_mock.reset_mock() 29 self.events_mock = self.app.client_manager.compute.instance_action 30 self.events_mock.reset_mock() 31 32 self.servers_mock.get.return_value = self.fake_server 33 34 35class TestListServerEvent(TestServerEvent): 36 37 fake_event = compute_fakes.FakeServerEvent.create_one_server_event() 38 39 columns = ( 40 'Request ID', 41 'Server ID', 42 'Action', 43 'Start Time', 44 ) 45 data = (( 46 fake_event.request_id, 47 fake_event.instance_uuid, 48 fake_event.action, 49 fake_event.start_time, 50 ), ) 51 52 long_columns = ( 53 'Request ID', 54 'Server ID', 55 'Action', 56 'Start Time', 57 'Message', 58 'Project ID', 59 'User ID', 60 ) 61 long_data = (( 62 fake_event.request_id, 63 fake_event.instance_uuid, 64 fake_event.action, 65 fake_event.start_time, 66 fake_event.message, 67 fake_event.project_id, 68 fake_event.user_id, 69 ), ) 70 71 def setUp(self): 72 super(TestListServerEvent, self).setUp() 73 74 self.events_mock.list.return_value = [self.fake_event, ] 75 self.cmd = server_event.ListServerEvent(self.app, None) 76 77 def test_server_event_list(self): 78 arglist = [ 79 self.fake_server.name, 80 ] 81 verifylist = [ 82 ('server', self.fake_server.name), 83 ('long', False), 84 ] 85 86 parsed_args = self.check_parser(self.cmd, arglist, verifylist) 87 88 columns, data = self.cmd.take_action(parsed_args) 89 90 self.servers_mock.get.assert_called_once_with(self.fake_server.name) 91 self.events_mock.list.assert_called_once_with(self.fake_server.id) 92 93 self.assertEqual(self.columns, columns) 94 self.assertEqual(self.data, tuple(data)) 95 96 def test_server_event_list_long(self): 97 arglist = [ 98 '--long', 99 self.fake_server.name, 100 ] 101 verifylist = [ 102 ('server', self.fake_server.name), 103 ('long', True), 104 ] 105 106 parsed_args = self.check_parser(self.cmd, arglist, verifylist) 107 108 columns, data = self.cmd.take_action(parsed_args) 109 110 self.servers_mock.get.assert_called_once_with(self.fake_server.name) 111 self.events_mock.list.assert_called_once_with(self.fake_server.id) 112 113 self.assertEqual(self.long_columns, columns) 114 self.assertEqual(self.long_data, tuple(data)) 115 116 117class TestShowServerEvent(TestServerEvent): 118 119 fake_event = compute_fakes.FakeServerEvent.create_one_server_event() 120 121 columns = ( 122 'action', 123 'events', 124 'instance_uuid', 125 'message', 126 'project_id', 127 'request_id', 128 'start_time', 129 'user_id', 130 ) 131 data = ( 132 fake_event.action, 133 fake_event.events, 134 fake_event.instance_uuid, 135 fake_event.message, 136 fake_event.project_id, 137 fake_event.request_id, 138 fake_event.start_time, 139 fake_event.user_id, 140 ) 141 142 def setUp(self): 143 super(TestShowServerEvent, self).setUp() 144 145 self.events_mock.get.return_value = self.fake_event 146 self.cmd = server_event.ShowServerEvent(self.app, None) 147 148 def test_server_event_show(self): 149 arglist = [ 150 self.fake_server.name, 151 self.fake_event.request_id, 152 ] 153 verifylist = [ 154 ('server', self.fake_server.name), 155 ('request_id', self.fake_event.request_id), 156 ] 157 158 parsed_args = self.check_parser(self.cmd, arglist, verifylist) 159 160 columns, data = self.cmd.take_action(parsed_args) 161 162 self.servers_mock.get.assert_called_once_with(self.fake_server.name) 163 self.events_mock.get.assert_called_once_with( 164 self.fake_server.id, self.fake_event.request_id) 165 166 self.assertEqual(self.columns, columns) 167 self.assertEqual(self.data, data) 168