Exemplo n.º 1
0
 def test_(self):
     date = RecurringEvent(NOW)
     val = date.parse(string)
     expected_params = expected
     known_failure = False
     if isinstance(expected, ExpectedFailure):
         known_failure = True
         expected_params = expected.correct_value
     try:
         if expected_params is None:
             self.assertTrue(
                 val is None or date.get_params().keys() == ["interval"],
                 "Non-date error: '%s' -> '%s', expected '%s'" % (string, val, expected_params),
             )
         elif isinstance(expected_params, datetime.datetime) or isinstance(expected_params, datetime.date):
             if isinstance(expected_params, datetime.datetime):
                 self.assertEqual(
                     val,
                     expected_params,
                     "Date parse error: '%s' -> '%s', expected '%s'" % (string, val, expected_params),
                 )
             else:
                 self.assertEqual(
                     val.date(),
                     expected_params,
                     "Date parse error: '%s' -> '%s', expected '%s'" % (string, val, expected_params),
                 )
         else:
             actual_params = date.get_params()
             for k, v in expected_params.items():
                 av = actual_params.pop(k, None)
                 self.assertEqual(
                     av,
                     v,
                     "Rule mismatch on rule '%s' for '%s'. Expected %s, got %s\nRules: %s"
                     % (k, string, v, av, date.get_params()),
                 )
             # make sure any extra params are empty/false
             for k, v in actual_params.items():
                 self.assertFalse(v)
             # ensure rrule string can be parsed by dateutil
             rrule.rrulestr(val)
     except AssertionError as e:
         if known_failure:
             print("Expected failure:", expected_params)
             return
         raise e
     if known_failure:
         raise AssertionError("Known failure passed:", expected_params, string)
Exemplo n.º 2
0
 def test_(self):
     date = RecurringEvent(NOW)
     val = date.parse(string)
     expected_params = expected
     known_failure = False
     if isinstance(expected, ExpectedFailure):
         known_failure = True
         expected_params = expected.correct_value
     try:
         if expected_params is None:
             self.assertTrue(
                 val is None or date.get_params().keys() == ['interval'],
                 "Non-date error: '%s' -> '%s', expected '%s'" %
                 (string, val, expected_params))
         elif isinstance(expected_params, datetime.datetime) or isinstance(
                 expected_params, datetime.date):
             if isinstance(expected_params, datetime.datetime):
                 self.assertEqual(
                     val, expected_params,
                     "Date parse error: '%s' -> '%s', expected '%s'" %
                     (string, val, expected_params))
             else:
                 self.assertEqual(
                     val.date(), expected_params,
                     "Date parse error: '%s' -> '%s', expected '%s'" %
                     (string, val, expected_params))
         else:
             actual_params = date.get_params()
             for k, v in expected_params.items():
                 av = actual_params.pop(k, None)
                 self.assertEqual(
                     av, v,
                     "Rule mismatch on rule '%s' for '%s'. Expected %s, got %s\nRules: %s"
                     % (k, string, v, av, date.get_params()))
             # make sure any extra params are empty/false
             for k, v in actual_params.items():
                 self.assertFalse(v)
             # ensure rrule string can be parsed by dateutil
             rrule.rrulestr(val)
     except AssertionError as e:
         if known_failure:
             print("Expected failure:", expected_params)
             return
         raise e
     if known_failure:
         raise AssertionError("Known failure passed:", expected_params,
                              string)
Exemplo n.º 3
0
 def test_rrule_string(self):
     string = 'every day starting feb 2'
     date = RecurringEvent(NOW)
     date.parse(string)
     expected = """DTSTART:20100202\nRRULE:FREQ=DAILY;INTERVAL=1"""
     self.assertEqual(expected, date.get_RFC_rrule())
Exemplo n.º 4
0
 def test_return_non_date(self):
     string = 'remember to call mitchell'
     date = RecurringEvent()
     ret = date.parse(string)
     self.assertFalse(ret)
Exemplo n.º 5
0
 def test_return_non_recurring2(self):
     string = 'next wednesday'
     date = RecurringEvent()
     ret = date.parse(string)
     self.assertTrue(isinstance(ret, datetime.datetime))
Exemplo n.º 6
0
 def test_return_non_recurring(self):
     string = 'march 3rd, 2001'
     date = RecurringEvent()
     ret = date.parse(string)
     self.assertTrue(isinstance(ret, datetime.datetime))
Exemplo n.º 7
0
 def test_return_recurring(self):
     string = 'every day'
     date = RecurringEvent()
     ret = date.parse(string)
     self.assertTrue(isinstance(ret, str))
Exemplo n.º 8
0
def parse(s, now=None):
    return RecurringEvent(now).parse(s)
Exemplo n.º 9
0
 def test_rrule_string(self):
     string = 'every day starting feb 2'
     date = RecurringEvent(NOW)
     date.parse(string)
     expected = """DTSTART:20100202\nRRULE:FREQ=DAILY;INTERVAL=1"""
     self.assertEqual(expected, date.get_RFC_rrule())
Exemplo n.º 10
0
 def test_return_non_date(self):
     string = 'remember to call mitchell'
     date = RecurringEvent()
     ret = date.parse(string)
     self.assertFalse(ret)
Exemplo n.º 11
0
 def test_return_non_recurring2(self):
     string = 'next wednesday'
     date = RecurringEvent()
     ret = date.parse(string)
     self.assertTrue(isinstance(ret, datetime.datetime))
Exemplo n.º 12
0
 def test_return_non_recurring(self):
     string = 'march 3rd, 2001'
     date = RecurringEvent()
     ret = date.parse(string)
     self.assertTrue(isinstance(ret, datetime.datetime))
Exemplo n.º 13
0
 def test_return_recurring(self):
     string = 'every day'
     date = RecurringEvent()
     ret = date.parse(string)
     self.assertTrue(isinstance(ret, str))