1313# under the License.
1414#
1515
16- import copy
16+ from unittest . mock import call
1717
18- from keystoneclient import exceptions as identity_exc
18+ from openstack import exceptions as sdk_exceptions
19+ from openstack .identity .v3 import access_rule as _access_rule
20+ from openstack .test import fakes as sdk_fakes
1921from osc_lib import exceptions
2022
2123from openstackclient .identity .v3 import access_rule
22- from openstackclient .tests .unit import fakes
2324from openstackclient .tests .unit .identity .v3 import fakes as identity_fakes
2425
2526
26- class TestAccessRule (identity_fakes .TestIdentityv3 ):
27- def setUp (self ):
28- super ().setUp ()
29-
30- identity_manager = self .identity_client
31- self .access_rules_mock = identity_manager .access_rules
32- self .access_rules_mock .reset_mock ()
33- self .roles_mock = identity_manager .roles
34- self .roles_mock .reset_mock ()
27+ class TestAccessRuleDelete (identity_fakes .TestIdentityv3 ):
28+ access_rule = sdk_fakes .generate_fake_resource (_access_rule .AccessRule )
3529
36-
37- class TestAccessRuleDelete (TestAccessRule ):
3830 def setUp (self ):
3931 super ().setUp ()
4032
41- # This is the return value for utils.find_resource()
42- self .access_rules_mock .get .return_value = fakes .FakeResource (
43- None ,
44- copy .deepcopy (identity_fakes .ACCESS_RULE ),
45- loaded = True ,
33+ self .identity_sdk_client .get_access_rule .return_value = (
34+ self .access_rule
4635 )
47- self .access_rules_mock . delete .return_value = None
36+ self .identity_sdk_client . delete_access_rule .return_value = None
4837
4938 # Get the command object to test
5039 self .cmd = access_rule .DeleteAccessRule (self .app , None )
5140
5241 def test_access_rule_delete (self ):
53- arglist = [
54- identity_fakes .access_rule_id ,
55- ]
56- verifylist = [('access_rule' , [identity_fakes .access_rule_id ])]
42+ arglist = [self .access_rule .id ]
43+ verifylist = [('access_rule' , [self .access_rule .id ])]
5744 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
5845
46+ conn = self .app .client_manager .sdk_connection
47+ user_id = conn .config .get_auth ().get_user_id (conn .identity )
48+
5949 result = self .cmd .take_action (parsed_args )
6050
61- self .access_rules_mock .delete .assert_called_with (
62- identity_fakes .access_rule_id ,
51+ self .identity_sdk_client .delete_access_rule .assert_called_with (
52+ user_id ,
53+ self .access_rule .id ,
6354 )
6455 self .assertIsNone (result )
6556
6657 def test_delete_multi_access_rules_with_exception (self ):
67- # mock returns for common.get_resource_by_id
68- mock_get = self .access_rules_mock .get
69- mock_get .side_effect = [
70- mock_get .return_value ,
71- identity_exc .NotFound ,
58+ self .identity_sdk_client .get_access_rule .side_effect = [
59+ self .access_rule ,
60+ sdk_exceptions .NotFoundException ,
7261 ]
62+
7363 arglist = [
74- identity_fakes . access_rule_id ,
64+ self . access_rule . id ,
7565 'nonexistent_access_rule' ,
7666 ]
7767 verifylist = [
7868 ('access_rule' , arglist ),
7969 ]
70+
8071 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
8172
73+ conn = self .app .client_manager .sdk_connection
74+ user_id = conn .config .get_auth ().get_user_id (conn .identity )
75+
8276 try :
8377 self .cmd .take_action (parsed_args )
8478 self .fail ('CommandError should be raised.' )
@@ -87,26 +81,27 @@ def test_delete_multi_access_rules_with_exception(self):
8781 '1 of 2 access rules failed to' ' delete.' , str (e )
8882 )
8983
90- mock_get .assert_any_call (identity_fakes .access_rule_id )
91- mock_get .assert_any_call ('nonexistent_access_rule' )
84+ calls = []
85+ for a in arglist :
86+ calls .append (call (user_id , a ))
87+
88+ self .identity_sdk_client .get_access_rule .assert_has_calls (calls )
9289
93- self .assertEqual (2 , mock_get .call_count )
94- self .access_rules_mock .delete .assert_called_once_with (
95- identity_fakes .access_rule_id
90+ self .assertEqual (
91+ 2 , self .identity_sdk_client .get_access_rule .call_count
92+ )
93+ self .identity_sdk_client .delete_access_rule .assert_called_once_with (
94+ user_id , self .access_rule .id
9695 )
9796
9897
99- class TestAccessRuleList (TestAccessRule ):
98+ class TestAccessRuleList (identity_fakes .TestIdentityv3 ):
99+ access_rule = sdk_fakes .generate_fake_resource (_access_rule .AccessRule )
100+
100101 def setUp (self ):
101102 super ().setUp ()
102103
103- self .access_rules_mock .list .return_value = [
104- fakes .FakeResource (
105- None ,
106- copy .deepcopy (identity_fakes .ACCESS_RULE ),
107- loaded = True ,
108- ),
109- ]
104+ self .identity_sdk_client .access_rules .return_value = [self .access_rule ]
110105
111106 # Get the command object to test
112107 self .cmd = access_rule .ListAccessRule (self .app , None )
@@ -116,57 +111,63 @@ def test_access_rule_list(self):
116111 verifylist = []
117112 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
118113
114+ conn = self .app .client_manager .sdk_connection
115+ user_id = conn .config .get_auth ().get_user_id (conn .identity )
116+
119117 columns , data = self .cmd .take_action (parsed_args )
120118
121- self .access_rules_mock . list .assert_called_with (user = None )
119+ self .identity_sdk_client . access_rules .assert_called_with (user = user_id )
122120
123121 collist = ('ID' , 'Service' , 'Method' , 'Path' )
124122 self .assertEqual (collist , columns )
125123 datalist = (
126124 (
127- identity_fakes . access_rule_id ,
128- identity_fakes . access_rule_service ,
129- identity_fakes . access_rule_method ,
130- identity_fakes . access_rule_path ,
125+ self . access_rule . id ,
126+ self . access_rule . service ,
127+ self . access_rule . method ,
128+ self . access_rule . path ,
131129 ),
132130 )
133131 self .assertEqual (datalist , tuple (data ))
134132
135133
136- class TestAccessRuleShow (TestAccessRule ):
134+ class TestAccessRuleShow (identity_fakes .TestIdentityv3 ):
135+ access_rule = sdk_fakes .generate_fake_resource (_access_rule .AccessRule )
136+
137137 def setUp (self ):
138138 super ().setUp ()
139139
140- self .access_rules_mock .get .return_value = fakes .FakeResource (
141- None ,
142- copy .deepcopy (identity_fakes .ACCESS_RULE ),
143- loaded = True ,
140+ self .identity_sdk_client .get_access_rule .return_value = (
141+ self .access_rule
144142 )
145143
146144 # Get the command object to test
147145 self .cmd = access_rule .ShowAccessRule (self .app , None )
148146
149147 def test_access_rule_show (self ):
150148 arglist = [
151- identity_fakes . access_rule_id ,
149+ self . access_rule . id ,
152150 ]
153151 verifylist = [
154- ('access_rule' , identity_fakes . access_rule_id ),
152+ ('access_rule' , self . access_rule . id ),
155153 ]
156154 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
157155
156+ conn = self .app .client_manager .sdk_connection
157+ user_id = conn .config .get_auth ().get_user_id (conn .identity )
158+
158159 columns , data = self .cmd .take_action (parsed_args )
159160
160- self .access_rules_mock . get .assert_called_with (
161- identity_fakes . access_rule_id
161+ self .identity_sdk_client . get_access_rule .assert_called_with (
162+ user_id , self . access_rule . id
162163 )
163164
164- collist = ('id ' , 'method ' , 'path ' , 'service ' )
165+ collist = ('ID ' , 'Method ' , 'Path ' , 'Service ' )
165166 self .assertEqual (collist , columns )
166167 datalist = (
167- identity_fakes . access_rule_id ,
168- identity_fakes . access_rule_method ,
169- identity_fakes . access_rule_path ,
170- identity_fakes . access_rule_service ,
168+ self . access_rule . id ,
169+ self . access_rule . method ,
170+ self . access_rule . path ,
171+ self . access_rule . service ,
171172 )
172173 self .assertEqual (datalist , data )
0 commit comments