|
5 | 5 | import unittest2 as unittest
|
6 | 6 | import arrow
|
7 | 7 | from datetime import datetime as pydatetime
|
| 8 | +from datetime import timedelta |
8 | 9 | from datemath import dm, datemath
|
9 | 10 | from datemath.helpers import DateMathException as DateMathException
|
10 | 11 | from dateutil import tz
|
@@ -40,7 +41,14 @@ def testParse(self):
|
40 | 41 | self.assertEqual(dm('2016-01-01', tz='US/Eastern'), pydatetime(2016, 1, 1, tzinfo=tz.gettz('US/Eastern')))
|
41 | 42 | self.assertEqual(datemath('2016-01-01T01:00:00', tz='US/Central'), pydatetime(2016, 1, 1, 1, 0, 0, tzinfo=tz.gettz('US/Central')))
|
42 | 43 | self.assertEqual(datemath('2016-01-01T02:00:00', tz='US/Eastern'), pydatetime(2016, 1, 1, 2, tzinfo=tz.gettz('US/Eastern')))
|
43 |
| - |
| 44 | + # TZ offset inside of date string |
| 45 | + self.assertEqual(datemath('2016-01-01T16:20:00.5+12:00'), pydatetime(2016, 1, 1, 16, 20, 0, 500000, tzinfo=tz.tzoffset(None, timedelta(hours=12)))) |
| 46 | + self.assertEqual(datemath('2016-01-01T16:20:00.5-05:00'), pydatetime(2016, 1, 1, 16, 20, 0, 500000, tzinfo=tz.tzoffset(None, timedelta(hours=-5)))) |
| 47 | + self.assertEqual(datemath('2016-01-01T16:20:00.5-00:00'), pydatetime(2016, 1, 1, 16, 20, 0, 500000, tzinfo=tz.tzoffset(None, timedelta(hours=0)))) |
| 48 | + # TZ offset inside of date string with datemath |
| 49 | + self.assertEqual(datemath('2016-01-01T16:20:00.5+12:00||+1d'), pydatetime(2016, 1, 2, 16, 20, 0, 500000, tzinfo=tz.tzoffset(None, timedelta(hours=12)))) |
| 50 | + self.assertEqual(datemath('2016-01-01T16:20:00.6+12:00||+2d+1h'), pydatetime(2016, 1, 3, 17, 20, 0, 600000, tzinfo=tz.tzoffset(None, timedelta(hours=12)))) |
| 51 | + |
44 | 52 | # relitive formats
|
45 | 53 | # addition
|
46 | 54 | self.assertEqual(dm('+1s').format(iso8601), arrow.utcnow().shift(seconds=+1).format(iso8601))
|
|
0 commit comments