Example #1
0
    def test_parse_time__only_seconds(self):
        times = ['88']
        result = parse_time(times[0])

        self.assertEqual(result, int(times[-1]))

        result = parse_time(times[0])
        self.assertEqual(result, int(times[-1]))
Example #2
0
    def test_parse_time__all_three(self):
        times = ['4', '10', '54']
        result = parse_time(':'.join(times))

        self.assertEqual(
            result,
            int(times[-1]) + 60 * int(times[-2]) + 60 * 60 * int(times[-3]))
    def execute(self, current_server, current_time, message, author):
        strings = message.lstrip().split(' ', 1)
        if len(strings) < 2:
            return "Sorry, I don't understand that formatting. I was expecting something like '!vtct hh:mm:ss'"

        parsed_time = parse_time(strings[1])

        if parsed_time >= 0:
            update_succeeded = current_server.set_timeout(parsed_time)
            if not update_succeeded:
                return "Sorry, something went wrong and I couldn't update the delay. Make sure the delay is under 100 million seconds (~3 years)"
            formatted_time = format_seconds(parsed_time)
            return "Cool, from now on I'll wait at least {} between alerts.".format(
                formatted_time)
        else:
            return "Sorry, I don't understand that formatting. I was expecting something like '!vtct hh:mm:ss'"
Example #4
0
 def test_parse_time(self):
     when = '2016-05-04T15:32:18'  # ISO extended without datetime, should default to UTC.
     result = parse_time(when)
     expected = datetime.datetime(2016, 5, 4, 15, 32, 18, tzinfo=pytz.utc)
     self.assertEqual(result, expected)
Example #5
0
    def test_parse_time__bad_number(self):
        times = ['4', '10as', '5']
        result = parse_time(':'.join(times))

        self.assertEqual(result, -1)
Example #6
0
    def test_parse_time__wrong_separator(self):
        times = ['4', '10', '5']
        result = parse_time('!'.join(times))

        self.assertEqual(result, -1)
Example #7
0
    def test_parse_time__too_many(self):
        times = ['4', '10', '5', '3']
        result = parse_time(':'.join(times))

        self.assertEqual(result, -1)
Example #8
0
    def test_parse_time__only_two(self):
        times = ['1230', '54']
        result = parse_time(':'.join(times))

        self.assertEqual(result, int(times[-1]) + 60 * int(times[-2]))