Skip to content

Commit b22c8f6

Browse files
committed
fix: return 500 status code when route raise
1 parent ef65920 commit b22c8f6

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

integration_tests/base_routes.py

+10
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,16 @@ def file_download_async():
276276
return serve_file(file_path)
277277

278278

279+
@app.get("/sync/raise")
280+
def sync_raise():
281+
raise Exception()
282+
283+
284+
@app.get("/async/raise")
285+
async def async_raise():
286+
raise Exception()
287+
288+
279289
if __name__ == "__main__":
280290
app.add_request_header("server", "robyn")
281291
current_file_path = pathlib.Path(__file__).parent.resolve()

integration_tests/test_status_code.py

+7
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,10 @@ def test_307_get_request(session):
2121
def test_int_status_code(session):
2222
r = requests.get(f"{BASE_URL}/int_status_code")
2323
assert r.status_code == 202
24+
25+
26+
def test_500_internal_server_error(session):
27+
r = requests.get(f"{BASE_URL}/sync/raise")
28+
assert r.status_code == 500
29+
r = requests.get(f"{BASE_URL}/async/raise")
30+
assert r.status_code == 500

src/executors/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ pub async fn execute_http_function(request: &Request, function: FunctionInfo) ->
6868
})
6969
} else {
7070
Python::with_gil(|py| -> Result<Response> {
71-
let output = get_function_output(&function, py, request).unwrap();
71+
let output = get_function_output(&function, py, request)?;
7272
output.extract().context("Failed to get route response")
7373
})
7474
}

0 commit comments

Comments
 (0)