@@ -40,7 +40,7 @@ def test_get_objects_dict_params(self):
4040 hit .return_value = hit_return = 9
4141 hs .get_objects (endpoint , params = params )
4242 HelpScoutObject .cls .assert_called_with (endpoint , endpoint )
43- hit .assert_called_with (endpoint + '?id=10&name=Mike' , 'get' , None )
43+ hit .assert_called_with (endpoint , 'get' , None , params = params )
4444 cls .from_results .assert_called_with (hit_return )
4545
4646 def test_get_objects_str_params (self ):
@@ -52,7 +52,7 @@ def test_get_objects_str_params(self):
5252 hit .return_value = hit_return = 9
5353 hs .get_objects (endpoint , params = params )
5454 HelpScoutObject .cls .assert_called_with (endpoint , endpoint )
55- hit .assert_called_with (endpoint + '?id=10&name=Mike' , 'get' , None )
55+ hit .assert_called_with (endpoint , 'get' , None , params = params )
5656 cls .from_results .assert_called_with (hit_return )
5757
5858 def test_get_objects_no_params (self ):
@@ -64,9 +64,24 @@ def test_get_objects_no_params(self):
6464 hit .return_value = hit_return = 9
6565 hs .get_objects (endpoint , params )
6666 HelpScoutObject .cls .assert_called_with (endpoint , endpoint )
67- hit .assert_called_with (endpoint , 'get' , None )
67+ hit .assert_called_with (endpoint , 'get' , None , params = params )
6868 cls .from_results .assert_called_with (hit_return )
6969
70+ def test_get_objects_resource_id (self ):
71+ user = {'id' : '10' , 'name' : 'Mike' }
72+ endpoint , resource_id = 'users' , 10
73+ hs = self ._get_client ()
74+ with patch ('helpscout.client.HelpScoutObject' ) as HelpScoutObject , \
75+ patch ('helpscout.client.HelpScout.hit' ) as hit :
76+ HelpScoutObject .cls .return_value = cls = MagicMock ()
77+ cls .from_results .return_value = [user ]
78+ hit .return_value = hit_return = user
79+ data = hs .get_objects (endpoint , resource_id = resource_id )
80+ HelpScoutObject .cls .assert_called_with (endpoint , endpoint )
81+ hit .assert_called_with (endpoint , 'get' , 10 , params = None )
82+ cls .from_results .assert_called_with (hit_return )
83+ self .assertEqual (data , user )
84+
7085 def test_hit_no_access_token_ok (self ):
7186 endpoint , method = 'users' , 'get'
7287 full_url = self .url + endpoint
@@ -142,6 +157,85 @@ def test_hit_resource_id_ok(self):
142157 response .json .assert_called_once ()
143158 pages .assert_called_once_with (json_response , method )
144159
160+ def test_hit_params_dict_ok (self ):
161+ params , params_str = {'embed' : 'threads' }, '?embed=threads'
162+ endpoint , method = 'users' , 'get'
163+ full_url = self .url + endpoint + params_str
164+ hs_path = 'helpscout.client.HelpScout.'
165+ hs = self ._get_client (token = 'abc' )
166+ with patch ('helpscout.client.requests' ) as requests , \
167+ patch ('helpscout.client.logger' ) as logger , \
168+ patch (hs_path + '_authenticate' ) as auth , \
169+ patch (hs_path + '_authentication_headers' ) as auth_headers , \
170+ patch (hs_path + '_results_with_pagination' ) as pages :
171+ # Setup
172+ auth_headers .return_value = headers = {'token' : 'abc' }
173+ response = requests .get .return_value = MagicMock ()
174+ response .ok = True
175+ response .json .return_value = json_response = {'a' : 'b' }
176+ list (hs .hit (endpoint , method , None , params = params ))
177+ # Asserts
178+ auth .assert_not_called ()
179+ auth_headers .assert_called_once ()
180+ logger .debug .assert_called_once_with (method + ' ' + full_url )
181+ requests .get .assert_called_once_with (
182+ full_url , headers = headers , data = None )
183+ response .json .assert_called_once ()
184+ pages .assert_called_once_with (json_response , method )
185+
186+ def test_hit_resource_id_with_params_dict_ok (self ):
187+ params , params_str = {'embed' : 'threads' }, '?embed=threads'
188+ endpoint , method , resource_id = 'users' , 'get' , 4
189+ full_url = self .url + endpoint + '/' + str (resource_id ) + params_str
190+ hs_path = 'helpscout.client.HelpScout.'
191+ hs = self ._get_client (token = 'abc' )
192+ with patch ('helpscout.client.requests' ) as requests , \
193+ patch ('helpscout.client.logger' ) as logger , \
194+ patch (hs_path + '_authenticate' ) as auth , \
195+ patch (hs_path + '_authentication_headers' ) as auth_headers , \
196+ patch (hs_path + '_results_with_pagination' ) as pages :
197+ # Setup
198+ auth_headers .return_value = headers = {'token' : 'abc' }
199+ response = requests .get .return_value = MagicMock ()
200+ response .ok = True
201+ response .json .return_value = json_response = {'a' : 'b' }
202+ list (hs .hit (endpoint , method , resource_id , params = params ))
203+ # Asserts
204+ auth .assert_not_called ()
205+ auth_headers .assert_called_once ()
206+ logger .debug .assert_called_once_with (method + ' ' + full_url )
207+ requests .get .assert_called_once_with (
208+ full_url , headers = headers , data = None )
209+ response .json .assert_called_once ()
210+ pages .assert_called_once_with (json_response , method )
211+
212+ def test_hit_resource_id_with_params_str_ok (self ):
213+ params_str = 'embed=threads'
214+ endpoint , method , resource_id = 'users' , 'get' , 4
215+ full_url = (self .url + endpoint + '/' + str (resource_id ) + '?' +
216+ params_str )
217+ hs_path = 'helpscout.client.HelpScout.'
218+ hs = self ._get_client (token = 'abc' )
219+ with patch ('helpscout.client.requests' ) as requests , \
220+ patch ('helpscout.client.logger' ) as logger , \
221+ patch (hs_path + '_authenticate' ) as auth , \
222+ patch (hs_path + '_authentication_headers' ) as auth_headers , \
223+ patch (hs_path + '_results_with_pagination' ) as pages :
224+ # Setup
225+ auth_headers .return_value = headers = {'token' : 'abc' }
226+ response = requests .get .return_value = MagicMock ()
227+ response .ok = True
228+ response .json .return_value = json_response = {'a' : 'b' }
229+ list (hs .hit (endpoint , method , resource_id , params = params_str ))
230+ # Asserts
231+ auth .assert_not_called ()
232+ auth_headers .assert_called_once ()
233+ logger .debug .assert_called_once_with (method + ' ' + full_url )
234+ requests .get .assert_called_once_with (
235+ full_url , headers = headers , data = None )
236+ response .json .assert_called_once ()
237+ pages .assert_called_once_with (json_response , method )
238+
145239 def test_hit_post_ok (self ):
146240 endpoint , method = 'users' , 'post'
147241 full_url = self .url + endpoint
@@ -660,7 +754,7 @@ def test_getattr_requester_get(self):
660754 hit .return_value = hit_return = 9
661755 getattr (hs , endpoint ).get (params = params )
662756 HelpScoutObject .cls .assert_called_with (endpoint , endpoint )
663- hit .assert_called_with (endpoint + '?id=10&name=Mike' , 'get' , None )
757+ hit .assert_called_with (endpoint , 'get' , None , params = params )
664758 cls .from_results .assert_called_with (hit_return )
665759
666760 def test_getattr_requester_delete_resource_id (self ):
0 commit comments