Ejemplo n.º 1
0
 def test_captured_pattern_has_pm(self):
     input_text = 'Your dental appointment at 4 pm in the evening.'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn('4 pm', parser[0])
     self.assertEqual(parser[0][1].strftime('%d'), datetime.today().strftime('%d'))
     self.assertEqual(parser[0][1].strftime('%H'), '16')
     self.assertEqual(len(parser), 1)
Ejemplo n.º 2
0
 def test_captured_pattern_is_on_day(self):
     input_text = 'My birthday is on January 2nd.'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn('January 2nd', parser[0])
     self.assertEqual(parser[0][1].month, 1)
     self.assertEqual(parser[0][1].day, 2)
     self.assertEqual(len(parser), 1)
Ejemplo n.º 3
0
 def test_captured_pattern_last_quarter_of_year(self):
     input_text = 'Last quarter of 2015'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn(input_text, parser[0])
     self.assertEqual(parser[0][1][0].strftime('%d-%m-%Y'), '01-09-2015')
     self.assertEqual(parser[0][1][1].strftime('%d-%m-%Y'), '31-12-2015')
     self.assertEqual(len(parser), 1)
Ejemplo n.º 4
0
 def test_captured_pattern_has_pm_case_insensitive_3(self):
     input_text = '3Pm'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn('3Pm', parser[0])
     self.assertEqual(parser[0][1].strftime('%d'), datetime.today().strftime('%d'))
     self.assertEqual(parser[0][1].strftime('%H'), '15')
     self.assertEqual(len(parser), 1)
Ejemplo n.º 5
0
 def test_captured_pattern_has_am(self):
     input_text = 'You have to woke up at 5 am in the morning'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn('5 am', parser[0])
     self.assertEqual(parser[0][1].strftime('%d'), datetime.today().strftime('%d'))
     self.assertEqual(parser[0][1].strftime('%H'), '05')
     self.assertEqual(len(parser), 1)
Ejemplo n.º 6
0
 def test_captured_pattern_is_next_x_years_case_insensitive(self):
     input_text = 'next 43 Years'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn('next 43 Year', parser[0])
     self.assertEqual(
         parser[0][1].strftime('%d-%m-%Y'),
         (datetime.today() + timedelta(43 * 365)).strftime('%d-%m-%Y')
     )
     self.assertEqual(len(parser), 1)
Ejemplo n.º 7
0
 def test_captured_pattern_is_next_ten_years(self):
     input_text = 'Next 10 years'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn('Next 10 year', parser[0])
     self.assertEqual(
         parser[0][1].strftime('%d-%m-%Y'),
         (datetime.today() + timedelta(10 * 365)).strftime('%d-%m-%Y')
     )
     self.assertEqual(len(parser), 1)
Ejemplo n.º 8
0
 def test_captured_pattern_is_next_eight_days(self):
     input_text = 'Next 8 days'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn(input_text, parser[0])
     self.assertEqual(
         parser[0][1].strftime('%d-%m-%Y'),
         (datetime.today() + timedelta(days=8)).strftime('%d-%m-%Y')
     )
     self.assertEqual(len(parser), 1)
Ejemplo n.º 9
0
 def test_captured_pattern_tomorrow(self):
     input_text = 'tomorrow'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn(input_text, parser[0])
     self.assertEqual(
         parser[0][1].strftime('%d'),
         (datetime.today() + timedelta(days=1)).strftime('%d')
     )
     self.assertEqual(len(parser), 1)
Ejemplo n.º 10
0
    def test_captured_pattern_before_tomorrow(self):
        input_text = 'day before tomorrow'
        parser = parsing.datetime_parsing(input_text)
        self.assertIn(input_text, parser[0])
        self.assertEqual(
            parser[0][1].strftime('%d'),
            (datetime.today() - timedelta(days=0)).strftime('%d')
        )
        self.assertEqual(len(parser), 1)

        input_text = '2 days before'
        parser = parsing.datetime_parsing(input_text)
        self.assertIn(input_text, parser[0])
        self.assertEqual(
            parser[0][1].strftime('%d'),
            (datetime.today() - timedelta(days=2)).strftime('%d')
        )
        self.assertEqual(len(parser), 1)
Ejemplo n.º 11
0
 def test_captured_pattern_days_later(self):
     input_text = '10 days later'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn(input_text, parser[0])
     self.assertEqual(
         parser[0][1].strftime('%d-%m-%y'),
         parsing.date_from_duration(self.base_date, 10, 'days', 'later').strftime('%d-%m-%y')
     )
     self.assertEqual(len(parser), 1)
Ejemplo n.º 12
0
 def test_captured_pattern_next_weekday(self):
     input_text = 'Next monday'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn(input_text, parser[0])
     self.assertEqual(
         parser[0][1].strftime('%d-%m-%y'),
         parsing.next_week_day(self.base_date, 0).strftime('%d-%m-%y')
     )
     self.assertEqual(len(parser), 1)
Ejemplo n.º 13
0
 def test_captured_pattern_minutes_from_now(self):
     input_text = '25 minutes from now'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn(input_text, parser[0])
     self.assertEqual(
         parser[0][1].strftime('%d-%m-%y'),
         parsing.date_from_duration(
             self.base_date, 25, 'minutes', 'from now'
         ).strftime('%d-%m-%y')
     )
     self.assertEqual(len(parser), 1)
Ejemplo n.º 14
0
 def test_captured_pattern_is_next_x_months_case_insensitive(self):
     import calendar
     input_text = 'next 55 Months'
     parser = parsing.datetime_parsing(input_text)
     relative_date = datetime.today()
     month = relative_date.month - 1 + 55
     year = relative_date.year + month // 12
     month = month % 12 + 1
     day = min(relative_date.day, calendar.monthrange(year, month)[1])
     self.assertIn('next 55 Month', parser[0])
     self.assertEqual(
         parser[0][1].strftime('%d-%m-%Y'), datetime(year, month, day).strftime('%d-%m-%Y')
     )
     self.assertEqual(len(parser), 1)
Ejemplo n.º 15
0
 def test_captured_pattern_two_days(self):
     input_text = 'Monday and Friday'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn('Monday', parser[0])
     self.assertIn('Friday', parser[1])
     self.assertEqual(
         parser[0][1].strftime('%d'),
         parsing.this_week_day(self.base_date, 0).strftime('%d')
     )
     self.assertEqual(
         parser[1][1].strftime('%d'),
         parsing.this_week_day(self.base_date, 4).strftime('%d')
     )
     self.assertEqual(len(parser), 2)
Ejemplo n.º 16
0
 def test_captured_pattern_is_on_day_of_year_variation2(self):
     input_text = 'My birthday is on 2nd January 2014.'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn('2nd January 2014', parser[0])
     self.assertEqual(parser[0][1].strftime('%d-%m-%Y'), '02-01-2014')
     self.assertEqual(len(parser), 1)
Ejemplo n.º 17
0
 def test_captured_pattern_today(self):
     input_text = 'today'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn(input_text, parser[0])
     self.assertEqual(parser[0][1].strftime('%d'), datetime.today().strftime('%d'))
     self.assertEqual(len(parser), 1)
Ejemplo n.º 18
0
 def test_captured_pattern_year(self):
     input_text = '2010'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn(input_text, parser[0])
     self.assertEqual(parser[0][1].strftime('%Y'), input_text)
     self.assertEqual(len(parser), 1)
Ejemplo n.º 19
0
 def test_captured_pattern_is_on_date(self):
     input_text = 'The event is on Monday 12 January 2012'
     parser = parsing.datetime_parsing(input_text)
     self.assertIn('Monday 12 January 2012', parser[0])
     self.assertEqual(parser[0][1], datetime(2012, 1, 12))
     self.assertEqual(len(parser), 1)