diff options
author | chrisw <unknown> | 2010-09-09 09:15:28 +0100 |
---|---|---|
committer | chrisw <unknown> | 2010-09-09 09:15:28 +0100 |
commit | 5cf42fbf76b035516d55ca0f1d7e95bb7365ae10 (patch) | |
tree | 2f42f499ba24452552005bc565e590a59a591824 /migrate/tests/changeset/test_changeset.py | |
parent | dceff55ff41235cad7b9d53b51e9525ffabc4ca0 (diff) | |
download | sqlalchemy-migrate-5cf42fbf76b035516d55ca0f1d7e95bb7365ae10.tar.gz |
fix for issue 96: deleting a column in sqlite shouldn't delete all indexes
bonus: remove_from_table now removes indexes
Diffstat (limited to 'migrate/tests/changeset/test_changeset.py')
-rw-r--r-- | migrate/tests/changeset/test_changeset.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/migrate/tests/changeset/test_changeset.py b/migrate/tests/changeset/test_changeset.py index 8dfff3b..7792105 100644 --- a/migrate/tests/changeset/test_changeset.py +++ b/migrate/tests/changeset/test_changeset.py @@ -299,7 +299,41 @@ class TestAddDropColumn(fixture.DB): # TODO: test quoting # TODO: test non-autoname constraints + @fixture.usedb() + def test_drop_doesnt_delete_other_indexes(self): + # add two indexed columns + self.table.drop() + self.meta.clear() + self.table = Table( + self.table_name, self.meta, + Column('id', Integer, primary_key=True), + Column('d1', String(10), index=True), + Column('d2', String(10), index=True), + ) + self.table.create() + # paranoid check + if SQLA_06: + self.refresh_table() + self.assertEqual( + sorted([i.name for i in self.table.indexes]), + [u'ix_tmp_adddropcol_d1', u'ix_tmp_adddropcol_d2'] + ) + + # delete one + self.table.c.d2.drop() + + # ensure the other index is still there + if SQLA_06: + self.refresh_table() + self.assertEqual( + sorted([i.name for i in self.table.indexes]), + [u'ix_tmp_adddropcol_d1'] + ) + else: + # a crude test for 0.5.x + Index('ix_tmp_adddropcol_d1',self.table.c.d1).drop() + class TestRename(fixture.DB): """Tests for table and index rename methods""" level = fixture.DB.CONNECT |