1212#
1313
1414import copy
15+ import mock
1516
1617from openstackclient .common import extension
1718from openstackclient .tests import fakes
1819from openstackclient .tests import utils
1920
21+ from openstackclient .tests .compute .v2 import fakes as compute_fakes
2022from openstackclient .tests .identity .v2_0 import fakes as identity_fakes
2123from openstackclient .tests .network .v2 import fakes as network_fakes
24+ from openstackclient .tests .volume .v2 import fakes as volume_fakes
2225
2326
2427class TestExtension (utils .TestCommand ):
@@ -34,6 +37,16 @@ def setUp(self):
3437 self .app .client_manager .identity .extensions )
3538 self .identity_extensions_mock .reset_mock ()
3639
40+ self .app .client_manager .compute = compute_fakes .FakeComputev2Client (
41+ endpoint = fakes .AUTH_URL ,
42+ token = fakes .AUTH_TOKEN ,
43+ )
44+
45+ self .app .client_manager .volume = volume_fakes .FakeVolumeClient (
46+ endpoint = fakes .AUTH_URL ,
47+ token = fakes .AUTH_TOKEN ,
48+ )
49+
3750 network_client = network_fakes .FakeNetworkV2Client ()
3851 self .app .client_manager .network = network_client
3952 self .network_extensions_mock = network_client .extensions
@@ -43,6 +56,8 @@ def setUp(self):
4356class TestExtensionList (TestExtension ):
4457
4558 columns = ('Name' , 'Alias' , 'Description' )
59+ long_columns = ('Name' , 'Namespace' , 'Description' , 'Alias' , 'Updated' ,
60+ 'Links' )
4661
4762 def setUp (self ):
4863 super (TestExtensionList , self ).setUp ()
@@ -55,36 +70,76 @@ def setUp(self):
5570 ),
5671 ]
5772
73+ self .app .client_manager .compute .list_extensions = mock .Mock ()
74+ self .compute_extensions_mock = (
75+ self .app .client_manager .compute .list_extensions )
76+ self .compute_extensions_mock .show_all .return_value = [
77+ fakes .FakeResource (
78+ None ,
79+ copy .deepcopy (compute_fakes .EXTENSION ),
80+ loaded = True ,
81+ ),
82+ ]
83+
84+ self .app .client_manager .volume .list_extensions = mock .Mock ()
85+ self .volume_extensions_mock = (
86+ self .app .client_manager .volume .list_extensions )
87+ self .volume_extensions_mock .show_all .return_value = [
88+ fakes .FakeResource (
89+ None ,
90+ copy .deepcopy (volume_fakes .EXTENSION ),
91+ loaded = True ,
92+ ),
93+ ]
94+
5895 # Get the command object to test
5996 self .cmd = extension .ListExtension (self .app , None )
6097
61- def test_extension_list_no_options (self ):
62- arglist = []
63- verifylist = []
98+ def _test_extension_list_helper (self , arglist , verifylist ,
99+ expected_data , long = False ):
64100 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
65101
66102 # In base command class Lister in cliff, abstract method take_action()
67103 # returns a tuple containing the column names and an iterable
68104 # containing the data to be listed.
69105 columns , data = self .cmd .take_action (parsed_args )
70106
71- # no args should output from all services
72- self .identity_extensions_mock .list .assert_called_with ()
107+ if long :
108+ self .assertEqual (self .long_columns , columns )
109+ else :
110+ self .assertEqual (self .columns , columns )
111+ self .assertEqual (expected_data , tuple (data ))
73112
74- self .assertEqual (self .columns , columns )
113+ def test_extension_list_no_options (self ):
114+ arglist = []
115+ verifylist = []
75116 datalist = (
76117 (
77118 identity_fakes .extension_name ,
78119 identity_fakes .extension_alias ,
79120 identity_fakes .extension_description ,
80121 ),
122+ (
123+ compute_fakes .extension_name ,
124+ compute_fakes .extension_alias ,
125+ compute_fakes .extension_description ,
126+ ),
127+ (
128+ volume_fakes .extension_name ,
129+ volume_fakes .extension_alias ,
130+ volume_fakes .extension_description ,
131+ ),
81132 (
82133 network_fakes .extension_name ,
83134 network_fakes .extension_alias ,
84135 network_fakes .extension_description ,
85136 ),
86137 )
87- self .assertEqual (datalist , tuple (data ))
138+ self ._test_extension_list_helper (arglist , verifylist , datalist )
139+ self .identity_extensions_mock .list .assert_called_with ()
140+ self .compute_extensions_mock .show_all .assert_called_with ()
141+ self .volume_extensions_mock .show_all .assert_called_with ()
142+ self .network_extensions_mock .assert_called_with ()
88143
89144 def test_extension_list_long (self ):
90145 arglist = [
@@ -93,19 +148,6 @@ def test_extension_list_long(self):
93148 verifylist = [
94149 ('long' , True ),
95150 ]
96- parsed_args = self .check_parser (self .cmd , arglist , verifylist )
97-
98- # In base command class Lister in cliff, abstract method take_action()
99- # returns a tuple containing the column names and an iterable
100- # containing the data to be listed.
101- columns , data = self .cmd .take_action (parsed_args )
102-
103- # no args should output from all services
104- self .identity_extensions_mock .list .assert_called_with ()
105-
106- collist = ('Name' , 'Namespace' , 'Description' , 'Alias' , 'Updated' ,
107- 'Links' )
108- self .assertEqual (collist , columns )
109151 datalist = (
110152 (
111153 identity_fakes .extension_name ,
@@ -115,6 +157,22 @@ def test_extension_list_long(self):
115157 identity_fakes .extension_updated ,
116158 identity_fakes .extension_links ,
117159 ),
160+ (
161+ compute_fakes .extension_name ,
162+ compute_fakes .extension_namespace ,
163+ compute_fakes .extension_description ,
164+ compute_fakes .extension_alias ,
165+ compute_fakes .extension_updated ,
166+ compute_fakes .extension_links ,
167+ ),
168+ (
169+ volume_fakes .extension_name ,
170+ volume_fakes .extension_namespace ,
171+ volume_fakes .extension_description ,
172+ volume_fakes .extension_alias ,
173+ volume_fakes .extension_updated ,
174+ volume_fakes .extension_links ,
175+ ),
118176 (
119177 network_fakes .extension_name ,
120178 network_fakes .extension_namespace ,
@@ -124,7 +182,11 @@ def test_extension_list_long(self):
124182 network_fakes .extension_links ,
125183 ),
126184 )
127- self .assertEqual (datalist , tuple (data ))
185+ self ._test_extension_list_helper (arglist , verifylist , datalist , True )
186+ self .identity_extensions_mock .list .assert_called_with ()
187+ self .compute_extensions_mock .show_all .assert_called_with ()
188+ self .volume_extensions_mock .show_all .assert_called_with ()
189+ self .network_extensions_mock .assert_called_with ()
128190
129191 def test_extension_list_identity (self ):
130192 arglist = [
@@ -133,22 +195,13 @@ def test_extension_list_identity(self):
133195 verifylist = [
134196 ('identity' , True ),
135197 ]
136- parsed_args = self .check_parser (self .cmd , arglist , verifylist )
137-
138- # In base command class Lister in cliff, abstract method take_action()
139- # returns a tuple containing the column names and an iterable
140- # containing the data to be listed.
141- columns , data = self .cmd .take_action (parsed_args )
142-
143- self .identity_extensions_mock .list .assert_called_with ()
144-
145- self .assertEqual (self .columns , columns )
146198 datalist = ((
147199 identity_fakes .extension_name ,
148200 identity_fakes .extension_alias ,
149201 identity_fakes .extension_description ,
150202 ), )
151- self .assertEqual (datalist , tuple (data ))
203+ self ._test_extension_list_helper (arglist , verifylist , datalist )
204+ self .identity_extensions_mock .list .assert_called_with ()
152205
153206 def test_extension_list_network (self ):
154207 arglist = [
@@ -157,18 +210,42 @@ def test_extension_list_network(self):
157210 verifylist = [
158211 ('network' , True ),
159212 ]
160- parsed_args = self .check_parser (self .cmd , arglist , verifylist )
161-
162- columns , data = self .cmd .take_action (parsed_args )
163-
164- self .network_extensions_mock .assert_called_with ()
165-
166- self .assertEqual (self .columns , columns )
167213 datalist = (
168214 (
169215 network_fakes .extension_name ,
170216 network_fakes .extension_alias ,
171217 network_fakes .extension_description ,
172218 ),
173219 )
174- self .assertEqual (datalist , tuple (data ))
220+ self ._test_extension_list_helper (arglist , verifylist , datalist )
221+ self .network_extensions_mock .assert_called_with ()
222+
223+ def test_extension_list_compute (self ):
224+ arglist = [
225+ '--compute' ,
226+ ]
227+ verifylist = [
228+ ('compute' , True ),
229+ ]
230+ datalist = ((
231+ compute_fakes .extension_name ,
232+ compute_fakes .extension_alias ,
233+ compute_fakes .extension_description ,
234+ ), )
235+ self ._test_extension_list_helper (arglist , verifylist , datalist )
236+ self .compute_extensions_mock .show_all .assert_called_with ()
237+
238+ def test_extension_list_volume (self ):
239+ arglist = [
240+ '--volume' ,
241+ ]
242+ verifylist = [
243+ ('volume' , True ),
244+ ]
245+ datalist = ((
246+ volume_fakes .extension_name ,
247+ volume_fakes .extension_alias ,
248+ volume_fakes .extension_description ,
249+ ), )
250+ self ._test_extension_list_helper (arglist , verifylist , datalist )
251+ self .volume_extensions_mock .show_all .assert_called_with ()
0 commit comments