Package parsedatetime :: Package tests :: Module TestSimpleOffsetsHours
[hide private]
[frames] | no frames]

Source Code for Module parsedatetime.tests.TestSimpleOffsetsHours

 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
11 - def assertExpectedResult(self, result, check, **kwargs):
12 return pdt.tests.compareResultByTimeTuplesAndFlags(result, check, **kwargs)
13
14 - def setUp(self):
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
18 - def testHoursFromNow(self):
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 # Test "an" 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 # No match, should require a word boundary 53 self.assertExpectedResult(self.cal.parse('anhour', start), (start, 0)) 54 self.assertExpectedResult(self.cal.parse('an hamburger', start), (start, 0))
55
56 - def testHoursBeforeNow(self):
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 # Test "an" 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