1 import unittest, time, datetime
2 import parsedatetime as pdt
5 """Update en locale to include a bunch of different abbreviations"""
7 super(pdtLocale_en, self).__init__(localeID='en_us')
8 self.Weekdays = [ 'monday', 'tuesday', 'wednesday',
9 'thursday', 'friday', 'saturday', 'sunday',
10 ]
11 self.shortWeekdays = [ 'mon|mond', 'tue|tues', 'wed|wedn',
12 'thu|thur|thurs', 'fri|frid', 'sat|sa', 'sun|su',
13 ]
14 self.Months = [ 'january', 'february', 'march',
15 'april', 'may', 'june',
16 'july', 'august', 'september',
17 'october', 'november', 'december',
18 ]
19 self.shortMonths = [ 'jan|janu', 'feb|febr', 'mar|marc',
20 'apr|apri', 'may', 'jun|june',
21 'jul', 'aug|augu', 'sep|sept',
22 'oct|octo', 'nov|novem', 'dec|decem',
23 ]
24
25 -class test(unittest.TestCase):
26
27
28 @pdt.tests.assertEqualWithComparator
31
33 pdt.pdtLocales['en_us'] = pdtLocale_en
34 self.ptc = pdt.Constants('en_us', usePyICU=False)
35 self.cal = pdt.Calendar(self.ptc)
36 self.yr, self.mth, self.dy, self.hr, self.mn, self.sec, self.wd, self.yd, self.isdst = time.localtime()
37
38
40 start = datetime.datetime(2014, 10, 25, self.hr, self.mn, self.sec).timetuple()
41
42 target = datetime.datetime(2014, 10, 26, self.hr, self.mn, self.sec).timetuple()
43 self.assertExpectedResult(self.cal.parse('sunday', start), (target, 1))
44 self.assertExpectedResult(self.cal.parse('sun', start), (target, 1))
45 self.assertExpectedResult(self.cal.parse('su', start), (target, 1))
46
47 target = datetime.datetime(2014, 10, 27, self.hr, self.mn, self.sec).timetuple()
48 self.assertExpectedResult(self.cal.parse('Monday', start), (target, 1))
49 self.assertExpectedResult(self.cal.parse('mon', start), (target, 1))
50 self.assertExpectedResult(self.cal.parse('mond', start), (target, 1))
51
52 target = datetime.datetime(2014, 10, 28, self.hr, self.mn, self.sec).timetuple()
53 self.assertExpectedResult(self.cal.parse('tuesday', start), (target, 1))
54 self.assertExpectedResult(self.cal.parse('tues', start), (target, 1))
55 self.assertExpectedResult(self.cal.parse('tue', start), (target, 1))
56
57 target = datetime.datetime(2014, 10, 29, self.hr, self.mn, self.sec).timetuple()
58 self.assertExpectedResult(self.cal.parse('wednesday', start), (target, 1))
59 self.assertExpectedResult(self.cal.parse('wedn', start), (target, 1))
60 self.assertExpectedResult(self.cal.parse('wed', start), (target, 1))
61
62 target = datetime.datetime(2014, 10, 30, self.hr, self.mn, self.sec).timetuple()
63 self.assertExpectedResult(self.cal.parse('thursday', start), (target, 1))
64 self.assertExpectedResult(self.cal.parse('thu', start), (target, 1))
65 self.assertExpectedResult(self.cal.parse('thur', start), (target, 1))
66 self.assertExpectedResult(self.cal.parse('thurs', start), (target, 1))
67
68 target = datetime.datetime(2014, 10, 31, self.hr, self.mn, self.sec).timetuple()
69 self.assertExpectedResult(self.cal.parse('friday', start), (target, 1))
70 self.assertExpectedResult(self.cal.parse('fri', start), (target, 1))
71 self.assertExpectedResult(self.cal.parse('frid', start), (target, 1))
72
73 target = datetime.datetime(2014, 11, 1, self.hr, self.mn, self.sec).timetuple()
74 self.assertExpectedResult(self.cal.parse('saturday', start), (target, 1))
75 self.assertExpectedResult(self.cal.parse('sat', start), (target, 1))
76 self.assertExpectedResult(self.cal.parse('sa', start), (target, 1))
77
79 start = datetime.datetime(2014,1, 1, self.hr, self.mn, self.sec).timetuple()
80 for dates, expected_date in [
81 ('jan|janu|january', datetime.datetime(2014, 1, 1, self.hr, self.mn, self.sec).timetuple() ),
82 ('feb|febr|february', datetime.datetime(2014, 2, 1, self.hr, self.mn, self.sec).timetuple() ),
83 ('mar|marc|march', datetime.datetime(2014, 3, 1, self.hr, self.mn, self.sec).timetuple() ),
84 ('apr|apri|april', datetime.datetime(2014, 4, 1, self.hr, self.mn, self.sec).timetuple() ),
85 ('may|may', datetime.datetime(2014, 5, 1, self.hr, self.mn, self.sec).timetuple() ),
86 ('jun|june', datetime.datetime(2014, 6, 1, self.hr, self.mn, self.sec).timetuple() ),
87 ('jul|july', datetime.datetime(2014, 7, 1, self.hr, self.mn, self.sec).timetuple() ),
88 ('aug|augu|august', datetime.datetime(2014, 8, 1, self.hr, self.mn, self.sec).timetuple() ),
89 ('sep|sept|september', datetime.datetime(2014, 9, 1, self.hr, self.mn, self.sec).timetuple() ),
90 ('oct|octo|october', datetime.datetime(2014, 10, 1, self.hr, self.mn, self.sec).timetuple() ),
91 ('nov|novem|november', datetime.datetime(2014, 11, 1, self.hr, self.mn, self.sec).timetuple() ),
92 ('dec|decem|december', datetime.datetime(2014, 12, 1, self.hr, self.mn, self.sec).timetuple() )
93 ]:
94 for dateText in dates.split("|"):
95
96 self.assertExpectedResult(self.cal.parse(dateText, start), (expected_date, 1))
97