diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-07-28 11:53:18 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-07-28 11:53:18 -0400 |
commit | 086ae95614b4848c486eeb7acf2bc1b03b2a6a37 (patch) | |
tree | b54adc2f3a2402f23e2009cc50657937bfa3028e /test/dialect/test_sqlite.py | |
parent | 5c7cc274250c54430d9dceb05ad2a4a33e2378d7 (diff) | |
download | sqlalchemy-086ae95614b4848c486eeb7acf2bc1b03b2a6a37.tar.gz |
- SQLite dialect no longer strips quotes
off of reflected default value, allowing
a round trip CREATE TABLE to work.
This is consistent with other dialects
that also maintain the exact form of
the default. [ticket:2189]
Diffstat (limited to 'test/dialect/test_sqlite.py')
-rw-r--r-- | test/dialect/test_sqlite.py | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/test/dialect/test_sqlite.py b/test/dialect/test_sqlite.py index 400edc2ce..f3422cf0e 100644 --- a/test/dialect/test_sqlite.py +++ b/test/dialect/test_sqlite.py @@ -10,6 +10,7 @@ from sqlalchemy.dialects.sqlite import base as sqlite, \ from sqlalchemy.engine.url import make_url from test.lib import * import os +from sqlalchemy.schema import CreateTable class TestTypes(fixtures.TestBase, AssertsExecutionResults): @@ -168,7 +169,7 @@ class TestTypes(fixtures.TestBase, AssertsExecutionResults): assert isinstance(t2.c.y.type, sqltypes.NullType) -class TestDefaults(fixtures.TestBase, AssertsExecutionResults): +class DefaultsTest(fixtures.TestBase, AssertsCompiledSQL): __only_on__ = 'sqlite' @@ -206,7 +207,7 @@ class TestDefaults(fixtures.TestBase, AssertsExecutionResults): db = testing.db m = MetaData(db) - expected = ['my_default', '0'] + expected = ["'my_default'", '0'] table = \ """CREATE TABLE r_defaults ( data VARCHAR(40) DEFAULT 'my_default', @@ -220,6 +221,30 @@ class TestDefaults(fixtures.TestBase, AssertsExecutionResults): finally: db.execute('DROP TABLE r_defaults') + def test_default_reflection_3(self): + db = testing.db + table = \ + """CREATE TABLE r_defaults ( + data VARCHAR(40) DEFAULT 'my_default', + val INTEGER NOT NULL DEFAULT 0 + )""" + try: + db.execute(table) + m1 = MetaData(db) + t1 = Table('r_defaults', m1, autoload=True) + db.execute("DROP TABLE r_defaults") + t1.create() + m2 = MetaData(db) + t2 = Table('r_defaults', m2, autoload=True) + self.assert_compile( + CreateTable(t2), + "CREATE TABLE r_defaults (data VARCHAR(40) " + "DEFAULT 'my_default', val INTEGER DEFAULT 0 " + "NOT NULL)" + ) + finally: + db.execute("DROP TABLE r_defaults") + class DialectTest(fixtures.TestBase, AssertsExecutionResults): |