def setUp(self): self.validated_teacher = ready_user(1) self.other_teacher = ready_user(2) self.inactive_user = ready_user(3) self.guest = ready_user(11) # Skip TOS interactions role = Role.objects.get(role="teacher") tos = Tos(version=1, text="Test", current=True, role=role) tos.save() consent = Consent( user=self.validated_teacher, accepted=True, tos=Tos.objects.first() ) consent.save() self.group = Group.objects.get(name="Teacher") self.assertFalse(self.group.permissions.all()) permission = Permission.objects.get(codename="add_question") self.group.permissions.add(permission) permission = Permission.objects.get(codename="change_question") self.group.permissions.add(permission) self.assertEqual(self.group.permissions.count(), 2) self.assertFalse(self.validated_teacher.get_all_permissions())
def consent(user, create, extracted, **kwargs): if not create: return if Tos.objects.exists(): consent = Consent(user=user, accepted=False, tos=Tos.objects.first()) consent.save()
def setUp(self): super(QuestionViewTestCase, self).setUp() UsesCriterion.objects.filter( quality__quality_type__type="global").delete() # TOS integration from tos.models import Consent, Role, Tos role = Role.objects.get(role="student") tos = Tos(version=1, text="Test", current=True, role=role) tos.save() no_share_user = User(username="******", email="*****@*****.**") no_share_user.save() # To test latest consent is used consent = Consent(user=no_share_user, accepted=True, tos=Tos.objects.first()) consent.save() no_consent = Consent(user=no_share_user, accepted=False, tos=Tos.objects.first()) no_consent.save() self.user = factories.UserFactory() self.assignment = factories.AssignmentFactory() self.set_question( factories.QuestionFactory(choices=5, choices__correct=[2, 4], choices__rationales=4)) self.add_user_to_even_answers() self.addCleanup(mock.patch.stopall) signal_patcher = mock.patch( "django_lti_tool_provider.signals.Signals.Grade.updated.send") self.mock_send_grade_signal = signal_patcher.start() grade_patcher = mock.patch("peerinst.models.Answer.grade", new_callable=mock.PropertyMock) self.mock_grade = grade_patcher.start() self.mock_grade.return_value = Grade.CORRECT
def test_TOS_mixin(self): logged_in = self.client.login( username=self.validated_teacher.username, password=self.validated_teacher.text_pwd, ) self.assertTrue(logged_in) consent = Consent( user=self.validated_teacher, accepted=False, tos=Tos.objects.first(), ) consent.save() permission = Permission.objects.get(codename="add_question") self.validated_teacher.user_permissions.add(permission) permission = Permission.objects.get(codename="change_question") self.validated_teacher.user_permissions.add(permission) # Question create response = self.client.get(reverse("question-create"), follow=True) self.assertEqual(response.status_code, 403) self.assertTemplateUsed(response, "tos/tos_required.html") # Question clone response = self.client.get( reverse("question-clone", kwargs={"pk": 43}), follow=True ) self.assertEqual(response.status_code, 403) self.assertTemplateUsed(response, "tos/tos_required.html") # Question update response = self.client.get( reverse("question-update", kwargs={"pk": 32}), follow=True ) self.assertEqual(response.status_code, 403) self.assertTemplateUsed(response, "tos/tos_required.html") # Answer choice create/update response = self.client.get( reverse("answer-choice-form", kwargs={"question_id": 32}), follow=True, ) self.assertEqual(response.status_code, 403) self.assertTemplateUsed(response, "tos/tos_required.html") # Sample answer create response = self.client.get( reverse("sample-answer-form", kwargs={"question_id": 32}), follow=True, ) self.assertEqual(response.status_code, 403) self.assertTemplateUsed(response, "tos/tos_required.html") # Sample answer submit response = self.client.get( reverse("sample-answer-form-done", kwargs={"question_id": 32}), follow=True, ) self.assertEqual(response.status_code, 403) self.assertTemplateUsed(response, "tos/tos_required.html")