diff options
-rw-r--r-- | lib/sqlalchemy/schema.py | 6 | ||||
-rw-r--r-- | test/sql/test_metadata.py | 11 |
2 files changed, 3 insertions, 14 deletions
diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index d2df3de1d..fa13d7065 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -1560,10 +1560,10 @@ class ForeignKey(SchemaItem): def _remove_from_metadata(self, metadata): parenttable, table_key, colname = self._resolve_col_tokens() fk_key = (table_key, colname) - try: + + if self in metadata._fk_memos[fk_key]: + # TODO: no test coverage for self not in memos metadata._fk_memos[fk_key].remove(self) - except: - pass def _set_table(self, column, table): # standalone ForeignKey - create ForeignKeyConstraint diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py index 7b6c8497e..851e9b920 100644 --- a/test/sql/test_metadata.py +++ b/test/sql/test_metadata.py @@ -1478,17 +1478,6 @@ class ConstraintTest(fixtures.TestBase): # remove twice OK metadata.remove(t2) - def test_remove_failed(self): - metadata = MetaData() - fk = ForeignKey('t1.x') - t3 = Table('t3', metadata, Column('y', Integer, ForeignKey('t1.x'))) - - try: - Table('t2', metadata, Column('y', Integer, fk)) - except: - raise - - class ColumnDefinitionTest(AssertsCompiledSQL, fixtures.TestBase): """Test Column() construction.""" |