summaryrefslogtreecommitdiff
path: root/test/dialect/sqlite.py
diff options
context:
space:
mode:
authorMichael Trier <mtrier@gmail.com>2009-01-02 22:40:45 +0000
committerMichael Trier <mtrier@gmail.com>2009-01-02 22:40:45 +0000
commit6ea3521b45c17b9575232b5a76e9ef76699bcd01 (patch)
tree5d99da7a7a352750eda360020599e161daa6042f /test/dialect/sqlite.py
parent5bc1f17cb53248e7cea609693a3b2a9bb702545b (diff)
downloadsqlalchemy-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.py48
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'