def test_valid_solar(self): # Sunrise. field = "Mo,Th 09:00-12:00,13:00-sunrise" oh = main.OHParser(field) # Sunset. field = "Mo,Th 09:00-12:00,13:00-sunset" oh = main.OHParser(field)
def test_valid_solar_offset(self): # Sunrise. field = "Mo,Th 09:00-12:00,13:00-(sunrise+02:00)" oh = main.OHParser(field) # Sunset. field = "Mo,Th 09:00-12:00,13:00-(sunset-02:00)" oh = main.OHParser(field)
def test_invalid_days(self): field = "Mo,Wx 09:00-12:00,13:00-19:00" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field) field = "Pl-Mo 09:00-12:00,13:00-19:00" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field)
def test_invalid_solar(self): # Sunrise. field = "Mo,Th 09:00-12:00,13:00-(sunrise)" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field) # Sunset. field = "Mo,Th 09:00-12:00,13:00-(sunset)" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field)
def test_invalid_solar_offset(self): field = "Mo,Th 09:00-12:00,13:00-(sunrise=02:00)" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field) field = "Mo,Th 09:00-12:00,13:00-(sunrise02:00)" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field) field = "Mo,Th 09:00-12:00,13:00-(sunrise+02:00" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field)
def test_exceptional_days(self): field = "Dec 25 off" oh = main.OHParser(field) self.assertEqual(len(oh._tree.exceptional_dates), 1) field = "Jan 1 13:00-19:00" oh = main.OHParser(field) self.assertEqual(len(oh._tree.exceptional_dates), 1) field = "Jan 1 13:00-19:00; Dec 25 off" oh = main.OHParser(field) self.assertEqual(len(oh._tree.exceptional_dates), 2)
def test_invalid_patterns(self): field = "easter 10:00-20:00" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field) field = "Mo-Fr 20:00-02:00" with self.assertRaises(exceptions.SpanOverMidnight) as context: oh = main.OHParser(field) field = "Su[1] 10:00-20:00" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field) field = "SH,PH Mo-Fr 10:00-20:00" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field) field = "SH,PH Mo-Fr,Su 10:00-20:00" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field) field = "Jan-Feb,Aug Mo-Fr,Su 10:00-20:00" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field) field = "week 1-53/2 Fr 09:00-12:00" with self.assertRaises(exceptions.ParseError) as context: oh = main.OHParser(field)
def test_3(self): field = "24/7" oh = main.OHParser(field) # Is it open? dt = datetime.datetime(2016, 2, 1, 15, 30, tzinfo=pytz.timezone("UTC")) self.assertTrue(oh.is_open(dt)) dt = datetime.datetime(2016, 2, 1, 19, 30, tzinfo=pytz.timezone("UTC")) self.assertTrue(oh.is_open(dt)) dt = datetime.datetime(2016, 2, 1, 12, 10, tzinfo=pytz.timezone("UTC")) self.assertTrue(oh.is_open(dt)) # Periods self.assertEqual( oh.get_day(datetime.date.today()).periods[0].beginning.time(), datetime.time.min.replace(tzinfo=pytz.UTC) )
def test_2(self): field = "Mo,Th 09:00-12:00,13:00-19:00" oh = main.OHParser(field) # Is it open? dt = datetime.datetime(2016, 2, 1, 15, 30, tzinfo=pytz.timezone("UTC")) self.assertTrue(oh.is_open(dt)) dt = datetime.datetime(2016, 2, 1, 19, 30, tzinfo=pytz.timezone("UTC")) self.assertFalse(oh.is_open(dt)) dt = datetime.datetime(2016, 2, 1, 12, 10, tzinfo=pytz.timezone("UTC")) self.assertFalse(oh.is_open(dt)) # Next change. self.assertEqual( oh.next_change(dt), datetime.datetime(2016, 2, 1, 13, 0, tzinfo=pytz.timezone("UTC")) )
def test_regulars(self): field = "Mo-Sa 09:00-19:00" oh = main.OHParser(field) field = "Mo,Th 09:00-sunset" oh = main.OHParser(field) field = "Mo,Th (sunrise+02:00)-sunset" oh = main.OHParser(field) field = "Mo,SH 09:00-19:00" oh = main.OHParser(field) field = "Mo,SH 09:00-19:00" oh = main.OHParser(field) field = "Jan 09:00-19:00" oh = main.OHParser(field) field = "Jan-Feb 09:00-19:00" oh = main.OHParser(field) field = "Jan,Aug 09:00-19:00" oh = main.OHParser(field) field = "Jan Mo 09:00-19:00" oh = main.OHParser(field) field = "Jan Mo-Fr 09:00-19:00" oh = main.OHParser(field) field = "Jan,Feb Mo 09:00-19:00" oh = main.OHParser(field) field = "Jan-Feb Mo 09:00-19:00" oh = main.OHParser(field) field = "Jan-Feb Mo-Fr 09:00-19:00" oh = main.OHParser(field) field = "SH Mo 09:00-19:00" oh = main.OHParser(field) field = "SH Mo-Fr 09:00-19:00" oh = main.OHParser(field)
def test_1(self): field = "Mo-Sa 09:00-19:00" oh = main.OHParser(field) dt = datetime.datetime(2017, 1, 2, 15, 30, tzinfo=pytz.timezone("Europe/Paris")) # Is it open? self.assertTrue(oh.is_open(dt))