Пример #1
0
class GetMonthDay(Redirector):

    def setUp(self):
        super(GetMonthDay, self).setUp()
        schedule_lines_test = [
            '2013/06/29 lightning energy',
            '    ;; schedule ; monthly ; 12th ; ; auto'
        ]

        ScheduleThing.do_file_config = False
        self.schedule_thing = ScheduleThing(schedule_lines_test)

    def test_get_month_day_normal(self):
        """normal day is returned as the same day number"""
        testdate = datetime(2013, 6, 16)
        self.assertEqual(
            5,
            self.schedule_thing._get_month_day('5', testdate)
        )

    def test_get_month_day_february_30(self):
        testdate = datetime(2016, 2, 16)
        self.assertEqual(
            29,
            self.schedule_thing._get_month_day('30', testdate)
        )

    def test_get_month_day_june_eom(self):
        """eom for a 30-day month is 30"""
        testdate = datetime(2013, 6, 16)
        self.assertEqual(
            30,
            self.schedule_thing._get_month_day(
                ScheduleThing.EOM,
                testdate
            )
        )

    def test_get_month_day_july_eom(self):
        """eom for a 31-day month is 31"""
        testdate = datetime(2013, 7, 1)
        self.assertEqual(
            31,
            self.schedule_thing._get_month_day(
                ScheduleThing.EOM,
                testdate
            )
        )

    def test_get_month_day_february_eom(self):
        """eom for a non-leap year february is 28"""
        testdate = datetime(2013, 2, 5)
        self.assertEqual(
            28,
            self.schedule_thing._get_month_day(
                ScheduleThing.EOM,
                testdate
            )
        )

    def test_get_month_day_leap_february_eom(self):
        """eom for a leap year february is 29"""
        testdate = datetime(2012, 2, 5)
        self.assertEqual(
            29,
            self.schedule_thing._get_month_day(
                ScheduleThing.EOM,
                testdate
            )
        )

    def test_get_month_day_june_eom30(self):
        """eom30 for a 30-day month is 30"""
        testdate = datetime(2013, 6, 16)
        self.assertEqual(
            30,
            self.schedule_thing._get_month_day(
                ScheduleThing.EOM30,
                testdate
            )
        )

    def test_get_month_day_july_eom30(self):
        """eom30 for a 31-day month is 30"""
        testdate = datetime(2013, 7, 1)
        self.assertEqual(
            30,
            self.schedule_thing._get_month_day(
                ScheduleThing.EOM30,
                testdate
            )
        )

    def test_get_month_day_february_eom30(self):
        """eom30 for a non-leap year february is 28"""
        testdate = datetime(2013, 2, 5)
        self.assertEqual(
            28,
            self.schedule_thing._get_month_day(
                ScheduleThing.EOM30,
                testdate
            )
        )

    def test_get_month_day_leap_february_eom30(self):
        """eom for a leap year february is 29"""
        testdate = datetime(2012, 2, 5)
        self.assertEqual(
            29,
            self.schedule_thing._get_month_day(
                ScheduleThing.EOM30,
                testdate
            )
        )