Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit67ba416

Browse files
committed
test: retry on transient failure
Add tests that were missing on the base functionality and extend it toverify the override functionality on `retry_transient_errors`
1 parent7eab477 commit67ba416

File tree

1 file changed

+72
-5
lines changed

1 file changed

+72
-5
lines changed

‎tests/unit/test_gitlab_http_methods.py‎

Lines changed: 72 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,81 @@ def resp_cont(url, request):
3030
deftest_http_request_404(gl):
3131
@urlmatch(scheme="http",netloc="localhost",path="/api/v4/not_there",method="get")
3232
defresp_cont(url,request):
33-
content= {"Here iswh it failed"}
33+
content= {"Here iswhy it failed"}
3434
returnresponse(404,content, {},None,5,request)
3535

3636
withHTTMock(resp_cont):
3737
withpytest.raises(GitlabHttpError):
3838
gl.http_request("get","/not_there")
3939

4040

41+
@pytest.mark.parametrize('status_code', [500,502,503,504])
42+
deftest_http_request_with_only_failures(gl,status_code):
43+
call_count=0
44+
@urlmatch(scheme="http",netloc="localhost",path="/api/v4/projects",method="get")
45+
defresp_cont(url,request):
46+
nonlocalcall_count
47+
call_count+=1
48+
returnresponse(status_code, {"Here is why it failed"}, {},None,5,request)
49+
50+
withHTTMock(resp_cont):
51+
withpytest.raises(GitlabHttpError):
52+
gl.http_request("get","/projects")
53+
54+
assertcall_count==1
55+
56+
57+
deftest_http_request_with_retry_on_method_for_transient_failures(gl):
58+
call_count=0
59+
calls_before_success=3
60+
@urlmatch(scheme="http",netloc="localhost",path="/api/v4/projects",method="get")
61+
defresp_cont(url,request):
62+
nonlocalcall_count
63+
call_count+=1
64+
status_code=200ifcall_count==calls_before_successelse500
65+
returnresponse(status_code, {"Failure is the stepping stone to success"}, {},None,5,request)
66+
67+
withHTTMock(resp_cont):
68+
http_r=gl.http_request("get","/projects",retry_transient_errors=True)
69+
70+
asserthttp_r.status_code==200
71+
assertcall_count==calls_before_success
72+
73+
74+
deftest_http_request_with_retry_on_class_for_transient_failures(gl_retry):
75+
call_count=0
76+
calls_before_success=3
77+
@urlmatch(scheme="http",netloc="localhost",path="/api/v4/projects",method="get")
78+
defresp_cont(url,request):
79+
nonlocalcall_count
80+
call_count+=1
81+
status_code=200ifcall_count==calls_before_successelse500
82+
returnresponse(status_code, {"Failure is the stepping stone to success"}, {},None,5,request)
83+
84+
withHTTMock(resp_cont):
85+
http_r=gl_retry.http_request("get","/projects")
86+
87+
asserthttp_r.status_code==200
88+
assertcall_count==calls_before_success
89+
90+
91+
deftest_http_request_with_retry_on_class_and_method_for_transient_failures(gl_retry):
92+
call_count=0
93+
calls_before_success=3
94+
@urlmatch(scheme="http",netloc="localhost",path="/api/v4/projects",method="get")
95+
defresp_cont(url,request):
96+
nonlocalcall_count
97+
call_count+=1
98+
status_code=200ifcall_count==calls_before_successelse500
99+
returnresponse(status_code, {"Here is why it failed"}, {},None,5,request)
100+
101+
withHTTMock(resp_cont):
102+
withpytest.raises(GitlabHttpError):
103+
gl_retry.http_request("get","/projects",retry_transient_errors=False)
104+
105+
assertcall_count==1
106+
107+
41108
deftest_get_request(gl):
42109
@urlmatch(scheme="http",netloc="localhost",path="/api/v4/projects",method="get")
43110
defresp_cont(url,request):
@@ -66,7 +133,7 @@ def resp_cont(url, request):
66133
deftest_get_request_404(gl):
67134
@urlmatch(scheme="http",netloc="localhost",path="/api/v4/not_there",method="get")
68135
defresp_cont(url,request):
69-
content= {"Here iswh it failed"}
136+
content= {"Here iswhy it failed"}
70137
returnresponse(404,content, {},None,5,request)
71138

72139
withHTTMock(resp_cont):
@@ -150,7 +217,7 @@ def test_post_request_404(gl):
150217
scheme="http",netloc="localhost",path="/api/v4/not_there",method="post"
151218
)
152219
defresp_cont(url,request):
153-
content= {"Here iswh it failed"}
220+
content= {"Here iswhy it failed"}
154221
returnresponse(404,content, {},None,5,request)
155222

156223
withHTTMock(resp_cont):
@@ -186,7 +253,7 @@ def resp_cont(url, request):
186253
deftest_put_request_404(gl):
187254
@urlmatch(scheme="http",netloc="localhost",path="/api/v4/not_there",method="put")
188255
defresp_cont(url,request):
189-
content= {"Here iswh it failed"}
256+
content= {"Here iswhy it failed"}
190257
returnresponse(404,content, {},None,5,request)
191258

192259
withHTTMock(resp_cont):
@@ -226,7 +293,7 @@ def test_delete_request_404(gl):
226293
scheme="http",netloc="localhost",path="/api/v4/not_there",method="delete"
227294
)
228295
defresp_cont(url,request):
229-
content= {"Here iswh it failed"}
296+
content= {"Here iswhy it failed"}
230297
returnresponse(404,content, {},None,5,request)
231298

232299
withHTTMock(resp_cont):

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp