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

Source Code for Module parsedatetime.tests.TestAustralianLocale

 1   
 2  """ 
 3  Test parsing of simple date and times using the Australian locale 
 4  """ 
 5   
 6  import unittest, time, datetime 
 7  import parsedatetime as pdt 
8 9 -class test(unittest.TestCase):
10 11 @pdt.tests.assertEqualWithComparator
12 - def assertExpectedResult(self, result, check, **kwargs):
13 return pdt.tests.compareResultByTimeTuplesAndFlags(result, check, **kwargs)
14
15 - def setUp(self):
16 self.ptc = pdt.Constants('en_AU', usePyICU=False) 17 self.cal = pdt.Calendar(self.ptc) 18 19 self.yr, self.mth, self.dy, self.hr, self.mn, self.sec, self.wd, self.yd, self.isdst = time.localtime() 20 21 if self.ptc.localeID != 'en_AU': 22 raise unittest.SkipTest('Locale not set to en_AU - check if PyICU is installed')
23
24 - def testTimes(self):
25 start = datetime.datetime(self.yr, self.mth, self.dy, self.hr, self.mn, self.sec).timetuple() 26 target = datetime.datetime(self.yr, self.mth, self.dy, 23, 0, 0).timetuple() 27 28 self.assertExpectedResult(self.cal.parse('11:00:00 PM', start), (target, 2)) 29 self.assertExpectedResult(self.cal.parse('11:00 PM', start), (target, 2)) 30 self.assertExpectedResult(self.cal.parse('11 PM', start), (target, 2)) 31 self.assertExpectedResult(self.cal.parse('11PM', start), (target, 2)) 32 self.assertExpectedResult(self.cal.parse('2300', start), (target, 2)) 33 self.assertExpectedResult(self.cal.parse('23:00', start), (target, 2)) 34 self.assertExpectedResult(self.cal.parse('11p', start), (target, 2)) 35 self.assertExpectedResult(self.cal.parse('11pm', start), (target, 2)) 36 37 target = datetime.datetime(self.yr, self.mth, self.dy, 11, 0, 0).timetuple() 38 39 self.assertExpectedResult(self.cal.parse('11:00:00 AM', start), (target, 2)) 40 self.assertExpectedResult(self.cal.parse('11:00 AM', start), (target, 2)) 41 self.assertExpectedResult(self.cal.parse('11 AM', start), (target, 2)) 42 self.assertExpectedResult(self.cal.parse('11AM', start), (target, 2)) 43 self.assertExpectedResult(self.cal.parse('1100', start), (target, 2)) 44 self.assertExpectedResult(self.cal.parse('11:00', start), (target, 2)) 45 self.assertExpectedResult(self.cal.parse('11a', start), (target, 2)) 46 self.assertExpectedResult(self.cal.parse('11am', start), (target, 2)) 47 48 target = datetime.datetime(self.yr, self.mth, self.dy, 7, 30, 0).timetuple() 49 50 self.assertExpectedResult(self.cal.parse('730', start), (target, 2)) 51 self.assertExpectedResult(self.cal.parse('0730', start), (target, 2)) 52 53 target = datetime.datetime(self.yr, self.mth, self.dy, 17, 30, 0).timetuple() 54 55 self.assertExpectedResult(self.cal.parse('1730', start), (target, 2)) 56 self.assertExpectedResult(self.cal.parse('173000', start), (target, 2))
57
58 - def testDates(self):
59 start = datetime.datetime(self.yr, self.mth, self.dy, self.hr, self.mn, self.sec).timetuple() 60 target = datetime.datetime(2006, 8, 25, self.hr, self.mn, self.sec).timetuple() 61 62 self.assertExpectedResult(self.cal.parse('25-08-2006', start), (target, 1)) 63 self.assertExpectedResult(self.cal.parse('25/08/2006', start), (target, 1)) 64 self.assertExpectedResult(self.cal.parse('25.08.2006', start), (target, 1)) 65 self.assertExpectedResult(self.cal.parse('25-8-06', start), (target, 1)) 66 self.assertExpectedResult(self.cal.parse('25/8/06', start), (target, 1)) 67 68 if self.mth > 8 or (self.mth == 8 and self.dy > 25): 69 target = datetime.datetime(self.yr+1, 8, 25, self.hr, self.mn, self.sec).timetuple() 70 else: 71 target = datetime.datetime(self.yr, 8, 25, self.hr, self.mn, self.sec).timetuple() 72 73 self.assertExpectedResult(self.cal.parse('25-8', start), (target, 1)) 74 self.assertExpectedResult(self.cal.parse('25/8', start), (target, 1)) 75 self.assertExpectedResult(self.cal.parse('25.8', start), (target, 1)) 76 self.assertExpectedResult(self.cal.parse('25-08', start), (target, 1)) 77 self.assertExpectedResult(self.cal.parse('25/08', start), (target, 1))
78 79 80 if __name__ == "__main__": 81 unittest.main() 82