]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Use the same "current_timestamp" function for both sides of round trip
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 21 Oct 2018 02:20:06 +0000 (22:20 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 21 Oct 2018 02:23:30 +0000 (22:23 -0400)
this test was using sysdate() and current_timestamp() together
in conjunction with a truncation to DAY, however for four hours
on saturday night (see commit time :) ) these two values will
have a different value if one side is EDT and the other is UTC.

tox does not transmit environment variables including TZ by
default, so even if the server is set up for EDT, running tox
will not set TZ and at least Oracle client seems to use this
value, producing UTC for session time but the database on CI
was configured for EDT, producing EDT for sysdate.

Change-Id: I56602d2402a475a0c4fdf61c1c5fc2618c82f915
(cherry picked from commit ac358a04a7b077602ac668c19c3c40389d9e77e4)

test/sql/test_defaults.py

index 42514a9276094203336b16c803c8b44a13c10ff0..c5efdf132e5da518faa890fa462d1c83b4be1713 100644 (file)
@@ -170,7 +170,8 @@ class DefaultTest(fixtures.TestBase):
                 sa.select(
                     [
                         func.trunc(
-                            func.sysdate(), sa.literal_column("'DAY'"),
+                            func.current_timestamp(),
+                            sa.literal_column("'DAY'"),
                             type_=sa.Date)]))
             assert isinstance(ts, datetime.date) and not isinstance(
                 ts, datetime.datetime)
@@ -182,7 +183,8 @@ class DefaultTest(fixtures.TestBase):
                 type_=sa.Date)
             def1 = currenttime
             def2 = func.trunc(
-                sa.text("sysdate"), sa.literal_column("'DAY'"), type_=sa.Date)
+                sa.text("current_timestamp"),
+                sa.literal_column("'DAY'"), type_=sa.Date)
 
             deftype = sa.Date
         elif use_function_defaults: