Example #1
0
    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)
Example #2
0
    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)
Example #3
0
 def test_in_str_spacing(self):
     """FIXME"""
     result = conversions.time_interval_in_seconds("60 seconds")
     self.assertEqual(result, 60)
Example #4
0
 def test_1mins_value(self):
     """FIXME"""
     result = conversions.time_interval_in_seconds("1mins")
     self.assertEqual(result, 60)
Example #5
0
 def test_unparsable(self):
     """FIXME"""
     with self.assertRaises(conversions.TimeIntervalConversionError):
         conversions.time_interval_in_seconds("unparsable")
Example #6
0
 def test_suffixless_number(self):
     """FIXME"""
     result = conversions.time_interval_in_seconds("1")
     self.assertEqual(result, 1)