summaryrefslogtreecommitdiff
path: root/migrate/tests/changeset/test_changeset.py
diff options
context:
space:
mode:
authorchrisw <unknown>2010-09-09 09:15:28 +0100
committerchrisw <unknown>2010-09-09 09:15:28 +0100
commit5cf42fbf76b035516d55ca0f1d7e95bb7365ae10 (patch)
tree2f42f499ba24452552005bc565e590a59a591824 /migrate/tests/changeset/test_changeset.py
parentdceff55ff41235cad7b9d53b51e9525ffabc4ca0 (diff)
downloadsqlalchemy-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.py34
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