diff options
| author | Michael Trier <mtrier@gmail.com> | 2009-01-02 22:40:45 +0000 |
|---|---|---|
| committer | Michael Trier <mtrier@gmail.com> | 2009-01-02 22:40:45 +0000 |
| commit | 6ea3521b45c17b9575232b5a76e9ef76699bcd01 (patch) | |
| tree | 5d99da7a7a352750eda360020599e161daa6042f /test/dialect/sqlite.py | |
| parent | 5bc1f17cb53248e7cea609693a3b2a9bb702545b (diff) | |
| download | sqlalchemy-6ea3521b45c17b9575232b5a76e9ef76699bcd01.tar.gz | |
sqlite reflection now stores the actual DefaultClause value for the column.
Diffstat (limited to 'test/dialect/sqlite.py')
| -rw-r--r-- | test/dialect/sqlite.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/dialect/sqlite.py b/test/dialect/sqlite.py index bc6891ac6..e217895e0 100644 --- a/test/dialect/sqlite.py +++ b/test/dialect/sqlite.py @@ -116,6 +116,54 @@ class TestTypes(TestBase, AssertsExecutionResults): finally: m.drop_all() + +class TestDefaults(TestBase, AssertsExecutionResults): + __only_on__ = 'sqlite' + + def test_default_reflection(self): + # (ask_for, roundtripped_as_if_different) + specs = [( String(3), '"foo"' ), + ( NUMERIC(10,2), '100.50' ), + ( Integer, '5' ), + ( Boolean, 'False' ), + ] + columns = [Column('c%i' % (i + 1), t[0], server_default=text(t[1])) for i, t in enumerate(specs)] + + db = testing.db + m = MetaData(db) + t_table = Table('defaults', m, *columns) + + try: + m.create_all() + + m2 = MetaData(db) + rt = Table('defaults', m2, autoload=True) + expected = [c[1] for c in specs] + for i, reflected in enumerate(rt.c): + self.assertEquals(reflected.server_default.arg.text, expected[i]) + finally: + m.drop_all() + + def test_default_reflection_2(self): + db = testing.db + m = MetaData(db) + + expected = ["'my_default'", '0'] + table = """CREATE TABLE defaults ( + data VARCHAR(40) DEFAULT 'my_default', + val INTEGER NOT NULL DEFAULT 0 + )""" + + try: + db.execute(table) + + rt = Table('defaults', m, autoload=True) + for i, reflected in enumerate(rt.c): + self.assertEquals(reflected.server_default.arg.text, expected[i]) + finally: + db.execute("DROP TABLE defaults") + + class DialectTest(TestBase, AssertsExecutionResults): __only_on__ = 'sqlite' |
