summaryrefslogtreecommitdiff
path: root/tests/test_dates.py
diff options
context:
space:
mode:
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>2017-06-16 20:50:28 +0100
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>2017-06-16 21:09:23 +0100
commit7254587838211258dfc71e466556f951f40467e0 (patch)
tree1d12e004e31b4748fb8be13bcb26fe4db0566cd7 /tests/test_dates.py
parent45f7ec73be114781c506e9b05fdc9772aef82060 (diff)
downloadpsycopg2-fix-570.tar.gz
Add 6 hours per year converting from intervalfix-570
This is the same operation performed by postgres when extracting the number of seconds of an interval: =# select extract(epoch from '1 year'::interval) / 60 / 60 / 24; ?column? ---------- 365.25 This way `extract(epoch from interval)` will match the resulting `timedelta.total_seconds()`. Close #570
Diffstat (limited to 'tests/test_dates.py')
-rwxr-xr-xtests/test_dates.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/test_dates.py b/tests/test_dates.py
index a541558..d556d78 100755
--- a/tests/test_dates.py
+++ b/tests/test_dates.py
@@ -223,6 +223,32 @@ class DatetimeTests(ConnectingTestCase, CommonDatetimeTestsMixin):
def test_parse_negative_interval(self):
self._check_interval('-42 days -12:34:56.123456')
+ def test_parse_mixied_signs_interval(self):
+ # Intervals in postgres have 4 blocks
+ # -1 year -2 mons +3 days -04:05:06
+ # each can be missing, present with no sign, positive, negative
+ # test all the combos
+ def cases(s):
+ return ['', s, '-' + s, '+' + s]
+
+ from itertools import product
+ for parts in product(
+ cases('1 year'), cases('2 months'),
+ cases('3 days'), cases('04:05:06')):
+ s = ' '.join(parts)
+ if s.isspace():
+ continue
+ self._check_interval(s)
+
+ def test_parse_interval_element(self):
+ for i in range(-1000, 1100, 100):
+ self._check_interval('%s years' % i)
+ self._check_interval('%s months' % i)
+ self._check_interval('%s days' % i)
+ self._check_interval('%s hours' % i)
+ self._check_interval('%s minutes' % i)
+ self._check_interval('%s seconds' % i)
+
def test_parse_infinity(self):
value = self.DATETIME('-infinity', self.curs)
self.assertEqual(str(value), '0001-01-01 00:00:00')