def set_refresh_rate(self, refresh_rate): """Set the refresh rate for this handler. :param refresh_rate: a time interval string. E.g. "1 SECOND", "2 MINUTES". """ try: # Internally we'll always store the refresh rate as a number # of seconds. self.refresh_rate = conversions.time_interval_in_seconds( refresh_rate) except conversions.ConversionError as e: msg = 'Could not parse refresh rate "{rate}"' raise PullHandlerError(msg.format(rate=refresh_rate)) from e # Reset the read timer to reflect the new rate # # NOTE - if we were previously in the failure state the next # check will now come round too quickly. This could be FIXMEd in # a subsequent version but it's not not important enough right # now. if self.read_timer: now = time.time() due = self.last_read + self.refresh_rate if due <= now: self.start_read_timer(0.1) # Near-immediate read else: self.start_read_timer(due - now)
def test_2week_value(self): """FIXME""" second = 1 minute = 60 * second hour = 60 * minute day = 24 * hour week = 7 * day result = conversions.time_interval_in_seconds("2 week") self.assertEqual(result, 2 * week)
def test_in_str_spacing(self): """FIXME""" result = conversions.time_interval_in_seconds("60 seconds") self.assertEqual(result, 60)
def test_1mins_value(self): """FIXME""" result = conversions.time_interval_in_seconds("1mins") self.assertEqual(result, 60)
def test_unparsable(self): """FIXME""" with self.assertRaises(conversions.TimeIntervalConversionError): conversions.time_interval_in_seconds("unparsable")
def test_suffixless_number(self): """FIXME""" result = conversions.time_interval_in_seconds("1") self.assertEqual(result, 1)