예제 #1
0
 def test_no_stop_time(self):
     # It may decide that January 13 is next year.
     expected_year = _guess_year(1, 13, PYTZ_TIME_ZONE, self.now)
     self.assertIn(expected_year, [self.now.year, self.now.year + 1])
     starts_at, ends_at = parse_single_event('january 13 9:45pm')
     self.assertEqual(datetime(expected_year, 1, 13, 21, 45), starts_at)
     self.assertEqual(None, ends_at)
예제 #2
0
 def test_start_end_without_year(self):
     s = 'June 25   5:00PM — 8:00PM'
     starts_at, ends_at = parse_single_event(s,
                                             now=datetime(
                                                 2019, 5, 1, 13, 30))
     self.assertEqual(datetime(2019, 6, 25, 17, 0), starts_at)
     self.assertEqual(datetime(2019, 6, 25, 20, 0), ends_at)
예제 #3
0
 def test(self):
     starts_at, ends_at = parse_single_event('january 13 9-11pm')
     # It may decide that January 13 is next year.
     expected_year = _guess_year(1, 13, PYTZ_TIME_ZONE, self.now)
     self.assertIn(expected_year, [self.now.year, self.now.year + 1])
     self.assertEqual(datetime(expected_year, 1, 13, 21, 0), starts_at)
     self.assertEqual(datetime(expected_year, 1, 13, 23, 0), ends_at)
     not_now = self.now.replace(year=2015, month=1, day=1)
     starts_at, ends_at = parse_single_event('january 13 9-11pm',
                                             now=not_now,
                                             local_tz=PYTZ_TIME_ZONE)
     self.assertEqual(
         PYTZ_TIME_ZONE.localize(datetime(not_now.year, 1, 13, 21, 0)),
         starts_at)
     self.assertEqual(
         PYTZ_TIME_ZONE.localize(datetime(not_now.year, 1, 13, 23, 0)),
         ends_at)
예제 #4
0
 def test_late_last_year(self):
     month = 1
     day = 1
     year = 2018
     starts_at, ends_at = parse_single_event('december 31 9-11:30pm',
                                             now=datetime(
                                                 year, month, day, 13, 30))
     self.assertEqual(datetime(year - 1, 12, 31, 21, 0), starts_at)
     self.assertEqual(datetime(year - 1, 12, 31, 23, 30), ends_at)
예제 #5
0
 def test_early_next_year(self):
     month = 12
     day = 31
     year = 2017
     starts_at, ends_at = parse_single_event('january 1 9-11:30pm',
                                             now=datetime(
                                                 year, month, day, 13, 30))
     self.assertEqual(datetime(year + 1, 1, 1, 21, 0), starts_at)
     self.assertEqual(datetime(year + 1, 1, 1, 23, 30), ends_at)
예제 #6
0
 def test_start_time_with_year(self):
     month = 1
     day = 1
     year = 2018
     for s in ('december 31, 2016 9pm', 'december 31 2016 9pm'):
         starts_at, ends_at = parse_single_event(s,
                                                 now=datetime(
                                                     year, month, day, 13,
                                                     30))
         self.assertEqual(datetime(2016, 12, 31, 21, 0), starts_at)
         self.assertEqual(None, ends_at)
예제 #7
0
 def test_range_with_year(self):
     month = 1
     day = 1
     year = 2018
     # note that one has '9pm' instead of just '9', and one has comma before year
     for s in ('december 31, 2016 9pm-11:30pm',
               'december 31 2016 9-11:30pm'):
         starts_at, ends_at = parse_single_event(s,
                                                 now=datetime(
                                                     year, month, day, 13,
                                                     30))
         self.assertEqual(datetime(2016, 12, 31, 21, 0), starts_at)
         self.assertEqual(datetime(2016, 12, 31, 23, 30), ends_at)
예제 #8
0
 def test_bad_string(self):
     with self.assertRaises(ValueError):
         parse_single_event('1 december 31 2017 9-11:30pm')