summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2017-09-04 19:49:23 -0400
committerGerrit Code Review <gerrit@awstats.zzzcomputing.com>2017-09-04 19:49:23 -0400
commitabf1296ed4e0bd56c771d984de1f8728098b5d27 (patch)
tree79678461931622333f088112ff79d442ec04f5f0 /test
parentaf8a8153483f45acf3211dcf1163d2c6e380d1be (diff)
parent919b8bc4acf8de4720e8fff5077557f366fb3fb0 (diff)
downloadsqlalchemy-abf1296ed4e0bd56c771d984de1f8728098b5d27.tar.gz
Merge "Ensure custom ops have consistent typing behavior, boolean support"
Diffstat (limited to 'test')
-rw-r--r--test/sql/test_operators.py33
1 files changed, 31 insertions, 2 deletions
diff --git a/test/sql/test_operators.py b/test/sql/test_operators.py
index c18f9f9be..61295467d 100644
--- a/test/sql/test_operators.py
+++ b/test/sql/test_operators.py
@@ -2631,8 +2631,37 @@ class CustomOpTest(fixtures.TestBase):
assert operators.is_comparison(op1)
assert not operators.is_comparison(op2)
- expr = c.op('$', is_comparison=True)(None)
- is_(expr.type, sqltypes.BOOLEANTYPE)
+ def test_return_types(self):
+ some_return_type = sqltypes.DECIMAL()
+
+ for typ in [
+ sqltypes.NULLTYPE,
+ Integer(),
+ ARRAY(String),
+ String(50),
+ Boolean(),
+ DateTime(),
+ sqltypes.JSON(),
+ postgresql.ARRAY(Integer),
+ sqltypes.Numeric(5, 2),
+ ]:
+ c = column('x', typ)
+ expr = c.op('$', is_comparison=True)(None)
+ is_(expr.type, sqltypes.BOOLEANTYPE)
+
+ c = column('x', typ)
+ expr = c.bool_op('$')(None)
+ is_(expr.type, sqltypes.BOOLEANTYPE)
+
+ expr = c.op('$')(None)
+ is_(expr.type, typ)
+
+ expr = c.op('$', return_type=some_return_type)(None)
+ is_(expr.type, some_return_type)
+
+ expr = c.op(
+ '$', is_comparison=True, return_type=some_return_type)(None)
+ is_(expr.type, some_return_type)
class TupleTypingTest(fixtures.TestBase):