summaryrefslogtreecommitdiff
path: root/test/ext/test_compiler.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/ext/test_compiler.py')
-rw-r--r--test/ext/test_compiler.py30
1 files changed, 29 insertions, 1 deletions
diff --git a/test/ext/test_compiler.py b/test/ext/test_compiler.py
index 3ee94d027..d625ae0ca 100644
--- a/test/ext/test_compiler.py
+++ b/test/ext/test_compiler.py
@@ -1,6 +1,7 @@
from sqlalchemy import *
from sqlalchemy.types import TypeEngine
-from sqlalchemy.sql.expression import ClauseElement, ColumnClause
+from sqlalchemy.sql.expression import ClauseElement, ColumnClause,\
+ FunctionElement
from sqlalchemy.schema import DDLElement
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.sql import table, column
@@ -151,3 +152,30 @@ class UserDefinedTest(TestBase, AssertsCompiledSQL):
"DROP THINGY",
)
+ def test_functions(self):
+ from sqlalchemy.dialects.postgresql import base as postgresql
+
+ class MyUtcFunction(FunctionElement):
+ pass
+
+ @compiles(MyUtcFunction)
+ def visit_myfunc(element, compiler, **kw):
+ return "utcnow()"
+
+ @compiles(MyUtcFunction, 'postgresql')
+ def visit_myfunc(element, compiler, **kw):
+ return "timezone('utc', current_timestamp)"
+
+ self.assert_compile(
+ MyUtcFunction(),
+ "utcnow()",
+ use_default_dialect=True
+ )
+ self.assert_compile(
+ MyUtcFunction(),
+ "timezone('utc', current_timestamp)",
+ dialect=postgresql.dialect()
+ )
+
+
+ \ No newline at end of file