summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2020-03-30 13:57:08 +0000
committerGerrit Code Review <gerrit@bbpush.zzzcomputing.com>2020-03-30 13:57:08 +0000
commitffcc16b114f14459f1b90b10e126fc31afef682a (patch)
treefab1c6f9dc4cfa8ab1f5aaa9e15ed72e54a268c4 /test
parent73f7f85d9da7ebe8811d180f113714bfd8283662 (diff)
parent83eb1b23cbe5a7ee0f2534256cf16f0f865bdbbb (diff)
downloadsqlalchemy-ffcc16b114f14459f1b90b10e126fc31afef682a.tar.gz
Merge "String compiler can now literal compile datetime objects"
Diffstat (limited to 'test')
-rw-r--r--test/sql/test_compiler.py16
-rw-r--r--test/sql/test_types.py23
2 files changed, 39 insertions, 0 deletions
diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py
index ef3e5d26e..151ecb1d2 100644
--- a/test/sql/test_compiler.py
+++ b/test/sql/test_compiler.py
@@ -10,6 +10,7 @@ styling and coherent test organization.
"""
+import datetime
import decimal
from sqlalchemy import alias
@@ -3745,6 +3746,21 @@ class StringifySpecialTest(fixtures.TestBase):
"WITHIN GROUP (ORDER BY mytable.name DESC) AS anon_1 FROM mytable",
)
+ @testing.combinations(
+ ("datetime", datetime.datetime.now()),
+ ("date", datetime.date.today()),
+ ("time", datetime.time()),
+ argnames="value",
+ id_="ia",
+ )
+ def test_render_datetime(self, value):
+ lit = literal(value)
+
+ eq_ignore_whitespace(
+ str(lit.compile(compile_kwargs={"literal_binds": True})),
+ "'%s'" % value,
+ )
+
class KwargPropagationTest(fixtures.TestBase):
@classmethod
diff --git a/test/sql/test_types.py b/test/sql/test_types.py
index 9fb79958d..2af8cb325 100644
--- a/test/sql/test_types.py
+++ b/test/sql/test_types.py
@@ -3237,3 +3237,26 @@ class CallableTest(fixtures.TestBase):
)
assert isinstance(thang_table.c.name.type, Unicode)
thang_table.create()
+
+
+class LiteralTest(fixtures.TestBase):
+ __backend__ = True
+
+ @testing.combinations(
+ ("datetime", datetime.datetime.now()),
+ ("date", datetime.date.today()),
+ ("time", datetime.time()),
+ argnames="value",
+ id_="ia",
+ )
+ @testing.skip_if(lambda: testing.requires.datetime_literals)
+ def test_render_datetime(self, value):
+ lit = literal(value)
+
+ assert_raises_message(
+ NotImplementedError,
+ "Don't know how to literal-quote value.*",
+ lit.compile,
+ dialect=testing.db.dialect,
+ compile_kwargs={"literal_binds": True},
+ )