Пример #1
0
 def test_mwf_perf_tuesday(self):
     """With a MWF test performed on a Tuesday with a due date of Wed, the due date should be set to Wed"""
     seven_am_tues = self.make_dt(timezone.datetime(2018, 11, 20, 7, 0))
     seven_am_wed = self.make_dt(timezone.datetime(2018, 11, 21, 7, 0))
     expected_due_date = seven_am_wed
     assert scheduling.calc_due_date(seven_am_tues, seven_am_wed,
                                     self.mwf) == expected_due_date
Пример #2
0
 def test_mwf_perf_monday_after_due_time(self):
     """With a MWF test performed at 8am on a Monday, if the due date is 7 am, the due date should be set to Wed"""
     seven_am_monday = self.make_dt(timezone.datetime(2018, 11, 19, 7, 0))
     eight_am_monday = self.make_dt(timezone.datetime(2018, 11, 19, 8, 0))
     expected_due_date = self.make_dt(timezone.datetime(2018, 11, 21, 7, 0))
     assert scheduling.calc_due_date(eight_am_monday, seven_am_monday,
                                     self.mwf) == expected_due_date
Пример #3
0
 def test_mwf_due_friday_perf_sat(self):
     """With a MWF test due Friday performed on a Sat, the due date should be set to Mon"""
     seven_am_fri = self.make_dt(timezone.datetime(2018, 11, 23, 7, 0))
     seven_am_sat = self.make_dt(timezone.datetime(2018, 11, 24, 7, 0))
     expected_due_date = self.make_dt(timezone.datetime(2018, 11, 26, 7, 0))
     assert scheduling.calc_due_date(seven_am_sat, seven_am_fri,
                                     self.mwf) == expected_due_date
Пример #4
0
 def test_mwf_due_monday_perf_sat_after(self):
     """With a MWF test due Mon, performed on a Sat after, the due date should be set to Mon next"""
     seven_am_sat_next = self.make_dt(timezone.datetime(2020, 5, 16, 7, 0))
     seven_am_mon = self.make_dt(timezone.datetime(2020, 5, 11, 7, 0))
     seven_am_mon_next = self.make_dt(timezone.datetime(2020, 5, 18, 7, 0))
     expected_due_date = seven_am_mon_next
     assert scheduling.calc_due_date(seven_am_sat_next, seven_am_mon,
                                     self.mwf) == expected_due_date
Пример #5
0
 def test_first_of_month_before_window(self):
     """With a first of month test performed in the middle of the month, the
     due date should unchanged"""
     today = self.make_dt(timezone.datetime(2018, 11, 20, 7, 0))
     due_date = self.make_dt(timezone.datetime(2018, 12, 1, 7, 0))
     expected_due_date = due_date
     assert scheduling.calc_due_date(
         today, due_date, self.day_of_month(1)) == expected_due_date
Пример #6
0
 def test_wed_of_week_performed_mon(self):
     """If a Test List is due every Wed and performed on a Mon, the due date should be
     advanced 2 days forward, not the next day (obviously depends on config or frequency!)
     """
     mon = self.make_dt(timezone.datetime(2018, 11, 26, 7, 0))
     due_date = self.make_dt(timezone.datetime(2018, 11, 28, 7, 0))
     assert scheduling.calc_due_date(mon, due_date,
                                     self.wed).date() == due_date.date()
Пример #7
0
 def test_first_of_month_performed_first_of_month(self):
     """With a first of month test performed on the first of the month, the
     due date should be set to first of next month"""
     today = self.make_dt(timezone.datetime(2018, 11, 1, 7, 0))
     due_date = self.make_dt(timezone.datetime(2018, 11, 1, 7, 0))
     next_month = self.make_dt(timezone.datetime(2018, 12, 1, 7, 0))
     assert scheduling.calc_due_date(
         today, due_date, self.day_of_month(1)).date() == next_month.date()
Пример #8
0
 def test_first_of_month_in_window_before(self):
     """With a first of month test performed in the middle of the month, the
     due date should unchanged"""
     today = self.make_dt(timezone.datetime(2018, 11, 29, 7, 0))
     due_date = self.make_dt(timezone.datetime(2018, 12, 1, 7, 0))
     next_month = self.make_dt(timezone.datetime(2019, 1, 1, 7, 0))
     assert scheduling.calc_due_date(today, due_date,
                                     self.day_of_month(1)) == next_month
Пример #9
0
 def test_wed_of_week_performed_thurs(self):
     """If a Test List is due every Wed and performed on a Wed, the due date should be
     advanced 7 days forward
     """
     thu = self.make_dt(timezone.datetime(2018, 11, 29, 7, 0))
     due_date = self.make_dt(timezone.datetime(2018, 11, 28, 7, 0))
     expected_due_date = self.make_dt(timezone.datetime(2018, 12, 5, 7, 0))
     assert scheduling.calc_due_date(
         thu, due_date, self.wed).date() == expected_due_date.date()
Пример #10
0
 def test_wed_of_week_performed_tues(self):
     """If a Test List is due every Wed and performed on a Tues, the due date should be
     advanced 8 days forward, not the next day
     """
     tue = self.make_dt(timezone.datetime(2018, 11, 27, 7, 0))
     due_date = self.make_dt(timezone.datetime(2018, 11, 28, 7, 0))
     expected_due_date = self.make_dt(timezone.datetime(2018, 12, 5, 7, 0))
     assert scheduling.calc_due_date(
         tue, due_date, self.wed).date() == expected_due_date.date()
Пример #11
0
 def test_first_of_month_performed_day_before(self):
     """If a Test List is performed on e.g. the 31st, the due date should
     be advanced to the next month, not the next day"""
     today = self.make_dt(timezone.datetime(2018, 11, 30, 7, 0))
     due_date = self.make_dt(timezone.datetime(2018, 12, 1, 7, 0))
     expected_due_date = self.make_dt(timezone.datetime(2019, 1, 1, 7, 0))
     assert scheduling.calc_due_date(
         today, due_date,
         self.day_of_month(1)).date() == expected_due_date.date()
Пример #12
0
 def test_daily_offset_due_tomorrow(self):
     daily = qautils.create_frequency(name="d",
                                      slug="d",
                                      interval=1,
                                      save=False)
     seven_am_today = self.make_dt(timezone.datetime(2018, 11, 20, 7, 0))
     seven_am_tmrw = self.make_dt(timezone.datetime(2018, 11, 21, 7, 0))
     assert scheduling.calc_due_date(seven_am_today, seven_am_tmrw,
                                     daily).date() == seven_am_tmrw.date()
Пример #13
0
    def test_first_of_month_performed_long_after_past_next_window(self):
        """If a test list is due on say Apr 1st and is not performed until Dec 2
        the due date should be updated to Jan 1st"""

        today = self.make_dt(timezone.datetime(2018, 12, 2, 7, 0))
        due_date = self.make_dt(timezone.datetime(2018, 4, 1, 7, 0))
        expected_due_date = self.make_dt(timezone.datetime(2019, 1, 1, 7, 0))
        assert scheduling.calc_due_date(
            today, due_date,
            self.day_of_month(1)).date() == expected_due_date.date()
Пример #14
0
 def test_daily_offset_due_today_after_due_time(self):
     """Daily frequency when performed today should result in due date one day in future"""
     daily = qautils.create_frequency(name="d",
                                      slug="d",
                                      interval=1,
                                      save=False)
     eight_am_today = self.make_dt(timezone.datetime(2018, 11, 20, 8, 0))
     due = eight_am_today - timezone.timedelta(hours=1)
     eight_am_tmrw = self.make_dt(timezone.datetime(2018, 11, 21, 8, 0))
     assert scheduling.calc_due_date(eight_am_today, due,
                                     daily).date() == eight_am_tmrw.date()
Пример #15
0
 def test_daily_offset_due_yesterday(self):
     """Daily frequency when performed today should result in due date one day in future"""
     daily = qautils.create_frequency(name="d",
                                      slug="d",
                                      interval=1,
                                      save=False)
     seven_am_today = self.make_dt(timezone.datetime(2018, 11, 20, 7, 0))
     due = self.make_dt(timezone.datetime(2018, 11, 19, 7, 0))
     seven_am_tmrw = self.make_dt(timezone.datetime(2018, 11, 21, 7, 0))
     assert scheduling.calc_due_date(seven_am_today, due,
                                     daily).date() == seven_am_tmrw.date()
Пример #16
0
 def test_monthly_offset(self):
     """Monthly frequency when performed today should result in due date 28 days in future"""
     monthly = qautils.create_frequency(name="d",
                                        slug="d",
                                        interval=28,
                                        save=False)
     seven_am_today = self.make_dt(timezone.datetime(2018, 11, 20, 7, 0))
     due_date = timezone.now()  # arbitrary
     seven_am_4wks = self.make_dt(timezone.datetime(2018, 12, 18, 7, 0))
     assert scheduling.calc_due_date(
         seven_am_today, due_date, monthly).date() == seven_am_4wks.date()
Пример #17
0
    def test_4_weekly_performed_long_after_outside_next_window(self):
        """If a test list is due on say Apr 1st and is not performed until Nov 20
        the due date should be updated to Dec 1st"""

        today = self.make_dt(timezone.datetime(2018, 11, 1, 7, 0))
        due_date = self.make_dt(timezone.datetime(2018, 4, 15, 7, 0))
        # due date in Nov is 8 4 week periods after April 15 which is Nov 25
        expected_due_date = self.make_dt(timezone.datetime(2018, 11, 25, 7, 0))
        assert scheduling.calc_due_date(
            today, due_date,
            self.n_weekly(4)).date() == expected_due_date.date()
Пример #18
0
    def test_first_of_month_performed_long_after_past_next_window_2(self):
        """If a test list is due on say Apr 15th and is not performed until Nov 26
        the due date should be updated to Dec 23"""

        today = self.make_dt(timezone.datetime(2018, 11, 26, 7, 0))
        due_date = self.make_dt(timezone.datetime(2018, 4, 15, 7, 0))
        # due date in Nov is 8 4 week periods after April 15 which is Nov 25
        # due date in Dec is 9 4 week periods after April 15 which is Dec 23
        expected_due_date = self.make_dt(timezone.datetime(2018, 12, 23, 7, 0))
        assert scheduling.calc_due_date(
            today, due_date,
            self.n_weekly(4)).date() == expected_due_date.date()
Пример #19
0
 def test_annual_offset(self):
     """Annual frequency when performed today should result in due date 300 days in future"""
     annual = qautils.create_frequency(name="d",
                                       slug="d",
                                       interval=300,
                                       save=False)
     seven_am_today = self.make_dt(timezone.datetime(2018, 11, 20, 7, 0))
     due_date = self.make_dt(timezone.datetime(2018, 12, 20, 7,
                                               0))  # arbitrary
     seven_am_300_days = self.make_dt(timezone.datetime(2019, 9, 16, 7, 0))
     assert scheduling.calc_due_date(
         seven_am_today, due_date,
         annual).date() == seven_am_300_days.date()
Пример #20
0
 def test_adhoc(self):
     """Null frequency should result in a null due date"""
     assert scheduling.calc_due_date(timezone.now(), timezone.now(),
                                     None) is None