aboutsummaryrefslogtreecommitdiffstats
path: root/backend/routes
diff options
context:
space:
mode:
authorGravatar Hassan Abouelela <[email protected]>2021-06-02 04:03:17 +0300
committerGravatar Hassan Abouelela <[email protected]>2021-06-02 04:05:13 +0300
commitcf2b8d3babf29552e5eeb1ab535506408e18a3e5 (patch)
tree7607dd65784559d5af2faa490e7c8e32e0c982c7 /backend/routes
parentSet Form Viewing URL (diff)
Adds Code Question Model
Adds an explicit model for questions of type `code`, to allow more complex parsing. Updates schema docs. Signed-off-by: Hassan Abouelela <[email protected]>
Diffstat (limited to 'backend/routes')
-rw-r--r--backend/routes/forms/unittesting.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/backend/routes/forms/unittesting.py b/backend/routes/forms/unittesting.py
index 3854314..590cb52 100644
--- a/backend/routes/forms/unittesting.py
+++ b/backend/routes/forms/unittesting.py
@@ -24,7 +24,7 @@ def filter_unittests(form: Form) -> Form:
"""
for question in form.questions:
if question.type == "code" and "unittests" in question.data:
- question.data["unittests"] = len(question.data["unittests"])
+ question.data["unittests"]["tests"] = len(question.data["unittests"]["tests"])
return form
@@ -62,7 +62,7 @@ async def execute_unittest(form_response: FormResponse, form: Form) -> list[Unit
"""Execute all the unittests in this form and return the results."""
unittest_results = []
- for question in form.questions:
+ for index, question in enumerate(form.questions):
if question.type == "code" and "unittests" in question.data:
passed = False
@@ -70,12 +70,12 @@ async def execute_unittest(form_response: FormResponse, form: Form) -> list[Unit
hidden_test_counter = count(1)
hidden_tests = {
test.lstrip("#").lstrip("test_"): next(hidden_test_counter)
- for test in question.data["unittests"].keys()
+ for test in question.data["unittests"]["tests"].keys()
if test.startswith("#")
}
# Compose runner code
- unit_code = _make_unit_code(question.data["unittests"])
+ unit_code = _make_unit_code(question.data["unittests"]["tests"])
user_code = _make_user_code(form_response.response[question.id])
code = TEST_TEMPLATE.replace("### USER CODE", user_code)