Skip to content

Commit 6578366

Browse files
committed
added test cases to verify the retry once system
1 parent 6e6dee8 commit 6578366

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

Test/api/app.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,9 +230,16 @@ async def compile_algorithm(username, algoname):
230230
"resource_type": "algorithm"
231231
}
232232

233+
fail_cnt = 0
233234

234235
@regular_app.post("/v1/algorithms/{username}/{algoname}/versions")
235236
async def publish_algorithm(request: Request, username, algoname):
237+
global fail_cnt
238+
if "failonce" == algoname and fail_cnt == 0:
239+
fail_cnt +=1
240+
return JSONResponse(content="This is an expected failure mode, try again", status_code=400)
241+
elif "failalways" == algoname:
242+
return JSONResponse(status_code=500)
236243
return {"id": "2938ca9f-54c8-48cd-b0d0-0fb7f2255cdc", "name": algoname,
237244
"details": {"summary": "Example Summary", "label": "QA", "tagline": "Example Tagline"},
238245
"settings": {"algorithm_callability": "private", "source_visibility": "open",

Test/regular/algo_failure_test.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,15 @@ def test_throw_500_error_HTTP_response_on_algo_request(self):
2828
result = e
2929
pass
3030
self.assertEqual(str(self.error_message), str(result))
31+
32+
def test_retry_on_400_error_publish(self):
33+
result = self.client.algo("util/failonce").publish()
34+
self.assertEqual(result['version_info']['semantic_version'], "0.1.0")
35+
36+
def test_throw_on_always_500_publish(self):
37+
try:
38+
result = self.client.algo("util/failalways").publish()
39+
except Exception as e:
40+
result = e
41+
pass
42+
self.assertEqual(str(self.error_message), str(result))

0 commit comments

Comments
 (0)