示例#1
0
class TestMinuteTimer(TestCase):

    def setUp(self):
        self.get_current_time = MagicMock()
        self.sleep_func = MagicMock()

        self.timer = MinuteTimer(self.get_current_time, self.sleep_func)

    def should_return_datetime_of_next_minute(self):
        now = datetime(2012, 8, 6, 17, 53, 42)
        self.get_current_time.return_value = now

        returned = self.timer.wait()

        self.assertEqual(returned, datetime(2012, 8, 6, 17, 54, 0))

    def should_sleep_until_next_minute_when_2_seconds_until(self):
        now = datetime(2012, 8, 5, 17, 0, 58)
        self.get_current_time.return_value = now
        self.timer.wait()

        self.sleep_func.assert_called_once_with(2)

    def should_sleep_until_next_minute_when_1_seconds_until(self):
        now = datetime(2012, 8, 5, 17, 0, 59)
        self.get_current_time.return_value = now
        self.timer.wait()

        self.sleep_func.assert_called_once_with(1)

    def should_sleep_for_a_minute_if_on_the_minute(self):
        now = datetime(2012, 8, 5, 17, 0, 0)
        self.get_current_time.return_value = now
        self.timer.wait()

        self.sleep_func.assert_called_once_with(60)

    def should_handle_hour_rollover(self):
        now = datetime(2012, 8, 5, 17, 59, 30)
        self.get_current_time.return_value = now
        self.timer.wait()

        self.sleep_func.assert_called_once_with(30)

    def should_handle_day_rollover(self):
        now = datetime(2012, 8, 5, 23, 59, 35)
        self.get_current_time.return_value = now
        self.timer.wait()

        self.sleep_func.assert_called_once_with(25)
示例#2
0
    def setUp(self):
        self.get_current_time = MagicMock()
        self.sleep_func = MagicMock()

        self.timer = MinuteTimer(self.get_current_time, self.sleep_func)