diff options
author | 2021-02-24 15:44:37 +0100 | |
---|---|---|
committer | 2021-02-24 15:44:37 +0100 | |
commit | d466b8016c9fb5a5f23731d83254b0b94cf02990 (patch) | |
tree | b0521644bafce447aa7f3d4ffe61a4ed6c3f22f4 | |
parent | Move most of the unittest template inside of the handler (diff) |
Properly handle return codes 5 and 99
-rw-r--r-- | backend/routes/forms/unittesting.py | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/backend/routes/forms/unittesting.py b/backend/routes/forms/unittesting.py index e038f3a..f7f6072 100644 --- a/backend/routes/forms/unittesting.py +++ b/backend/routes/forms/unittesting.py @@ -102,21 +102,25 @@ async def execute_unittest(form_response: FormResponse, form: Form) -> list[Unit return_code = 99 result = "Internal error." else: - stdout = response["stdout"] - passed = bool(int(stdout[0])) - - # If the test failed, we have to populate the result string. - if not passed: - failed_tests = stdout[1:].strip().split(";") - - # Redact failed hidden tests - for i, failed_test in enumerate(failed_tests[:]): - if failed_test in hidden_tests: - failed_tests[i] = f"hidden_test_{hidden_tests[failed_test]}" - - result = ";".join(failed_tests) + # Parse the stdout if the tests ran successfully + if return_code == 0: + stdout = response["stdout"] + passed = bool(int(stdout[0])) + + # If the test failed, we have to populate the result string. + if not passed: + failed_tests = stdout[1:].strip().split(";") + + # Redact failed hidden tests + for i, failed_test in enumerate(failed_tests[:]): + if failed_test in hidden_tests: + failed_tests[i] = f"hidden_test_{hidden_tests[failed_test]}" + + result = ";".join(failed_tests) + else: + result = "" else: - result = "" + result = response["stdout"] unittest_results.append(UnittestResult( question_id=question.id, |