fix sba
This commit is contained in:
+61
-22
@@ -73,7 +73,12 @@ class ExamTester:
|
||||
self.exam = exam = create_exam(db, ExamViews)
|
||||
|
||||
cidgroup1: CidUserGroup = CidUserGroup.objects.get(name="Group1")
|
||||
assert exam in cidgroup1.physics_cid_user_groups.all()
|
||||
|
||||
match app_name:
|
||||
case "physics":
|
||||
assert exam in cidgroup1.physics_cid_user_groups.all()
|
||||
case "sbas":
|
||||
assert exam in cidgroup1.sba_cid_user_groups.all()
|
||||
|
||||
cid_user_1001 = CidUser.objects.get(cid=1001)
|
||||
cid_user_1000 = CidUser.objects.get(cid=1000)
|
||||
@@ -200,11 +205,16 @@ class ExamTester:
|
||||
== question.stem
|
||||
)
|
||||
|
||||
assert cid_take_soup.find("label", {"for": "id_a"}).string == question.a
|
||||
assert cid_take_soup.find("label", {"for": "id_b"}).string == question.b
|
||||
assert cid_take_soup.find("label", {"for": "id_c"}).string == question.c
|
||||
assert cid_take_soup.find("label", {"for": "id_d"}).string == question.d
|
||||
assert cid_take_soup.find("label", {"for": "id_e"}).string == question.e
|
||||
match self.app_name:
|
||||
case "physics":
|
||||
assert cid_take_soup.find("label", {"for": "id_a"}).string == question.a
|
||||
assert cid_take_soup.find("label", {"for": "id_b"}).string == question.b
|
||||
assert cid_take_soup.find("label", {"for": "id_c"}).string == question.c
|
||||
assert cid_take_soup.find("label", {"for": "id_d"}).string == question.d
|
||||
assert cid_take_soup.find("label", {"for": "id_e"}).string == question.e
|
||||
case "sbas":
|
||||
assert cid_take_soup.find("ul", {"class": "sba-answer-list"}) is not None
|
||||
assert len(cid_take_soup.find("ul", {"class": "sba-answer-list"}).find_all("li")) == 5
|
||||
|
||||
# As we haven't submitted any answers they should all be blank
|
||||
assert (
|
||||
@@ -379,17 +389,27 @@ class ExamTester:
|
||||
alert = cid_exam_scores_soup.find("div", {"class": "alert"})
|
||||
assert "Results are not currently published." in str(alert)
|
||||
|
||||
# Check that we are showing enough questions / answers
|
||||
answer_lis = cid_exam_scores_soup.find_all("li", {"class": "question-part"})
|
||||
assert len(answer_lis) == 5 * len(self.generated_questions)
|
||||
|
||||
submitted_answers = cid_exam_scores_soup.find_all(
|
||||
"span", {"class": "submitted-user-answer"}
|
||||
)
|
||||
assert len(submitted_answers) == 5 * len(self.generated_questions)
|
||||
|
||||
for ans in submitted_answers:
|
||||
assert ans.text.strip() == "True"
|
||||
# Check that we are showing enough questions / answers
|
||||
match self.app_name:
|
||||
case "physics":
|
||||
answer_lis = cid_exam_scores_soup.find_all("li", {"class": "question-part"})
|
||||
assert len(answer_lis) == 5 * len(self.generated_questions)
|
||||
assert len(submitted_answers) == 5 * len(self.generated_questions)
|
||||
for ans in submitted_answers:
|
||||
assert ans.text.strip() == "True"
|
||||
|
||||
case "sbas":
|
||||
answer_lis = cid_exam_scores_soup.find_all("li", {"class": "user-answer-li"})
|
||||
assert len(answer_lis) == len(self.generated_questions)
|
||||
assert len(submitted_answers) == len(self.generated_questions)
|
||||
|
||||
|
||||
for ans in submitted_answers:
|
||||
assert ans.text.strip() == "a"
|
||||
|
||||
# Check no correct answers are shown
|
||||
assert not cid_exam_scores_soup.find_all("span", {"class": "correct-answer"})
|
||||
@@ -401,20 +421,39 @@ class ExamTester:
|
||||
cid_exam_scores_res = self.client.get(exam_scores_url)
|
||||
cid_exam_scores_soup = BeautifulSoup(cid_exam_scores_res.content, "html.parser")
|
||||
|
||||
answer_lis = cid_exam_scores_soup.find_all("li", {"class": "question-part"})
|
||||
assert len(answer_lis) == 5 * len(self.generated_questions)
|
||||
|
||||
submitted_answers = cid_exam_scores_soup.find_all(
|
||||
"span", {"class": "submitted-user-answer"}
|
||||
)
|
||||
assert len(submitted_answers) == 5 * len(self.generated_questions)
|
||||
match self.app_name:
|
||||
case "physics":
|
||||
answer_lis = cid_exam_scores_soup.find_all("li", {"class": "question-part"})
|
||||
assert len(answer_lis) == 5 * len(self.generated_questions)
|
||||
assert len(submitted_answers) == 5 * len(self.generated_questions)
|
||||
|
||||
for ans in submitted_answers[:-5]:
|
||||
assert ans.text.strip() == "True"
|
||||
|
||||
# The new question will not have any answers
|
||||
for ans in submitted_answers[-5:]:
|
||||
assert ans.text.strip() == ""
|
||||
|
||||
case "sbas":
|
||||
answer_lis = cid_exam_scores_soup.find_all("li", {"class": "user-answer-li"})
|
||||
assert len(answer_lis) == len(self.generated_questions)
|
||||
assert len(submitted_answers) == len(self.generated_questions)
|
||||
|
||||
print(submitted_answers)
|
||||
|
||||
for ans in submitted_answers[:3]:
|
||||
print("test1", ans)
|
||||
assert ans.text.strip() == "a"
|
||||
|
||||
# The new question will not have any answers
|
||||
for ans in submitted_answers[3:]:
|
||||
print("test2", ans)
|
||||
assert ans.text.strip() == ""
|
||||
|
||||
for ans in submitted_answers[:-5]:
|
||||
assert ans.text.strip() == "True"
|
||||
|
||||
# The new question will not have any answers
|
||||
for ans in submitted_answers[-5:]:
|
||||
assert ans.text.strip() == ""
|
||||
|
||||
# Publish the results!
|
||||
self.exam.publish_results = True
|
||||
|
||||
Reference in New Issue
Block a user