def test_find_deliberation_date(self):
        SessionExamCalendarFactory(academic_calendar=self.academic_calendar_4,
                                   number_session=number_session.ONE)
        offer_yr = OfferYearFactory(academic_year=self.current_academic_yr)

        offer_year_cal = OfferYearCalendarFactory(
            academic_calendar=self.academic_calendar_4, offer_year=offer_yr)

        self.assertEqual(
            session_exam_calendar.find_deliberation_date(
                number_session.ONE, offer_year_cal.offer_year),
            datetime.date(self.current_academic_yr.year + 1, 1, 1))
        self.assertIsNone(
            session_exam_calendar.find_deliberation_date(
                number_session.TWO, offer_year_cal.offer_year))
Esempio n. 2
0
    def setUp(self):
        self.user = User.objects.create_user(username='******', password='******')
        add_permission(self.user, "can_access_scoreencoding")
        self.client.force_login(self.user)

        # Create context out of range
        self.academic_year = _get_academic_year(2017)
        self.academic_calendar = AcademicCalendarFactory(title="Submission of score encoding - 1",
                                                         academic_year=self.academic_year,
                                                         reference=academic_calendar_type.SCORES_EXAM_SUBMISSION)
        self.session_exam_calendar = SessionExamCalendarFactory(academic_calendar=self.academic_calendar,
                                                                number_session=number_session.ONE)
        # Mock academic_year / session_exam_calendar in order to be decouple test from system time
        self.mock_academic_year(
            current_academic_year=self.academic_year,
            starting_academic_year=self.academic_year,
        )
        self.mock_session_exam_calendar(current_session_exam=None)
Esempio n. 3
0
class OutsideEncodingPeriodTest(AcademicYearMockMixin, SessionExamCalendarMockMixin, TestCase):
    def setUp(self):
        self.user = User.objects.create_user(username='******', password='******')
        add_permission(self.user, "can_access_scoreencoding")
        self.client.force_login(self.user)

        # Create context out of range
        self.academic_year = _get_academic_year(2017)
        self.academic_calendar = AcademicCalendarFactory(title="Submission of score encoding - 1",
                                                         academic_year=self.academic_year,
                                                         reference=academic_calendar_type.SCORES_EXAM_SUBMISSION)
        self.session_exam_calendar = SessionExamCalendarFactory(academic_calendar=self.academic_calendar,
                                                                number_session=number_session.ONE)
        # Mock academic_year / session_exam_calendar in order to be decouple test from system time
        self.mock_academic_year(
            current_academic_year=self.academic_year,
            starting_academic_year=self.academic_year,
        )
        self.mock_session_exam_calendar(current_session_exam=None)

    def test_redirection_to_current_exam_session(self):
        self.mock_session_exam_calendar(current_session_exam=self.session_exam_calendar)
        url = reverse('outside_scores_encodings_period')
        response = self.client.get(url)
        self.assertRedirects(response, "%s?next=%s" % (reverse('scores_encoding'), reverse('outside_scores_encodings_period')))  # Redirection

    def test_redirection_to_outside_encoding_period(self):
        url = reverse('scores_encoding')
        response = self.client.get(url)
        self.assertRedirects(response, "%s?next=%s" % (reverse('outside_scores_encodings_period'), reverse('scores_encoding')))  # Redirection

    def test_message_score_encoding_not_open(self):
        self.session_exam_calendar.delete()
        url = reverse('outside_scores_encodings_period')
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        messages = list(response.context['messages'])
        self.assertEqual(len(messages), 1)
        self.assertEqual(messages[0].tags, 'warning')
        self.assertEqual(messages[0].message, _("The period of scores' encoding is not opened"))

    def test_multiple_messages_outside_encoding_period(self):
        date_format = str(_('date_format'))

        # Submission of score encoding - 1 [Two day before today]
        self.academic_calendar.end_date = timezone.now() - timedelta(days=2)
        self.academic_calendar.start_date = timezone.now() - timedelta(days=20)
        self.academic_calendar.save()

        # Create submission of score encoding - 2 [Start in 100 days]
        ac = AcademicCalendarFactory.build(title="Submission of score encoding - 2",
                                           academic_year=self.academic_year,
                                           start_date=self.academic_calendar.end_date + timedelta(days=100),
                                           end_date=self.academic_calendar.end_date + timedelta(days=130),
                                           reference=academic_calendar_type.SCORES_EXAM_SUBMISSION)
        ac.save()
        SessionExamCalendarFactory(academic_calendar=ac, number_session=number_session.TWO)

        url = reverse('scores_encoding')
        response = self.client.get(url, follow=True)
        messages = list(response.context['messages'])

        self.assertEqual(len(messages), 2)
        self.assertEqual(messages[0].tags, 'warning')
        end_date_str = self.academic_calendar.end_date.strftime(date_format)
        self.assertEqual(messages[0].message,
                         _("The period of scores' encoding %(session_number)s is closed since %(str_date)s")
                         % {'session_number': 1, 'str_date': end_date_str})
        self.assertEqual(messages[1].tags, 'warning')
        start_date_str = ac.start_date.strftime(date_format)
        self.assertEqual(messages[1].message,
                         _("The period of scores' encoding %(session_number)s will be open %(str_date)s")
                         % {'session_number': 2, 'str_date': start_date_str})