1
2 """
3 Test parsing of units
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 t = s + datetime.timedelta(minutes=1)
32
33 start = s.timetuple()
34 target = t.timetuple()
35
36 self.assertTrue(_compareResults(self.cal.parse('1 minute', start), (target, 2)))
37 self.assertTrue(_compareResults(self.cal.parse('1 minutes', start), (target, 2)))
38 self.assertTrue(_compareResults(self.cal.parse('1 min', start), (target, 2)))
39 self.assertTrue(_compareResults(self.cal.parse('1min', start), (target, 2)))
40 self.assertTrue(_compareResults(self.cal.parse('1 m', start), (target, 2)))
41 self.assertTrue(_compareResults(self.cal.parse('1m', start), (target, 2)))
42
44 s = datetime.datetime.now()
45 t = s + datetime.timedelta(hours=1)
46
47 start = s.timetuple()
48 target = t.timetuple()
49
50 self.assertTrue(_compareResults(self.cal.parse('1 hour', start), (target, 2)))
51 self.assertTrue(_compareResults(self.cal.parse('1 hours', start), (target, 2)))
52 self.assertTrue(_compareResults(self.cal.parse('1 hr', start), (target, 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.assertTrue(_compareResults(self.cal.parse('1 day', start), (target, 1)))
62 self.assertTrue(_compareResults(self.cal.parse('1 days', start), (target, 1)))
63 self.assertTrue(_compareResults(self.cal.parse('1days', start), (target, 1)))
64 self.assertTrue(_compareResults(self.cal.parse('1 dy', start), (target, 1)))
65 self.assertTrue(_compareResults(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.assertTrue(_compareResults(self.cal.parse('-1 day', start), (target, 1)))
75 self.assertTrue(_compareResults(self.cal.parse('-1 days', start), (target, 1)))
76 self.assertTrue(_compareResults(self.cal.parse('-1days', start), (target, 1)))
77 self.assertTrue(_compareResults(self.cal.parse('-1 dy', start), (target, 1)))
78 self.assertTrue(_compareResults(self.cal.parse('-1 d', start), (target, 1)))
79
80 self.assertTrue(_compareResults(self.cal.parse('- 1 day', start), (target, 1)))
81 self.assertTrue(_compareResults(self.cal.parse('- 1 days', start), (target, 1)))
82 self.assertTrue(_compareResults(self.cal.parse('- 1days', start), (target, 1)))
83 self.assertTrue(_compareResults(self.cal.parse('- 1 dy', start), (target, 1)))
84 self.assertTrue(_compareResults(self.cal.parse('- 1 d', start), (target, 1)))
85
87 s = datetime.datetime.now()
88 t = s + datetime.timedelta(weeks=1)
89
90 start = s.timetuple()
91 target = t.timetuple()
92
93 self.assertTrue(_compareResults(self.cal.parse('1 week', start), (target, 1)))
94 self.assertTrue(_compareResults(self.cal.parse('1week', start), (target, 1)))
95 self.assertTrue(_compareResults(self.cal.parse('1 weeks', start), (target, 1)))
96 self.assertTrue(_compareResults(self.cal.parse('1 wk', start), (target, 1)))
97 self.assertTrue(_compareResults(self.cal.parse('1 w', start), (target, 1)))
98 self.assertTrue(_compareResults(self.cal.parse('1w', start), (target, 1)))
99
101 s = datetime.datetime.now()
102 t = self.cal.inc(s, month=1)
103
104 start = s.timetuple()
105 target = t.timetuple()
106
107 self.assertTrue(_compareResults(self.cal.parse('1 month', start), (target, 1)))
108 self.assertTrue(_compareResults(self.cal.parse('1 months', start), (target, 1)))
109 self.assertTrue(_compareResults(self.cal.parse('1month', start), (target, 1)))
110
112 s = datetime.datetime.now()
113 t = self.cal.inc(s, year=1)
114
115 start = s.timetuple()
116 target = t.timetuple()
117
118 self.assertTrue(_compareResults(self.cal.parse('1 year', start), (target, 1)))
119 self.assertTrue(_compareResults(self.cal.parse('1 years', start), (target, 1)))
120 self.assertTrue(_compareResults(self.cal.parse('1 yr', start), (target, 1)))
121 self.assertTrue(_compareResults(self.cal.parse('1 y', start), (target, 1)))
122 self.assertTrue(_compareResults(self.cal.parse('1y', start), (target, 1)))
123
124
125 if __name__ == "__main__":
126 unittest.main()
127