diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2017-09-04 19:49:23 -0400 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@awstats.zzzcomputing.com> | 2017-09-04 19:49:23 -0400 |
| commit | abf1296ed4e0bd56c771d984de1f8728098b5d27 (patch) | |
| tree | 79678461931622333f088112ff79d442ec04f5f0 /test | |
| parent | af8a8153483f45acf3211dcf1163d2c6e380d1be (diff) | |
| parent | 919b8bc4acf8de4720e8fff5077557f366fb3fb0 (diff) | |
| download | sqlalchemy-abf1296ed4e0bd56c771d984de1f8728098b5d27.tar.gz | |
Merge "Ensure custom ops have consistent typing behavior, boolean support"
Diffstat (limited to 'test')
| -rw-r--r-- | test/sql/test_operators.py | 33 |
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): |
