1
2 """
3 Test parsing of units
4 """
5
6 import unittest, time, datetime
7 import parsedatetime as pdt
8
9 -class test(unittest.TestCase):
10
11 @pdt.tests.assertEqualWithComparator
14
16 self.cal = pdt.Calendar()
17 self.yr, self.mth, self.dy, self.hr, self.mn, self.sec, self.wd, self.yd, self.isdst = time.localtime()
18
20 s = datetime.datetime.now()
21 t = s + datetime.timedelta(minutes=1)
22 h = s - datetime.timedelta(minutes=1)
23
24 start = s.timetuple()
25 target = t.timetuple()
26 history = h.timetuple()
27
28 self.assertExpectedResult(self.cal.parse('1 minutes', start), (target, 2))
29 self.assertExpectedResult(self.cal.parse('1 minute', start), (target, 2))
30 self.assertExpectedResult(self.cal.parse('1 min', start), (target, 2))
31 self.assertExpectedResult(self.cal.parse('1min', start), (target, 2))
32 self.assertExpectedResult(self.cal.parse('1 m', start), (target, 2))
33 self.assertExpectedResult(self.cal.parse('1m', start), (target, 2))
34
35 self.assertExpectedResult(self.cal.parse('1 minutes ago', start), (history, 2))
36 self.assertExpectedResult(self.cal.parse('1 minute ago', start), (history, 2))
37
39 s = datetime.datetime.now()
40 t = s + datetime.timedelta(hours=1)
41 h = s - datetime.timedelta(hours=1)
42
43 start = s.timetuple()
44 target = t.timetuple()
45 history = h.timetuple()
46
47 self.assertExpectedResult(self.cal.parse('1 hour', start), (target, 2))
48 self.assertExpectedResult(self.cal.parse('1 hours', start), (target, 2))
49 self.assertExpectedResult(self.cal.parse('1 hr', start), (target, 2))
50
51 self.assertExpectedResult(self.cal.parse('1 hour ago', start), (history, 2))
52 self.assertExpectedResult(self.cal.parse('1 hours ago', start), (history, 2))
53
55 s = datetime.datetime.now()
56 t = s + datetime.timedelta(days=1)
57
58 start = s.timetuple()
59 target = t.timetuple()
60
61 self.assertExpectedResult(self.cal.parse('1 day', start), (target, 1))
62 self.assertExpectedResult(self.cal.parse('1 days', start), (target, 1))
63 self.assertExpectedResult(self.cal.parse('1days', start), (target, 1))
64 self.assertExpectedResult(self.cal.parse('1 dy', start), (target, 1))
65 self.assertExpectedResult(self.cal.parse('1 d', start), (target, 1))
66
68 s = datetime.datetime.now()
69 t = s + datetime.timedelta(days=-1)
70
71 start = s.timetuple()
72 target = t.timetuple()
73
74 self.assertExpectedResult(self.cal.parse('-1 day', start), (target, 1))
75 self.assertExpectedResult(self.cal.parse('-1 days', start), (target, 1))
76 self.assertExpectedResult(self.cal.parse('-1days', start), (target, 1))
77 self.assertExpectedResult(self.cal.parse('-1 dy', start), (target, 1))
78 self.assertExpectedResult(self.cal.parse('-1 d', start), (target, 1))
79
80 self.assertExpectedResult(self.cal.parse('- 1 day', start), (target, 1))
81 self.assertExpectedResult(self.cal.parse('- 1 days', start), (target, 1))
82 self.assertExpectedResult(self.cal.parse('- 1days', start), (target, 1))
83 self.assertExpectedResult(self.cal.parse('- 1 dy', start), (target, 1))
84 self.assertExpectedResult(self.cal.parse('- 1 d', start), (target, 1))
85
86 self.assertExpectedResult(self.cal.parse('1 day ago', start), (target, 1))
87 self.assertExpectedResult(self.cal.parse('1 days ago', start), (target, 1))
88
89
91 s = datetime.datetime.now()
92 t = s + datetime.timedelta(weeks=1)
93 h = s - datetime.timedelta(weeks=1)
94
95 start = s.timetuple()
96 target = t.timetuple()
97 history = h.timetuple()
98
99 self.assertExpectedResult(self.cal.parse('1 week', start), (target, 1))
100 self.assertExpectedResult(self.cal.parse('1week', start), (target, 1))
101 self.assertExpectedResult(self.cal.parse('1 weeks', start), (target, 1))
102 self.assertExpectedResult(self.cal.parse('1 wk', start), (target, 1))
103 self.assertExpectedResult(self.cal.parse('1 w', start), (target, 1))
104 self.assertExpectedResult(self.cal.parse('1w', start), (target, 1))
105
106 self.assertExpectedResult(self.cal.parse('1 week ago', start), (history, 1))
107 self.assertExpectedResult(self.cal.parse('1 weeks ago', start), (history, 1))
108
110 s = datetime.datetime.now()
111 t = self.cal.inc(s, month=1)
112 h = self.cal.inc(s, month=-1)
113
114 start = s.timetuple()
115 target = t.timetuple()
116 history = h.timetuple()
117
118 self.assertExpectedResult(self.cal.parse('1 month', start), (target, 1))
119 self.assertExpectedResult(self.cal.parse('1 months', start), (target, 1))
120 self.assertExpectedResult(self.cal.parse('1month', start), (target, 1))
121 self.assertExpectedResult(self.cal.parse('1 month ago', start), (history, 1))
122 self.assertExpectedResult(self.cal.parse('1 months ago', start), (history, 1))
123
125 s = datetime.datetime.now()
126 t = self.cal.inc(s, year=1)
127
128 start = s.timetuple()
129 target = t.timetuple()
130
131 self.assertExpectedResult(self.cal.parse('1 year', start), (target, 1))
132 self.assertExpectedResult(self.cal.parse('1 years', start), (target, 1))
133 self.assertExpectedResult(self.cal.parse('1 yr', start), (target, 1))
134 self.assertExpectedResult(self.cal.parse('1 y', start), (target, 1))
135 self.assertExpectedResult(self.cal.parse('1y', start), (target, 1))
136
137
138 if __name__ == "__main__":
139 unittest.main()
140