예제 #1
0
 def test_error_not_question_only(self):
     field_list = ['?,*', '1,?', '?,SatL,Mon#1']
     for field in field_list:
         with self.subTest(field=field):
             parser = FieldParser(field, 0, 6, word_set=weekday_word_set())
             with self.assertRaises(FieldParseError):
                 parser.parse_weekday_field()
예제 #2
0
 def test_error_non_standard(self):
     field_list = ['?', 'FriL', 'Sat#2']
     for field in field_list:
         non_standard_parser = FieldParser(field,
                                           0,
                                           6,
                                           word_set=weekday_word_set())
         non_standard_parser.parse_weekday_field(non_standard=True)
         standard_parser = FieldParser(field,
                                       0,
                                       6,
                                       word_set=weekday_word_set())
         with self.assertRaises(FieldParseError):
             standard_parser.parse_weekday_field(non_standard=False)
예제 #3
0
 def test_last_range(self):
     for weekday in range(0, 10):
         with self.subTest(weekday=weekday):
             parser = FieldParser('{0}L'.format(weekday), 0, 6)
             if 0 <= weekday <= 6:
                 result = parser.parse_weekday_field()
                 self.assertFalse(result.is_any)
                 self.assertFalse(result.is_blank)
                 self.assertEqual(result.value, [])
                 self.assertEqual(result.last, [weekday])
                 self.assertEqual(result.hash, [])
             else:
                 with self.assertRaises(FieldParseError):
                     parser.parse_weekday_field()
예제 #4
0
 def test_hash_range(self):
     for weekday, week_number in itertools.product(range(0, 10),
                                                   range(0, 10)):
         with self.subTest(weekday=weekday, week_number=week_number):
             parser = FieldParser('{0}#{1}'.format(weekday, week_number), 0,
                                  6)
             if 0 <= weekday <= 6 and 1 <= week_number <= 5:
                 result = parser.parse_weekday_field()
                 self.assertFalse(result.is_any)
                 self.assertFalse(result.is_blank)
                 self.assertEqual(result.value, [])
                 self.assertEqual(result.last, [])
                 self.assertEqual(result.hash, [(weekday, week_number)])
             else:
                 with self.assertRaises(FieldParseError):
                     parser.parse_weekday_field()
예제 #5
0
 def test_last(self):
     parser = FieldParser('5L,1L,5L,3L', 0, 6)
     result = parser.parse_weekday_field()
     self.assertFalse(result.is_any)
     self.assertFalse(result.is_blank)
     self.assertEqual(result.value, [])
     self.assertEqual(result.last, [1, 3, 5])
     self.assertEqual(result.hash, [])
예제 #6
0
 def test_standard(self):
     parser = FieldParser('Sun,Sat', 0, 6, word_set=weekday_word_set())
     result = parser.parse_weekday_field()
     self.assertFalse(result.is_any)
     self.assertFalse(result.is_blank)
     self.assertEqual(result.value, [0, 6])
     self.assertEqual(result.last, [])
     self.assertEqual(result.hash, [])
예제 #7
0
 def test_hash(self):
     parser = FieldParser('0#1,2#3,4#5,6#1,2#3,1#2,3#4', 0, 6)
     result = parser.parse_weekday_field()
     self.assertFalse(result.is_any)
     self.assertFalse(result.is_blank)
     self.assertEqual(result.value, [])
     self.assertEqual(result.last, [])
     self.assertEqual(result.hash, [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5),
                                    (6, 1)])
예제 #8
0
 def test_not_standard(self):
     parser = FieldParser('Mon,Wed,Thu,Tue#2,Tue#4,FriL',
                          0,
                          6,
                          word_set=weekday_word_set())
     result = parser.parse_weekday_field()
     self.assertFalse(result.is_any)
     self.assertFalse(result.is_blank)
     self.assertEqual(result.value, [1, 3, 4])
     self.assertEqual(result.last, [5])
     self.assertEqual(result.hash, [(2, 2), (2, 4)])
예제 #9
0
 def test_hash_with_word_set(self):
     parser = FieldParser('Sat#4,SAT#2,sat#4',
                          0,
                          6,
                          word_set=weekday_word_set())
     result = parser.parse_weekday_field()
     self.assertFalse(result.is_any)
     self.assertFalse(result.is_blank)
     self.assertEqual(result.value, [])
     self.assertEqual(result.last, [])
     self.assertEqual(result.hash, [(6, 2), (6, 4)])
예제 #10
0
 def test_last_with_word_set(self):
     parser = FieldParser('FriL,MONL,friL',
                          0,
                          6,
                          word_set=weekday_word_set())
     result = parser.parse_weekday_field()
     self.assertFalse(result.is_any)
     self.assertFalse(result.is_blank)
     self.assertEqual(result.value, [])
     self.assertEqual(result.last, [1, 5])
     self.assertEqual(result.hash, [])
예제 #11
0
 def test_error_not_use_slash(self):
     parser = FieldParser('*/2', 0, 6)
     with self.assertRaises(FieldParseError):
         parser.parse_weekday_field(use_slash=False)