diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2016-06-03 10:55:54 -0400 |
|---|---|---|
| committer | Gerrit Code Review <gerrit2@ln3.zzzcomputing.com> | 2016-06-03 10:55:54 -0400 |
| commit | 40f9bcf1112bf25fd87a45cbf08f64c305d055a1 (patch) | |
| tree | 8dd023430803f871b175ba6b8b713e9f67f90ab6 /test/dialect/test_sqlite.py | |
| parent | 74ca7f627ea8f31a8312f965d5249ce1f701d627 (diff) | |
| parent | 0e88bcc30ed49193b91f248123f526fa30007f22 (diff) | |
| download | sqlalchemy-40f9bcf1112bf25fd87a45cbf08f64c305d055a1.tar.gz | |
Merge "Reflect ON DELETE and ON UPDATE for SQLite foreign keys"
Diffstat (limited to 'test/dialect/test_sqlite.py')
| -rw-r--r-- | test/dialect/test_sqlite.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/dialect/test_sqlite.py b/test/dialect/test_sqlite.py index dde9da086..16a628777 100644 --- a/test/dialect/test_sqlite.py +++ b/test/dialect/test_sqlite.py @@ -1146,6 +1146,16 @@ class ConstraintReflectionTest(fixtures.TestBase): # will contain an "autoindex" conn.execute("create table o (foo varchar(20) primary key)") + conn.execute( + "CREATE TABLE onud_test (id INTEGER PRIMARY KEY, " + "c1 INTEGER, c2 INTEGER, c3 INTEGER, " + "CONSTRAINT fk1 FOREIGN KEY (c1) REFERENCES a1(id) " + "ON DELETE SET NULL, " + "CONSTRAINT fk2 FOREIGN KEY (c2) REFERENCES a1(id) " + "ON UPDATE CASCADE, " + "CONSTRAINT fk3 FOREIGN KEY (c3) REFERENCES a2(id) " + "ON DELETE CASCADE ON UPDATE SET NULL)" + ) conn.execute( "CREATE TABLE cp (" @@ -1283,6 +1293,33 @@ class ConstraintReflectionTest(fixtures.TestBase): 'constrained_columns': ['q', 'p']}] ) + def test_foreign_key_ondelete_onupdate(self): + inspector = Inspector(testing.db) + fks = inspector.get_foreign_keys('onud_test') + eq_( + fks, + [ + { + 'referred_table': 'a1', 'referred_columns': ['id'], + 'referred_schema': None, 'name': 'fk1', + 'constrained_columns': ['c1'], + 'options': {'ondelete': 'SET NULL'} + }, + { + 'referred_table': 'a1', 'referred_columns': ['id'], + 'referred_schema': None, 'name': 'fk2', + 'constrained_columns': ['c2'], + 'options': {'onupdate': 'CASCADE'} + }, + { + 'referred_table': 'a2', 'referred_columns': ['id'], + 'referred_schema': None, 'name': 'fk3', + 'constrained_columns': ['c3'], + 'options': {'ondelete': 'CASCADE', 'onupdate': 'SET NULL'} + }, + ] + ) + def test_dont_reflect_autoindex(self): inspector = Inspector(testing.db) eq_(inspector.get_indexes('o'), []) |
