|
13 | 13 | # under the License. |
14 | 14 | # |
15 | 15 |
|
| 16 | +import mock |
| 17 | + |
| 18 | +from mock import call |
| 19 | +from openstackclient.common import exceptions |
16 | 20 | from openstackclient.compute.v2 import agent |
17 | 21 | from openstackclient.tests.compute.v2 import fakes as compute_fakes |
18 | 22 |
|
@@ -89,26 +93,73 @@ def test_agent_create(self): |
89 | 93 |
|
90 | 94 | class TestAgentDelete(TestAgent): |
91 | 95 |
|
| 96 | + fake_agents = compute_fakes.FakeAgent.create_agents(count=2) |
| 97 | + |
92 | 98 | def setUp(self): |
93 | 99 | super(TestAgentDelete, self).setUp() |
94 | 100 |
|
95 | | - self.agents_mock.get.return_value = self.fake_agent |
| 101 | + self.agents_mock.get.return_value = self.fake_agents |
96 | 102 | self.cmd = agent.DeleteAgent(self.app, None) |
97 | 103 |
|
98 | | - def test_one_agent_delete(self): |
| 104 | + def test_delete_one_agent(self): |
99 | 105 | arglist = [ |
100 | | - 'test' |
| 106 | + self.fake_agents[0].agent_id |
101 | 107 | ] |
102 | 108 |
|
103 | 109 | verifylist = [ |
104 | | - ('id', 'test'), |
| 110 | + ('id', [self.fake_agents[0].agent_id]), |
105 | 111 | ] |
106 | 112 |
|
107 | 113 | parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
108 | 114 | result = self.cmd.take_action(parsed_args) |
109 | | - self.agents_mock.delete.assert_called_with(parsed_args.id) |
| 115 | + self.agents_mock.delete.assert_called_with( |
| 116 | + self.fake_agents[0].agent_id) |
| 117 | + self.assertIsNone(result) |
| 118 | + |
| 119 | + def test_delete_multiple_agents(self): |
| 120 | + arglist = [] |
| 121 | + for n in self.fake_agents: |
| 122 | + arglist.append(n.agent_id) |
| 123 | + verifylist = [ |
| 124 | + ('id', arglist), |
| 125 | + ] |
| 126 | + |
| 127 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 128 | + result = self.cmd.take_action(parsed_args) |
| 129 | + |
| 130 | + calls = [] |
| 131 | + for n in self.fake_agents: |
| 132 | + calls.append(call(n.agent_id)) |
| 133 | + self.agents_mock.delete.assert_has_calls(calls) |
110 | 134 | self.assertIsNone(result) |
111 | 135 |
|
| 136 | + def test_delete_multiple_agents_exception(self): |
| 137 | + arglist = [ |
| 138 | + self.fake_agents[0].agent_id, |
| 139 | + self.fake_agents[1].agent_id, |
| 140 | + 'x-y-z', |
| 141 | + ] |
| 142 | + verifylist = [ |
| 143 | + ('id', arglist), |
| 144 | + ] |
| 145 | + |
| 146 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 147 | + |
| 148 | + ret_delete = [ |
| 149 | + None, |
| 150 | + None, |
| 151 | + exceptions.NotFound('404') |
| 152 | + ] |
| 153 | + self.agents_mock.delete = mock.Mock(side_effect=ret_delete) |
| 154 | + |
| 155 | + self.assertRaises(exceptions.CommandError, self.cmd.take_action, |
| 156 | + parsed_args) |
| 157 | + calls = [ |
| 158 | + call(self.fake_agents[0].agent_id), |
| 159 | + call(self.fake_agents[1].agent_id), |
| 160 | + ] |
| 161 | + self.agents_mock.delete.assert_has_calls(calls) |
| 162 | + |
112 | 163 |
|
113 | 164 | class TestAgentList(TestAgent): |
114 | 165 |
|
|
0 commit comments