Add user answer viewing and compaction
This commit is contained in:
@@ -244,3 +244,50 @@ def test_import_exam_answers_post_success(cid_manager_client, exam_data, logged_
|
||||
assert answers.count() == 1
|
||||
assert answers.first().answer == "Imported Test Answer"
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_answer_history_and_compacting(cid_manager_client, exam_data, logged_in_user):
|
||||
exam, question = exam_data
|
||||
from anatomy.models import UserAnswer as AnatomyUserAnswer
|
||||
import reversion
|
||||
|
||||
# 1. Create an answer within a revision context
|
||||
with reversion.create_revision():
|
||||
ans = AnatomyUserAnswer.objects.create(
|
||||
exam=exam,
|
||||
question=question,
|
||||
user=logged_in_user,
|
||||
answer="Version 1",
|
||||
)
|
||||
reversion.set_comment("Initial answer")
|
||||
|
||||
# 2. Modify the answer within a revision context
|
||||
with reversion.create_revision():
|
||||
ans.answer = "Version 2"
|
||||
ans.save()
|
||||
reversion.set_comment("Correction")
|
||||
|
||||
url = reverse("generic:view_answer_history", kwargs={
|
||||
"app_name": "anatomy",
|
||||
"model_name": "UserAnswer",
|
||||
"pk": ans.pk,
|
||||
})
|
||||
|
||||
# Check GET revision list
|
||||
response = cid_manager_client.get(url)
|
||||
assert response.status_code == 200
|
||||
assert b"Version 1" in response.content
|
||||
assert b"Version 2" in response.content
|
||||
assert b"Initial answer" in response.content
|
||||
|
||||
# Test Compact Single action
|
||||
response_compact = cid_manager_client.post(url, {"action": "compact_single"})
|
||||
assert response_compact.status_code == 302 # redirect
|
||||
|
||||
# Verify only 1 version remains
|
||||
from reversion.models import Version
|
||||
versions = Version.objects.get_for_object(ans)
|
||||
assert versions.count() == 1
|
||||
assert versions.first().field_dict["answer"] == "Version 2"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user