2020
2121class TestAggregate (compute_fakes .TestComputev2 ):
2222
23+ fake_ag = compute_fakes .FakeAggregate .create_one_aggregate ()
24+
25+ columns = (
26+ 'availability_zone' ,
27+ 'hosts' ,
28+ 'id' ,
29+ 'metadata' ,
30+ 'name' ,
31+ )
32+
33+ data = (
34+ fake_ag .availability_zone ,
35+ fake_ag .hosts ,
36+ fake_ag .id ,
37+ fake_ag .metadata ,
38+ fake_ag .name ,
39+ )
40+
2341 def setUp (self ):
2442 super (TestAggregate , self ).setUp ()
2543
@@ -28,9 +46,317 @@ def setUp(self):
2846 self .aggregate_mock .reset_mock ()
2947
3048
31- class TestAggregateUnset (TestAggregate ):
49+ class TestAggregateAddHost (TestAggregate ):
3250
33- fake_ag = compute_fakes .FakeAggregate .create_one_aggregate ()
51+ def setUp (self ):
52+ super (TestAggregateAddHost , self ).setUp ()
53+
54+ self .aggregate_mock .get .return_value = self .fake_ag
55+ self .aggregate_mock .add_host .return_value = self .fake_ag
56+ self .cmd = aggregate .AddAggregateHost (self .app , None )
57+
58+ def test_aggregate_add_host (self ):
59+ arglist = [
60+ 'ag1' ,
61+ 'host1' ,
62+ ]
63+ verifylist = [
64+ ('aggregate' , 'ag1' ),
65+ ('host' , 'host1' ),
66+ ]
67+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
68+ columns , data = self .cmd .take_action (parsed_args )
69+ self .aggregate_mock .get .assert_called_once_with (parsed_args .aggregate )
70+ self .aggregate_mock .add_host .assert_called_once_with (self .fake_ag ,
71+ parsed_args .host )
72+ self .assertEqual (self .columns , columns )
73+ self .assertEqual (self .data , data )
74+
75+
76+ class TestAggregateCreate (TestAggregate ):
77+
78+ def setUp (self ):
79+ super (TestAggregateCreate , self ).setUp ()
80+
81+ self .aggregate_mock .create .return_value = self .fake_ag
82+ self .aggregate_mock .set_metadata .return_value = self .fake_ag
83+ self .cmd = aggregate .CreateAggregate (self .app , None )
84+
85+ def test_aggregate_create (self ):
86+ arglist = [
87+ 'ag1' ,
88+ ]
89+ verifylist = [
90+ ('name' , 'ag1' ),
91+ ]
92+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
93+ columns , data = self .cmd .take_action (parsed_args )
94+ self .aggregate_mock .create .assert_called_once_with (parsed_args .name ,
95+ None )
96+ self .assertEqual (self .columns , columns )
97+ self .assertEqual (self .data , data )
98+
99+ def test_aggregate_create_with_zone (self ):
100+ arglist = [
101+ '--zone' , 'zone1' ,
102+ 'ag1' ,
103+ ]
104+ verifylist = [
105+ ('zone' , 'zone1' ),
106+ ('name' , 'ag1' ),
107+ ]
108+
109+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
110+ columns , data = self .cmd .take_action (parsed_args )
111+ self .aggregate_mock .create .assert_called_once_with (parsed_args .name ,
112+ parsed_args .zone )
113+ self .assertEqual (self .columns , columns )
114+ self .assertEqual (self .data , data )
115+
116+ def test_aggregate_create_with_property (self ):
117+ arglist = [
118+ '--property' , 'key1=value1' ,
119+ '--property' , 'key2=value2' ,
120+ 'ag1' ,
121+ ]
122+ verifylist = [
123+ ('property' , {'key1' : 'value1' , 'key2' : 'value2' }),
124+ ('name' , 'ag1' ),
125+ ]
126+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
127+ columns , data = self .cmd .take_action (parsed_args )
128+ self .aggregate_mock .create .assert_called_once_with (parsed_args .name ,
129+ None )
130+ self .aggregate_mock .set_metadata .assert_called_once_with (
131+ self .fake_ag , parsed_args .property )
132+ self .assertEqual (self .columns , columns )
133+ self .assertEqual (self .data , data )
134+
135+
136+ class TestAggregateDelete (TestAggregate ):
137+
138+ def setUp (self ):
139+ super (TestAggregateDelete , self ).setUp ()
140+
141+ self .aggregate_mock .get .return_value = self .fake_ag
142+ self .cmd = aggregate .DeleteAggregate (self .app , None )
143+
144+ def test_aggregate_delete (self ):
145+ arglist = [
146+ 'ag1' ,
147+ ]
148+ verifylist = [
149+ ('aggregate' , 'ag1' ),
150+ ]
151+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
152+ result = self .cmd .take_action (parsed_args )
153+ self .aggregate_mock .get .assert_called_once_with (parsed_args .aggregate )
154+ self .aggregate_mock .delete .assert_called_once_with (self .fake_ag .id )
155+ self .assertIsNone (result )
156+
157+
158+ class TestAggregateList (TestAggregate ):
159+
160+ list_columns = (
161+ "ID" ,
162+ "Name" ,
163+ "Availability Zone" ,
164+ )
165+
166+ list_columns_long = (
167+ "ID" ,
168+ "Name" ,
169+ "Availability Zone" ,
170+ "Properties" ,
171+ )
172+
173+ list_data = ((
174+ TestAggregate .fake_ag .id ,
175+ TestAggregate .fake_ag .name ,
176+ TestAggregate .fake_ag .availability_zone ,
177+ ), )
178+
179+ list_data_long = ((
180+ TestAggregate .fake_ag .id ,
181+ TestAggregate .fake_ag .name ,
182+ TestAggregate .fake_ag .availability_zone ,
183+ {},
184+ ), )
185+
186+ def setUp (self ):
187+ super (TestAggregateList , self ).setUp ()
188+
189+ self .aggregate_mock .list .return_value = [self .fake_ag ]
190+ self .cmd = aggregate .ListAggregate (self .app , None )
191+
192+ def test_aggregate_list (self ):
193+
194+ parsed_args = self .check_parser (self .cmd , [], [])
195+ columns , data = self .cmd .take_action (parsed_args )
196+
197+ self .assertEqual (self .list_columns , columns )
198+ self .assertEqual (self .list_data , tuple (data ))
199+
200+ def test_aggregate_list_with_long (self ):
201+ arglist = [
202+ '--long' ,
203+ ]
204+ vertifylist = [
205+ ('long' , True ),
206+ ]
207+ parsed_args = self .check_parser (self .cmd , arglist , vertifylist )
208+ columns , data = self .cmd .take_action (parsed_args )
209+
210+ self .assertEqual (self .list_columns_long , columns )
211+ self .assertEqual (self .list_data_long , tuple (data ))
212+
213+
214+ class TestAggregateRemoveHost (TestAggregate ):
215+
216+ def setUp (self ):
217+ super (TestAggregateRemoveHost , self ).setUp ()
218+
219+ self .aggregate_mock .get .return_value = self .fake_ag
220+ self .aggregate_mock .remove_host .return_value = self .fake_ag
221+ self .cmd = aggregate .RemoveAggregateHost (self .app , None )
222+
223+ def test_aggregate_add_host (self ):
224+ arglist = [
225+ 'ag1' ,
226+ 'host1' ,
227+ ]
228+ verifylist = [
229+ ('aggregate' , 'ag1' ),
230+ ('host' , 'host1' ),
231+ ]
232+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
233+ columns , data = self .cmd .take_action (parsed_args )
234+ self .aggregate_mock .get .assert_called_once_with (parsed_args .aggregate )
235+ self .aggregate_mock .remove_host .assert_called_once_with (
236+ self .fake_ag , parsed_args .host )
237+ self .assertEqual (self .columns , columns )
238+ self .assertEqual (self .data , data )
239+
240+
241+ class TestAggregateSet (TestAggregate ):
242+
243+ def setUp (self ):
244+ super (TestAggregateSet , self ).setUp ()
245+
246+ self .aggregate_mock .get .return_value = self .fake_ag
247+ self .cmd = aggregate .SetAggregate (self .app , None )
248+
249+ def test_aggregate_set_no_option (self ):
250+ arglist = [
251+ 'ag1' ,
252+ ]
253+ verifylist = [
254+ ('aggregate' , 'ag1' ),
255+ ]
256+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
257+ result = self .cmd .take_action (parsed_args )
258+
259+ self .aggregate_mock .get .assert_called_once_with (parsed_args .aggregate )
260+ self .assertNotCalled (self .aggregate_mock .update )
261+ self .assertNotCalled (self .aggregate_mock .set_metadata )
262+ self .assertIsNone (result )
263+
264+ def test_aggregate_set_with_name (self ):
265+ arglist = [
266+ '--name' , 'new_name' ,
267+ 'ag1' ,
268+ ]
269+ verifylist = [
270+ ('name' , 'new_name' ),
271+ ('aggregate' , 'ag1' ),
272+ ]
273+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
274+ result = self .cmd .take_action (parsed_args )
275+
276+ self .aggregate_mock .get .assert_called_once_with (parsed_args .aggregate )
277+ self .aggregate_mock .update .assert_called_once_with (
278+ self .fake_ag , {'name' : parsed_args .name })
279+ self .assertNotCalled (self .aggregate_mock .set_metadata )
280+ self .assertIsNone (result )
281+
282+ def test_aggregate_set_with_zone (self ):
283+ arglist = [
284+ '--zone' , 'new_zone' ,
285+ 'ag1' ,
286+ ]
287+ verifylist = [
288+ ('zone' , 'new_zone' ),
289+ ('aggregate' , 'ag1' ),
290+ ]
291+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
292+ result = self .cmd .take_action (parsed_args )
293+
294+ self .aggregate_mock .get .assert_called_once_with (parsed_args .aggregate )
295+ self .aggregate_mock .update .assert_called_once_with (
296+ self .fake_ag , {'availability_zone' : parsed_args .zone })
297+ self .assertNotCalled (self .aggregate_mock .set_metadata )
298+ self .assertIsNone (result )
299+
300+ def test_aggregate_set_with_property (self ):
301+ arglist = [
302+ '--property' , 'key1=value1' ,
303+ '--property' , 'key2=value2' ,
304+ 'ag1' ,
305+ ]
306+ verifylist = [
307+ ('property' , {'key1' : 'value1' , 'key2' : 'value2' }),
308+ ('aggregate' , 'ag1' ),
309+ ]
310+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
311+ result = self .cmd .take_action (parsed_args )
312+
313+ self .aggregate_mock .get .assert_called_once_with (parsed_args .aggregate )
314+ self .assertNotCalled (self .aggregate_mock .update )
315+ self .aggregate_mock .set_metadata .assert_called_once_with (
316+ self .fake_ag , parsed_args .property )
317+ self .assertIsNone (result )
318+
319+
320+ class TestAggregateShow (TestAggregate ):
321+
322+ columns = (
323+ 'availability_zone' ,
324+ 'hosts' ,
325+ 'id' ,
326+ 'name' ,
327+ 'properties' ,
328+ )
329+
330+ data = (
331+ TestAggregate .fake_ag .availability_zone ,
332+ TestAggregate .fake_ag .hosts ,
333+ TestAggregate .fake_ag .id ,
334+ TestAggregate .fake_ag .name ,
335+ '' ,
336+ )
337+
338+ def setUp (self ):
339+ super (TestAggregateShow , self ).setUp ()
340+
341+ self .aggregate_mock .get .return_value = self .fake_ag
342+ self .cmd = aggregate .ShowAggregate (self .app , None )
343+
344+ def test_aggregate_show (self ):
345+ arglist = [
346+ 'ag1' ,
347+ ]
348+ verifylist = [
349+ ('aggregate' , 'ag1' ),
350+ ]
351+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
352+ columns , data = self .cmd .take_action (parsed_args )
353+ self .aggregate_mock .get .assert_called_once_with (parsed_args .aggregate )
354+
355+ self .assertEqual (self .columns , columns )
356+ self .assertEqual (self .data , data )
357+
358+
359+ class TestAggregateUnset (TestAggregate ):
34360
35361 def setUp (self ):
36362 super (TestAggregateUnset , self ).setUp ()
@@ -41,11 +367,11 @@ def setUp(self):
41367 def test_aggregate_unset (self ):
42368 arglist = [
43369 '--property' , 'unset_key' ,
44- 'ag1'
370+ 'ag1' ,
45371 ]
46372 verifylist = [
47373 ('property' , ['unset_key' ]),
48- ('aggregate' , 'ag1' )
374+ ('aggregate' , 'ag1' ),
49375 ]
50376
51377 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
@@ -56,7 +382,7 @@ def test_aggregate_unset(self):
56382
57383 def test_aggregate_unset_no_property (self ):
58384 arglist = [
59- 'ag1'
385+ 'ag1' ,
60386 ]
61387 verifylist = None
62388 self .assertRaises (tests_utils .ParserException ,
0 commit comments