2626
2727from httmock import HTTMock # noqa
2828from httmock import response # noqa
29- from httmock import remember_called , urlmatch # noqa
29+ from httmock import urlmatch # noqa
3030import requests
3131
3232import gitlab
@@ -57,7 +57,6 @@ def setUp(self):
5757 def test_build_list (self ):
5858 @urlmatch (scheme = 'http' , netloc = "localhost" , path = "/api/v4/tests" ,
5959 method = "get" )
60- @remember_called
6160 def resp_1 (url , request ):
6261 headers = {'content-type' : 'application/json' ,
6362 'X-Page' : 1 ,
@@ -73,7 +72,6 @@ def resp_1(url, request):
7372
7473 @urlmatch (scheme = 'http' , netloc = "localhost" , path = "/api/v4/tests" ,
7574 method = 'get' , query = r'.*page=2' )
76- @remember_called
7775 def resp_2 (url , request ):
7876 headers = {'content-type' : 'application/json' ,
7977 'X-Page' : 2 ,
@@ -84,7 +82,7 @@ def resp_2(url, request):
8482 content = '[{"c": "d"}]'
8583 return response (200 , content , headers , None , 5 , request )
8684
87- with HTTMock (resp_2 , resp_1 ):
85+ with HTTMock (resp_1 ):
8886 obj = self .gl .http_list ('/tests' , as_list = False )
8987 self .assertEqual (len (obj ), 2 )
9088 self .assertEqual (obj ._next_url ,
@@ -96,62 +94,11 @@ def resp_2(url, request):
9694 self .assertEqual (obj .total_pages , 2 )
9795 self .assertEqual (obj .total , 2 )
9896
99- l = list (obj )
100- self .assertListEqual (l , [{"a" : "b" }])
101- self .assertEqual (resp_1 .call ['count' ], 1 )
102- self .assertFalse (resp_2 .call ['called' ])
103-
104- def test_build_list_all (self ):
105- @urlmatch (scheme = 'http' , netloc = "localhost" , path = "/api/v4/tests" ,
106- method = "get" )
107- @remember_called
108- def resp_1 (url , request ):
109- headers = {'content-type' : 'application/json' ,
110- 'X-Page' : 1 ,
111- 'X-Next-Page' : 2 ,
112- 'X-Per-Page' : 1 ,
113- 'X-Total-Pages' : 2 ,
114- 'X-Total' : 2 ,
115- 'Link' : (
116- '<http://localhost/api/v4/tests?per_page=1&page=2>;'
117- ' rel="next"' )}
118- content = '[{"a": "b"}]'
119- return response (200 , content , headers , None , 5 , request )
120-
121- @urlmatch (scheme = 'http' , netloc = "localhost" , path = "/api/v4/tests" ,
122- method = 'get' , query = r'.*page=2' )
123- @remember_called
124- def resp_2 (url , request ):
125- headers = {'content-type' : 'application/json' ,
126- 'X-Page' : 2 ,
127- 'X-Next-Page' : 2 ,
128- 'X-Per-Page' : 1 ,
129- 'X-Total-Pages' : 2 ,
130- 'X-Total' : 2 }
131- content = '[{"c": "d"}]'
132- return response (200 , content , headers , None , 5 , request )
133-
134- with HTTMock (resp_2 , resp_1 ):
135- obj = self .gl .http_list ('/tests' , as_list = False , all = True )
136- self .assertEqual (len (obj ), 2 )
137- self .assertEqual (obj ._next_url ,
138- 'http://localhost/api/v4/tests?per_page=1&page=2' )
139- self .assertEqual (obj .current_page , 1 )
140- self .assertEqual (obj .prev_page , None )
141- self .assertEqual (obj .next_page , 2 )
142- self .assertEqual (obj .per_page , 1 )
143- self .assertEqual (obj .total_pages , 2 )
144- self .assertEqual (obj .total , 2 )
145- self .assertEqual (resp_1 .call ['count' ], 1 )
146- self .assertFalse (resp_2 .call ['called' ])
147- self .assertDictEqual (next (obj ), {"a" : "b" })
148- self .assertEqual (resp_1 .call ['count' ], 1 )
149- self .assertFalse (resp_2 .call ['called' ])
150- self .assertDictEqual (next (obj ), {"c" : "d" })
151- self .assertEqual (resp_1 .call ['count' ], 1 )
152- self .assertEqual (resp_2 .call ['count' ], 1 )
153- with self .assertRaises (StopIteration ):
154- next (obj )
97+ with HTTMock (resp_2 ):
98+ l = list (obj )
99+ self .assertEqual (len (l ), 2 )
100+ self .assertEqual (l [0 ]['a' ], 'b' )
101+ self .assertEqual (l [1 ]['c' ], 'd' )
155102
156103
157104class TestGitlabHttpMethods (unittest .TestCase ):
0 commit comments