summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>2017-06-16 19:41:52 +0100
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>2017-06-16 19:41:52 +0100
commit2b5e1318316a064bbc598ab95d9b214fbda3c99e (patch)
tree9025e5bc8622485aaad2aecfbc955c381cc43eb1 /tests
parent324e56cfa354a737665068ffdecfb1fc17bb8c12 (diff)
parent70a2d2238e84ea8382bf994f2f79a008dbf5984d (diff)
downloadpsycopg2-2b5e1318316a064bbc598ab95d9b214fbda3c99e.tar.gz
Merge branch 'fix-558'
Diffstat (limited to 'tests')
-rwxr-xr-xtests/test_dates.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/test_dates.py b/tests/test_dates.py
index 83eea32..0b790d0 100755
--- a/tests/test_dates.py
+++ b/tests/test_dates.py
@@ -411,6 +411,27 @@ class DatetimeTests(ConnectingTestCase, CommonDatetimeTestsMixin):
self.assert_(t.tzinfo is not None)
self.assert_(t < datetime(1000, 1, 1, tzinfo=FixedOffsetTimezone()))
+ def test_redshift_day(self):
+ # Redshift is reported returning 1 day interval as microsec (bug #558)
+ cur = self.conn.cursor()
+ psycopg2.extensions.register_type(
+ psycopg2.extensions.new_type(
+ psycopg2.STRING.values, 'WAT', psycopg2.extensions.INTERVAL),
+ cur)
+
+ from datetime import timedelta
+ for s, v in [
+ ('0', timedelta(0)),
+ ('1', timedelta(microseconds=1)),
+ ('-1', timedelta(microseconds=-1)),
+ ('1000000', timedelta(seconds=1)),
+ ('86400000000', timedelta(days=1)),
+ ('-86400000000', timedelta(days=-1)),
+ ]:
+ cur.execute("select %s::text", (s,))
+ r = cur.fetchone()[0]
+ self.assertEqual(r, v, "%s -> %s != %s" % (s, r, v))
+
# Only run the datetime tests if psycopg was compiled with support.
if not hasattr(psycopg2.extensions, 'PYDATETIME'):