1 """
2 Test parsing of 'simple' offsets
3 """
4
5 import unittest, time, datetime
6 import parsedatetime as pdt
7
8 -class test(unittest.TestCase):
9
10 @pdt.tests.assertEqualWithComparator
13
15 self.cal = pdt.Calendar()
16 self.yr, self.mth, self.dy, self.hr, self.mn, self.sec, self.wd, self.yd, self.isdst = time.localtime()
17
19 s = datetime.datetime.now()
20 t = s + datetime.timedelta(hours=5)
21
22 start = s.timetuple()
23 target = t.timetuple()
24
25 self.assertExpectedResult(self.cal.parse('5 hours from now', start), (target, 2))
26 self.assertExpectedResult(self.cal.parse('5 hour from now', start), (target, 2))
27 self.assertExpectedResult(self.cal.parse('5 hr from now', start), (target, 2))
28 self.assertExpectedResult(self.cal.parse('in 5 hours', start), (target, 2))
29 self.assertExpectedResult(self.cal.parse('in 5 hour', start), (target, 2))
30 self.assertExpectedResult(self.cal.parse('5 hours', start), (target, 2))
31 self.assertExpectedResult(self.cal.parse('5 hr', start), (target, 2))
32 self.assertExpectedResult(self.cal.parse('5h', start), (target, 2))
33
34 self.assertExpectedResult(self.cal.parse('five hours from now', start), (target, 2))
35 self.assertExpectedResult(self.cal.parse('five hour from now', start), (target, 2))
36 self.assertExpectedResult(self.cal.parse('five hr from now', start), (target, 2))
37 self.assertExpectedResult(self.cal.parse('in five hours', start), (target, 2))
38 self.assertExpectedResult(self.cal.parse('in five hour', start), (target, 2))
39 self.assertExpectedResult(self.cal.parse('five hours', start), (target, 2))
40 self.assertExpectedResult(self.cal.parse('five hr', start), (target, 2))
41
42
43 t = s + datetime.timedelta(hours=1)
44 target = t.timetuple()
45
46 self.assertExpectedResult(self.cal.parse('an hour from now', start), (target, 2))
47 self.assertExpectedResult(self.cal.parse('in an hour', start), (target, 2))
48 self.assertExpectedResult(self.cal.parse('an hour', start), (target, 2))
49 self.assertExpectedResult(self.cal.parse('an hr', start), (target, 2))
50 self.assertExpectedResult(self.cal.parse('an h', start), (target, 2))
51
52
53 self.assertExpectedResult(self.cal.parse('anhour', start), (start, 0))
54 self.assertExpectedResult(self.cal.parse('an hamburger', start), (start, 0))
55
57 s = datetime.datetime.now()
58 t = s + datetime.timedelta(hours=-5)
59
60 start = s.timetuple()
61 target = t.timetuple()
62
63 self.assertExpectedResult(self.cal.parse('5 hours before now', start), (target, 2))
64 self.assertExpectedResult(self.cal.parse('5 hr before now', start), (target, 2))
65 self.assertExpectedResult(self.cal.parse('5h before now', start), (target, 2))
66
67 self.assertExpectedResult(self.cal.parse('five hours before now', start), (target, 2))
68 self.assertExpectedResult(self.cal.parse('five hr before now', start), (target, 2))
69
70
71 t = s + datetime.timedelta(hours=-1)
72 target = t.timetuple()
73
74 self.assertExpectedResult(self.cal.parse('an hour before now', start), (target, 2))
75 self.assertExpectedResult(self.cal.parse('an hr before now', start), (target, 2))
76 self.assertExpectedResult(self.cal.parse('an h before now', start), (target, 2))
77
78
79 if __name__ == "__main__":
80 unittest.main()
81