@@ -30,6 +30,166 @@ def setUp(self):
3030 self .flavors_mock .reset_mock ()
3131
3232
33+ class TestFlavorCreate (TestFlavor ):
34+
35+ flavor = compute_fakes .FakeFlavor .create_one_flavor (
36+ attrs = {'links' : 'flavor-links' })
37+
38+ columns = (
39+ 'OS-FLV-DISABLED:disabled' ,
40+ 'OS-FLV-EXT-DATA:ephemeral' ,
41+ 'disk' ,
42+ 'id' ,
43+ 'name' ,
44+ 'os-flavor-access:is_public' ,
45+ 'ram' ,
46+ 'rxtx_factor' ,
47+ 'swap' ,
48+ 'vcpus' ,
49+ )
50+ data = (
51+ flavor .disabled ,
52+ flavor .ephemeral ,
53+ flavor .disk ,
54+ flavor .id ,
55+ flavor .name ,
56+ flavor .is_public ,
57+ flavor .ram ,
58+ flavor .rxtx_factor ,
59+ flavor .swap ,
60+ flavor .vcpus ,
61+ )
62+
63+ def setUp (self ):
64+ super (TestFlavorCreate , self ).setUp ()
65+
66+ self .flavors_mock .create .return_value = self .flavor
67+ self .cmd = flavor .CreateFlavor (self .app , None )
68+
69+ def test_flavor_create_default_options (self ):
70+
71+ arglist = [
72+ self .flavor .name
73+ ]
74+ verifylist = [
75+ ('name' , self .flavor .name ),
76+ ]
77+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
78+
79+ default_args = (
80+ self .flavor .name ,
81+ 256 ,
82+ 1 ,
83+ 0 ,
84+ 'auto' ,
85+ 0 ,
86+ 0 ,
87+ 1.0 ,
88+ True
89+ )
90+ columns , data = self .cmd .take_action (parsed_args )
91+ self .flavors_mock .create .assert_called_once_with (* default_args )
92+
93+ self .assertEqual (self .columns , columns )
94+ self .assertEqual (self .data , data )
95+
96+ def test_flavor_create_all_options (self ):
97+
98+ arglist = [
99+ self .flavor .name ,
100+ '--id' , self .flavor .id ,
101+ '--ram' , str (self .flavor .ram ),
102+ '--disk' , str (self .flavor .disk ),
103+ '--ephemeral' , str (self .flavor .ephemeral ),
104+ '--swap' , str (self .flavor .swap ),
105+ '--vcpus' , str (self .flavor .vcpus ),
106+ '--rxtx-factor' , str (self .flavor .rxtx_factor ),
107+ '--public' ,
108+ ]
109+ verifylist = [
110+ ('name' , self .flavor .name ),
111+ ('id' , self .flavor .id ),
112+ ('ram' , self .flavor .ram ),
113+ ('disk' , self .flavor .disk ),
114+ ('ephemeral' , self .flavor .ephemeral ),
115+ ('swap' , self .flavor .swap ),
116+ ('vcpus' , self .flavor .vcpus ),
117+ ('rxtx_factor' , self .flavor .rxtx_factor ),
118+ ('public' , True ),
119+ ]
120+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
121+
122+ args = (
123+ self .flavor .name ,
124+ self .flavor .ram ,
125+ self .flavor .vcpus ,
126+ self .flavor .disk ,
127+ self .flavor .id ,
128+ self .flavor .ephemeral ,
129+ self .flavor .swap ,
130+ self .flavor .rxtx_factor ,
131+ self .flavor .is_public ,
132+ )
133+ columns , data = self .cmd .take_action (parsed_args )
134+ self .flavors_mock .create .assert_called_once_with (* args )
135+
136+ self .assertEqual (self .columns , columns )
137+ self .assertEqual (self .data , data )
138+
139+ def test_flavor_create_other_options (self ):
140+
141+ self .flavor .is_public = False
142+ arglist = [
143+ self .flavor .name ,
144+ '--id' , self .flavor .id ,
145+ '--ram' , str (self .flavor .ram ),
146+ '--disk' , str (self .flavor .disk ),
147+ '--ephemeral' , str (self .flavor .ephemeral ),
148+ '--swap' , str (self .flavor .swap ),
149+ '--vcpus' , str (self .flavor .vcpus ),
150+ '--rxtx-factor' , str (self .flavor .rxtx_factor ),
151+ '--private' ,
152+ ]
153+ verifylist = [
154+ ('name' , self .flavor .name ),
155+ ('id' , self .flavor .id ),
156+ ('ram' , self .flavor .ram ),
157+ ('disk' , self .flavor .disk ),
158+ ('ephemeral' , self .flavor .ephemeral ),
159+ ('swap' , self .flavor .swap ),
160+ ('vcpus' , self .flavor .vcpus ),
161+ ('rxtx_factor' , self .flavor .rxtx_factor ),
162+ ('public' , False ),
163+ ]
164+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
165+
166+ args = (
167+ self .flavor .name ,
168+ self .flavor .ram ,
169+ self .flavor .vcpus ,
170+ self .flavor .disk ,
171+ self .flavor .id ,
172+ self .flavor .ephemeral ,
173+ self .flavor .swap ,
174+ self .flavor .rxtx_factor ,
175+ self .flavor .is_public ,
176+ )
177+ columns , data = self .cmd .take_action (parsed_args )
178+ self .flavors_mock .create .assert_called_once_with (* args )
179+
180+ self .assertEqual (self .columns , columns )
181+ self .assertEqual (self .data , data )
182+
183+ def test_flavor_create_no_options (self ):
184+ arglist = []
185+ verifylist = None
186+ self .assertRaises (tests_utils .ParserException ,
187+ self .check_parser ,
188+ self .cmd ,
189+ arglist ,
190+ verifylist )
191+
192+
33193class TestFlavorDelete (TestFlavor ):
34194
35195 flavor = compute_fakes .FakeFlavor .create_one_flavor ()
0 commit comments