diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-12-05 14:56:26 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-12-05 14:56:26 -0500 |
commit | f1e54a69fb9b07a73bd8488110b1ceace168a50a (patch) | |
tree | 9ffef9bc95b2015877f5dcfa63fb6574a87ca15e /test/dialect/test_postgresql.py | |
parent | 77763969ff06b12edcbaedab62890afa27e105b4 (diff) | |
parent | 926b0d7fa860abee8b34236148fa34a6666700a9 (diff) | |
download | sqlalchemy-f1e54a69fb9b07a73bd8488110b1ceace168a50a.tar.gz |
- merge default tip
Diffstat (limited to 'test/dialect/test_postgresql.py')
-rw-r--r-- | test/dialect/test_postgresql.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/test/dialect/test_postgresql.py b/test/dialect/test_postgresql.py index 10dedab46..bff1fba68 100644 --- a/test/dialect/test_postgresql.py +++ b/test/dialect/test_postgresql.py @@ -411,6 +411,24 @@ class EnumTest(TestBase, AssertsExecutionResults, AssertsCompiledSQL): metadata.drop_all() assert not testing.db.dialect.has_type(testing.db, 'fourfivesixtype') + + def test_no_support(self): + def server_version_info(self): + return (8, 2) + + e = engines.testing_engine() + dialect = e.dialect + dialect._get_server_version_info = server_version_info + + assert dialect.supports_native_enum + e.connect() + assert not dialect.supports_native_enum + + # initialize is called again on new pool + e.dispose() + e.connect() + assert not dialect.supports_native_enum + def test_reflection(self): metadata = MetaData(testing.db) @@ -2041,3 +2059,34 @@ class MatchTest(TestBase, AssertsCompiledSQL): matchtable.c.title.match('nutshells' )))).order_by(matchtable.c.id).execute().fetchall() eq_([1, 3, 5], [r.id for r in results]) + + +class TupleTest(TestBase): + __only_on__ = 'postgresql' + + def test_tuple_containment(self): + + for test, exp in [ + ([('a', 'b')], True), + ([('a', 'c')], False), + ([('f', 'q'), ('a', 'b')], True), + ([('f', 'q'), ('a', 'c')], False) + ]: + eq_( + testing.db.execute( + select([ + tuple_( + literal_column("'a'"), + literal_column("'b'") + ).\ + in_([ + tuple_(*[ + literal_column("'%s'" % letter) + for letter in elem + ]) for elem in test + ]) + ]) + ).scalar(), + exp + ) + |