diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-01-12 17:17:33 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-01-12 17:17:33 -0500 |
| commit | af3bfefc622031786a4f9d9befd8b1d1da8a8922 (patch) | |
| tree | 507a604e963d07f9891ab1abd567cf94a98f74ad /test/dialect/test_sqlite.py | |
| parent | 0f31f36fe59aa2053271df459fbc3092a0ce599c (diff) | |
| download | sqlalchemy-af3bfefc622031786a4f9d9befd8b1d1da8a8922.tar.gz | |
- fix reflection of unknown types with arguments, NullType() accepts no arguments.
Diffstat (limited to 'test/dialect/test_sqlite.py')
| -rw-r--r-- | test/dialect/test_sqlite.py | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/test/dialect/test_sqlite.py b/test/dialect/test_sqlite.py index 11b0c004e..2413c12e8 100644 --- a/test/dialect/test_sqlite.py +++ b/test/dialect/test_sqlite.py @@ -4,7 +4,7 @@ from test.lib.testing import eq_, assert_raises, \ assert_raises_message import datetime from sqlalchemy import * -from sqlalchemy import exc, sql, schema, pool +from sqlalchemy import exc, sql, schema, pool, types as sqltypes from sqlalchemy.dialects.sqlite import base as sqlite, \ pysqlite as pysqlite_dialect from test.lib import * @@ -98,6 +98,7 @@ class TestTypes(TestBase, AssertsExecutionResults): assert not bindproc or isinstance(bindproc(u'some string'), unicode) + @testing.provide_metadata def test_type_reflection(self): # (ask_for, roundtripped_as_if_different) @@ -135,25 +136,33 @@ class TestTypes(TestBase, AssertsExecutionResults): columns = [Column('c%i' % (i + 1), t[0]) for (i, t) in enumerate(specs)] db = testing.db - m = MetaData(db) - t_table = Table('types', m, *columns) - m.create_all() + t_table = Table('types', metadata, *columns) + metadata.create_all() + m2 = MetaData(db) + rt = Table('types', m2, autoload=True) try: - m2 = MetaData(db) - rt = Table('types', m2, autoload=True) - try: - db.execute('CREATE VIEW types_v AS SELECT * from types') - rv = Table('types_v', m2, autoload=True) - expected = [len(c) > 1 and c[1] or c[0] for c in specs] - for table in rt, rv: - for i, reflected in enumerate(table.c): - assert isinstance(reflected.type, - type(expected[i])), '%d: %r' % (i, - type(expected[i])) - finally: - db.execute('DROP VIEW types_v') + db.execute('CREATE VIEW types_v AS SELECT * from types') + rv = Table('types_v', m2, autoload=True) + expected = [len(c) > 1 and c[1] or c[0] for c in specs] + for table in rt, rv: + for i, reflected in enumerate(table.c): + assert isinstance(reflected.type, + type(expected[i])), '%d: %r' % (i, + type(expected[i])) finally: - m.drop_all() + db.execute('DROP VIEW types_v') + + @testing.emits_warning('Did not recognize') + @testing.provide_metadata + def test_unknown_reflection(self): + t = Table('t', metadata, + Column('x', sqltypes.BINARY(16)), + Column('y', sqltypes.BINARY()) + ) + t.create() + t2 = Table('t', MetaData(), autoload=True, autoload_with=testing.db) + assert isinstance(t2.c.x.type, sqltypes.NullType) + assert isinstance(t2.c.y.type, sqltypes.NullType) class TestDefaults(TestBase, AssertsExecutionResults): |
