예제 #1
0
    def test_unicode(self):
        et1 = factories.ExamTicketFactory(exam=self.exam,
                                          participation=self.participation1,
                                          code="abcd")
        et2 = factories.ExamTicketFactory(exam=self.exam,
                                          participation=self.participation2,
                                          code="cdef")

        self.assertNotEqual(str(et1), str(et2))
예제 #2
0
 def setUp(self):
     super(ListAvailableExamsTest, self).setUp()
     self.ticket = factories.ExamTicketFactory(
         exam=self.exam,
         participation=self.student_participation,
         state=constants.exam_ticket_states.valid)
     self.instructor_ticket = factories.ExamTicketFactory(
         exam=self.exam,
         participation=self.instructor_participation,
         state=constants.exam_ticket_states.valid)
예제 #3
0
    def setUp(self):
        super(CheckInForExamTest, self).setUp()
        self.ticket = factories.ExamTicketFactory(
            exam=self.exam,
            participation=self.student_participation,
            state=constants.exam_ticket_states.valid)
        self.instructor_ticket = factories.ExamTicketFactory(
            exam=self.exam,
            participation=self.instructor_participation,
            state=constants.exam_ticket_states.valid)

        fake_check_exam_ticket = mock.patch("course.exam.check_exam_ticket")
        self.mock_check_exam_ticket = fake_check_exam_ticket.start()
        self.addCleanup(fake_check_exam_ticket.stop)
예제 #4
0
 def setUp(self):
     super(GetLoginExamTicketTest, self).setUp()
     self.ticket = factories.ExamTicketFactory(
         exam=self.exam,
         participation=self.student_participation,
         state=constants.exam_ticket_states.valid)
     self.request = mock.MagicMock()
예제 #5
0
    def test_revoke_exam_tickets(self):
        ticket1 = factories.ExamTicketFactory(
            exam=self.exam, participation=self.course1_student_participation)
        ticket2 = factories.ExamTicketFactory(
            exam=self.exam, participation=self.course1_ta_participation)

        from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
        action_data = {
            ACTION_CHECKBOX_NAME: [ticket1.pk],
            'action': "revoke_exam_tickets",
            'index': 0,
        }
        with self.temporarily_switch_to_user(self.instructor1):
            resp = self.c.post(
                self.get_admin_course_change_list_view_url(
                    models.ExamTicket.__name__), action_data)
            self.assertEqual(resp.status_code, 302)

        ticket1.refresh_from_db()
        self.assertEqual(ticket1.state, constants.exam_ticket_states.revoked)
        ticket2.refresh_from_db()
        self.assertEqual(ticket2.state, constants.exam_ticket_states.valid)
예제 #6
0
 def setUp(self):
     super(CheckExamTicketTest, self).setUp()
     self.exam.refresh_from_db()
     self.now = now()
     self.facilities = frozenset([])
     self.exam.no_exams_after = self.now + timedelta(days=1)
     self.exam.no_exams_before = self.now - timedelta(days=2)
     self.exam.save()
     self.ticket = factories.ExamTicketFactory(
         exam=self.exam,
         participation=self.student_participation,
         state=constants.exam_ticket_states.valid,
         usage_time=self.now + timedelta(minutes=100),
         valid_start_time=self.now - timedelta(minutes=20),
         valid_end_time=self.now + timedelta(minutes=100),
     )
예제 #7
0
    def test_revoke_revoke_prior_ticket(self):
        prior_ticket = factories.ExamTicketFactory(
            exam=self.exam,
            participation=self.student_participation,
            state=constants.exam_ticket_states.valid)

        resp = self.post_batch_issue_exam_ticket_view(data=self.get_post_data(
            revoke_prior=True))
        self.assertFormErrorLoose(resp, None)
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(ExamTicket.objects.count(), 4)
        prior_ticket.refresh_from_db()
        self.assertEqual(prior_ticket.state,
                         constants.exam_ticket_states.revoked)
        self.assertAddMessageCallCount(1)
        self.assertAddMessageCalledWith("3 tickets issued.")
예제 #8
0
    def test_revoke_revoke_prior_ticket(self):
        self.mock_get_now_or_fake_time.return_value = self.default_faked_now

        prior_ticket = factories.ExamTicketFactory(
            exam=self.exam,
            participation=self.student_participation,
            state=constants.exam_ticket_states.valid)

        resp = self.post_issue_exam_ticket_view(data=self.get_post_data(
            revoke_prior=True))
        self.assertFormErrorLoose(resp, None)
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(ExamTicket.objects.count(), 2)
        prior_ticket.refresh_from_db()
        self.assertEqual(prior_ticket.state,
                         constants.exam_ticket_states.revoked)
        self.assertAddMessageCallCount(1)
        self.assertAddMessageCalledWith("Ticket issued for", reset=False)
        self.assertAddMessageCalledWith("The ticket code is")
예제 #9
0
 def test_navigate(self):
     factories.ExamTicketFactory(
         exam=self.exam, participation=self.course1_student_participation)
     self.navigate_admin_view_by_model(models.ExamTicket)