Example #1
0
    def test_getPeriodsForLastDayOfTerm(self):
        from schooltool.timetable.browser.cal import DailyTimetableCalendarRowsView

        view = DailyTimetableCalendarRowsView(None, TestRequest())
        # We need the start date and the end date different
        view.getPersonTimezone = lambda: timezone('America/Chicago')
        self.assertEquals(view.getPeriodsForDay(date(2005, 6, 1)), [])
Example #2
0
    def test_getPeriodsForLastDayOfTerm(self):
        from schooltool.timetable.browser.cal import DailyTimetableCalendarRowsView

        view = DailyTimetableCalendarRowsView(None, TestRequest())
        # We need the start date and the end date different
        view.getPersonTimezone = lambda: timezone('America/Chicago')
        self.assertEquals(view.getPeriodsForDay(date(2005, 6, 1)), [])
Example #3
0
    def test_getPeriodsForDay_otherTZ(self):
        from schooltool.timetable.browser.cal import DailyTimetableCalendarRowsView

        view = DailyTimetableCalendarRowsView(None, TestRequest())
        # Auckland is 12h ahead of London
        view.getPersonTimezone = lambda: timezone('Pacific/Auckland')
        uk = timezone('Europe/London')

        delta = timedelta(minutes=115)
        td = timedelta
        ukdt = lambda *args: uk.localize(datetime(*args))
        self.assertEquals(view.getPeriodsForDay(date(2004, 10, 14)),
                          [('B', ukdt(2004, 10, 13, 12, 0), td(minutes=55)),
                           ('C', ukdt(2004, 10, 13, 13, 0), delta),
                           ('D', ukdt(2004, 10, 13, 15, 0), delta),
                           ('A', ukdt(2004, 10, 14, 9, 0), delta),
                           ('B', ukdt(2004, 10, 14, 11, 0), td(minutes=60))])

        # However, if there is no time period, we return []
        self.assertEquals(view.getPeriodsForDay(date(2005, 10, 14)),
                          [])

        # If there is no timetable schema, we return []
        ITimetableSchemaContainer(self.app).default_id = None
        self.assertEquals(view.getPeriodsForDay(date(2004, 10, 14)),
                          [])
Example #4
0
    def test_getPersonTimezone(self):
        from schooltool.timetable.browser.cal import DailyTimetableCalendarRowsView

        request = TestRequest()
        view = DailyTimetableCalendarRowsView(ISchoolToolCalendar(self.person), request)

        # when there is no principal - the default timezone should be
        # returned
        self.assertEquals(view.getPersonTimezone(), timezone('UTC'))
Example #5
0
    def test_getPersonTimezone(self):
        from schooltool.timetable.browser.cal import DailyTimetableCalendarRowsView

        request = TestRequest()
        view = DailyTimetableCalendarRowsView(ISchoolToolCalendar(self.person),
                                              request)

        # when there is no principal - the default timezone should be
        # returned
        self.assertEquals(view.getPersonTimezone(), timezone('UTC'))
Example #6
0
    def test_getPeriodsForDayBetweenTerms(self):
        from schooltool.term.term import Term
        term3 = Term('Sample', date(2005, 6, 2), date(2005, 8, 1))
        ITermContainer(self.app)['2005-autumn'] = term3
        term3.schooldays = [('A', time(9, 0), timedelta(minutes=115))]
        self.term2.schooldays = [('B', time(10, 0), timedelta(minutes=115))]

        from schooltool.timetable.browser.cal import DailyTimetableCalendarRowsView

        view = DailyTimetableCalendarRowsView(None, TestRequest())
        # We need the start date and the end date different
        view.getPersonTimezone = lambda: timezone('America/Chicago')
        self.assertEquals(len(view.getPeriodsForDay(date(2005, 6, 1))), 1)
Example #7
0
    def test_getPeriodsForDayBetweenTerms(self):
        from schooltool.term.term import Term
        term3 = Term('Sample', date(2005, 6, 2), date(2005, 8, 1))
        ITermContainer(self.app)['2005-autumn'] = term3
        term3.schooldays = [('A', time(9,0), timedelta(minutes=115))]
        self.term2.schooldays = [('B', time(10,0), timedelta(minutes=115))]

        from schooltool.timetable.browser.cal import DailyTimetableCalendarRowsView

        view = DailyTimetableCalendarRowsView(None, TestRequest())
        # We need the start date and the end date different
        view.getPersonTimezone = lambda: timezone('America/Chicago')
        self.assertEquals(len(view.getPeriodsForDay(date(2005, 6, 1))), 1)
Example #8
0
    def test_getPeriodsForDay_sameTZ(self):
        from schooltool.timetable.browser.cal import DailyTimetableCalendarRowsView

        view = DailyTimetableCalendarRowsView(None, TestRequest())
        uk = timezone('Europe/London')
        view.getPersonTimezone = lambda: uk
        delta = timedelta(minutes=115)
        ukdt = lambda *args: uk.localize(datetime(*args))
        self.assertEquals(view.getPeriodsForDay(date(2004, 10, 14)),
                          [('A', ukdt(2004, 10, 14, 9, 0), delta),
                           ('B', ukdt(2004, 10, 14, 11, 0), delta),
                           ('C', ukdt(2004, 10, 14, 13, 0), delta),
                           ('D', ukdt(2004, 10, 14, 15, 0), delta)])

        # However, if there is no time period, we return []
        self.assertEquals(view.getPeriodsForDay(date(2005, 10, 14)), [])

        # If there is no timetable schema, we return []
        ITimetableSchemaContainer(self.app).default_id = None
        self.assertEquals(view.getPeriodsForDay(date(2004, 10, 14)), [])
Example #9
0
    def test_calendarRows_otherTZ(self):
        from schooltool.timetable.browser.cal import DailyTimetableCalendarRowsView
        from schooltool.app.security import Principal

        request = TestRequest()
        principal = Principal('person', 'Some person', person=self.person)
        request.setPrincipal(principal)
        view = DailyTimetableCalendarRowsView(ISchoolToolCalendar(self.person),
                                              request)

        km = timezone('Asia/Kamchatka')
        view.getPersonTimezone = lambda: km

        result = list(view.calendarRows(date(2004, 11, 5), 8, 19, events=[]))

        kmdt = lambda arg: km.localize(parse_datetime('2004-11-05 %s:00' % arg)
                                       )

        expected = [('8:00', kmdt('8:00'), timedelta(0, 3600)),
                    ('9:00', kmdt('9:00'), timedelta(0, 3600)),
                    ('10:00', kmdt('10:00'), timedelta(0, 3600)),
                    ('11:00', kmdt('11:00'), timedelta(0, 3600)),
                    ('12:00', kmdt('12:00'), timedelta(0, 3600)),
                    ('13:00', kmdt('13:00'), timedelta(0, 3600)),
                    ('14:00', kmdt('14:00'), timedelta(0, 3600)),
                    ('15:00', kmdt('15:00'), timedelta(0, 3600)),
                    ('16:00', kmdt('16:00'), timedelta(0, 3600)),
                    ('17:00', kmdt('17:00'), timedelta(0, 3600)),
                    ('18:00', kmdt('18:00'), timedelta(0, 3600)),
                    ('19:00', kmdt('19:00'), timedelta(0, 3600)),
                    ('1', kmdt("20:00"), timedelta(0, 3600)),
                    ('21:00', kmdt("21:00"), timedelta(0, 4500)),
                    ('2', kmdt("22:15"), timedelta(0, 3600)),
                    ('23:15', kmdt("23:15"), timedelta(0, 900)),
                    ('3', kmdt("23:30"), timedelta(0, 1800))]

        self.assertEquals(result, expected)
Example #10
0
    def test_calendarRows_otherTZ(self):
        from schooltool.timetable.browser.cal import DailyTimetableCalendarRowsView
        from schooltool.app.security import Principal

        request = TestRequest()
        principal = Principal('person', 'Some person', person=self.person)
        request.setPrincipal(principal)
        view = DailyTimetableCalendarRowsView(ISchoolToolCalendar(self.person), request)

        km = timezone('Asia/Kamchatka')
        view.getPersonTimezone = lambda: km

        result = list(view.calendarRows(date(2004, 11, 5), 8, 19, events=[]))

        kmdt = lambda arg: km.localize(parse_datetime('2004-11-05 %s:00' %
                                                      arg))

        expected = [('8:00', kmdt('8:00'), timedelta(0, 3600)),
                    ('9:00', kmdt('9:00'), timedelta(0, 3600)),
                    ('10:00', kmdt('10:00'),timedelta(0, 3600)),
                    ('11:00', kmdt('11:00'),timedelta(0, 3600)),
                    ('12:00', kmdt('12:00'),timedelta(0, 3600)),
                    ('13:00', kmdt('13:00'),timedelta(0, 3600)),
                    ('14:00', kmdt('14:00'),timedelta(0, 3600)),
                    ('15:00', kmdt('15:00'),timedelta(0, 3600)),
                    ('16:00', kmdt('16:00'),timedelta(0, 3600)),
                    ('17:00', kmdt('17:00'),timedelta(0, 3600)),
                    ('18:00', kmdt('18:00'),timedelta(0, 3600)),
                    ('19:00', kmdt('19:00'),timedelta(0, 3600)),
                    ('1',  kmdt("20:00"), timedelta(0, 3600)),
                    ('21:00', kmdt("21:00"), timedelta(0, 4500)),
                    ('2',  kmdt("22:15"), timedelta(0, 3600)),
                    ('23:15', kmdt("23:15"), timedelta(0, 900)),
                    ('3', kmdt("23:30"), timedelta(0, 1800))]

        self.assertEquals(result, expected)