@@ -235,6 +235,55 @@ def resp_get_all(url, request):
235235 self .assertEqual (data [0 ].id , 1 )
236236 self .assertEqual (data [1 ].id , 2 )
237237
238+ def test_user_manager_search (self ):
239+ mgr = UserManager (self .gitlab )
240+
241+ @urlmatch (scheme = "http" , netloc = "localhost" , path = "/api/v3/users" ,
242+ query = "search=foo" , method = "get" )
243+ def resp_get_search (url , request ):
244+ headers = {'content-type' : 'application/json' }
245+ content = ('[{"name": "foo1", "id": 1}, '
246+ '{"name": "foo2", "id": 2}]' )
247+ content = content .encode ("utf-8" )
248+ return response (200 , content , headers , None , 5 , request )
249+
250+ with HTTMock (resp_get_search ):
251+ data = mgr .search ('foo' )
252+ self .assertEqual (type (data ), list )
253+ self .assertEqual (2 , len (data ))
254+ self .assertEqual (type (data [0 ]), User )
255+ self .assertEqual (type (data [1 ]), User )
256+ self .assertEqual (data [0 ].name , "foo1" )
257+ self .assertEqual (data [1 ].name , "foo2" )
258+ self .assertEqual (data [0 ].id , 1 )
259+ self .assertEqual (data [1 ].id , 2 )
260+
261+ def test_user_manager_get_by_username (self ):
262+ mgr = UserManager (self .gitlab )
263+
264+ @urlmatch (scheme = "http" , netloc = "localhost" , path = "/api/v3/users" ,
265+ query = "username=foo" , method = "get" )
266+ def resp_get_username (url , request ):
267+ headers = {'content-type' : 'application/json' }
268+ content = '[{"name": "foo", "id": 1}]' .encode ("utf-8" )
269+ return response (200 , content , headers , None , 5 , request )
270+
271+ with HTTMock (resp_get_username ):
272+ data = mgr .get_by_username ('foo' )
273+ self .assertEqual (type (data ), User )
274+ self .assertEqual (data .name , "foo" )
275+ self .assertEqual (data .id , 1 )
276+
277+ @urlmatch (scheme = "http" , netloc = "localhost" , path = "/api/v3/users" ,
278+ query = "username=foo" , method = "get" )
279+ def resp_get_username_nomatch (url , request ):
280+ headers = {'content-type' : 'application/json' }
281+ content = '[]' .encode ("utf-8" )
282+ return response (200 , content , headers , None , 5 , request )
283+
284+ with HTTMock (resp_get_username_nomatch ):
285+ self .assertRaises (GitlabGetError , mgr .get_by_username , 'foo' )
286+
238287 def test_group_manager_search (self ):
239288 mgr = GroupManager (self .gitlab )
240289
0 commit comments