1
2 """
3 Test parsing of 'simple' offsets
4 """
5
6 import unittest, time, datetime
7 import parsedatetime as pdt
8
9
10
11
13 target, t_flag = result
14 value, v_flag = check
15
16 t_yr, t_mth, t_dy, t_hr, t_min, _, _, _, _ = target
17 v_yr, v_mth, v_dy, v_hr, v_min, _, _, _, _ = value
18
19 return ((t_yr == v_yr) and (t_mth == v_mth) and (t_dy == v_dy) and
20 (t_hr == v_hr) and (t_min == v_min)) and (t_flag == v_flag)
21
22
23 -class test(unittest.TestCase):
24
26 self.cal = pdt.Calendar()
27 self.yr, self.mth, self.dy, self.hr, self.mn, self.sec, self.wd, self.yd, self.isdst = time.localtime()
28
30 s = datetime.datetime.now()
31
32 start = s.timetuple()
33 target = s.timetuple()
34
35 self.assertTrue(_compareResults(self.cal.parse('now', start), (target, 2)))
36
38 s = datetime.datetime.now()
39 t = s + datetime.timedelta(minutes=5)
40
41 start = s.timetuple()
42 target = t.timetuple()
43
44 self.assertTrue(_compareResults(self.cal.parse('5 minutes from now', start), (target, 2)))
45 self.assertTrue(_compareResults(self.cal.parse('5 min from now', start), (target, 2)))
46 self.assertTrue(_compareResults(self.cal.parse('5m from now', start), (target, 2)))
47 self.assertTrue(_compareResults(self.cal.parse('in 5 minutes', start), (target, 2)))
48 self.assertTrue(_compareResults(self.cal.parse('in 5 min', start), (target, 2)))
49 self.assertTrue(_compareResults(self.cal.parse('5 minutes', start), (target, 2)))
50 self.assertTrue(_compareResults(self.cal.parse('5 min', start), (target, 2)))
51 self.assertTrue(_compareResults(self.cal.parse('5m', start), (target, 2)))
52
53 self.assertTrue(_compareResults(self.cal.parse('five minutes from now', start), (target, 2)))
54 self.assertTrue(_compareResults(self.cal.parse('five min from now', start), (target, 2)))
55 self.assertTrue(_compareResults(self.cal.parse('in five minutes', start), (target, 2)))
56 self.assertTrue(_compareResults(self.cal.parse('in five min', start), (target, 2)))
57 self.assertTrue(_compareResults(self.cal.parse('five minutes', start), (target, 2)))
58 self.assertTrue(_compareResults(self.cal.parse('five min', start), (target, 2)))
59
61 s = datetime.datetime.now()
62 t = s + datetime.timedelta(minutes=-5)
63
64 start = s.timetuple()
65 target = t.timetuple()
66
67 self.assertTrue(_compareResults(self.cal.parse('5 minutes before now', start), (target, 2)))
68 self.assertTrue(_compareResults(self.cal.parse('5 min before now', start), (target, 2)))
69 self.assertTrue(_compareResults(self.cal.parse('5m before now', start), (target, 2)))
70
71 self.assertTrue(_compareResults(self.cal.parse('five minutes before now', start), (target, 2)))
72 self.assertTrue(_compareResults(self.cal.parse('five min before now', start), (target, 2)))
73
75 s = datetime.datetime.now()
76 t = s + datetime.timedelta(weeks=1)
77
78 start = s.timetuple()
79 target = t.timetuple()
80
81 self.assertTrue(_compareResults(self.cal.parse('in 1 week', start), (target, 1)))
82 self.assertTrue(_compareResults(self.cal.parse('1 week from now', start), (target, 1)))
83 self.assertTrue(_compareResults(self.cal.parse('in one week', start), (target, 1)))
84 self.assertTrue(_compareResults(self.cal.parse('one week from now', start), (target, 1)))
85 self.assertTrue(_compareResults(self.cal.parse('in 7 days', start), (target, 1)))
86 self.assertTrue(_compareResults(self.cal.parse('7 days from now', start), (target, 1)))
87 self.assertTrue(_compareResults(self.cal.parse('in seven days', start), (target, 1)))
88 self.assertTrue(_compareResults(self.cal.parse('seven days from now', start), (target, 1)))
89
90
92 s = datetime.datetime.now()
93 t = s + datetime.timedelta(weeks=-1)
94
95 start = s.timetuple()
96 target = t.timetuple()
97
98 self.assertTrue(_compareResults(self.cal.parse('1 week before now', start), (target, 1)))
99 self.assertTrue(_compareResults(self.cal.parse('one week before now', start), (target, 1)))
100 self.assertTrue(_compareResults(self.cal.parse('7 days before now', start), (target, 1)))
101 self.assertTrue(_compareResults(self.cal.parse('seven days before now', start), (target, 1)))
102
103
105 s = datetime.datetime.now()
106 t = datetime.datetime(self.yr, self.mth, self.dy, 9, 0, 0) + datetime.timedelta(days=1)
107
108 start = s.timetuple()
109 target = t.timetuple()
110
111 self.assertTrue(_compareResults(self.cal.parse('tomorrow', start), (target, 1)))
112 self.assertTrue(_compareResults(self.cal.parse('next day', start), (target, 1)))
113
114 t = datetime.datetime(self.yr, self.mth, self.dy, 9, 0, 0) + datetime.timedelta(days=-1)
115 target = t.timetuple()
116
117 self.assertTrue(_compareResults(self.cal.parse('yesterday', start), (target, 1)))
118
119 t = datetime.datetime(self.yr, self.mth, self.dy, 9, 0, 0)
120 target = t.timetuple()
121
122 self.assertTrue(_compareResults(self.cal.parse('today', start), (target, 1)))
123
124
125 if __name__ == "__main__":
126 unittest.main()
127