start adding exam dates
This commit is contained in:
@@ -1,7 +1,12 @@
|
||||
import json
|
||||
import os
|
||||
from re import A
|
||||
import time
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.http import Http404
|
||||
from django.utils import timezone
|
||||
|
||||
import pytest
|
||||
|
||||
import tempfile
|
||||
@@ -508,3 +513,53 @@ def test_exams(db, client):
|
||||
|
||||
generated_questions.pop(-1).delete()
|
||||
users_tested = users_tested + 1
|
||||
|
||||
|
||||
def test_exams_with_dates(db, client):
|
||||
create_cid_user_and_groups(db)
|
||||
exam = create_exam(db)
|
||||
|
||||
|
||||
active_exams = client.get(reverse(f"{APP_NAME}:active_exams"))
|
||||
assert active_exams.status_code == 200
|
||||
assert len(json.loads(active_exams.content)["exams"]) == 0
|
||||
|
||||
cid_user_1000 = CidUser.objects.get(cid=1000)
|
||||
user1 = User.objects.get(username="user1")
|
||||
exam.check_user_can_take(None, None, user1)
|
||||
exam.check_user_can_take(cid_user_1000.cid, cid_user_1000.passcode)
|
||||
|
||||
exam.active = False
|
||||
exam.save()
|
||||
|
||||
with pytest.raises(Http404):
|
||||
exam.check_user_can_take(None, None, user1)
|
||||
|
||||
with pytest.raises(Http404):
|
||||
exam.check_user_can_take(cid_user_1000.cid, cid_user_1000.passcode)
|
||||
|
||||
with pytest.raises(ValidationError):
|
||||
exam.restrict_to_dates = True
|
||||
exam.save()
|
||||
with pytest.raises(ValidationError):
|
||||
exam.restrict_to_dates = True
|
||||
exam.end_date = timezone.now()
|
||||
exam.start_date = timezone.now() + timezone.timedelta(days=1)
|
||||
exam.save()
|
||||
|
||||
exam.start_date = timezone.now()
|
||||
exam.end_date = None # The previously set value seems to remain...
|
||||
|
||||
exam.restrict_to_dates = True
|
||||
exam.save()
|
||||
exam.check_user_can_take(None, None, user1)
|
||||
exam.check_user_can_take(cid_user_1000.cid, cid_user_1000.passcode)
|
||||
|
||||
exam.end_date = timezone.now()
|
||||
exam.save()
|
||||
|
||||
with pytest.raises(Http404):
|
||||
exam.check_user_can_take(None, None, user1)
|
||||
|
||||
with pytest.raises(Http404):
|
||||
exam.check_user_can_take(cid_user_1000.cid, cid_user_1000.passcode)
|
||||
Reference in New Issue
Block a user