diff options
Diffstat (limited to 'tests/test_autogen_indexes.py')
-rw-r--r-- | tests/test_autogen_indexes.py | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/tests/test_autogen_indexes.py b/tests/test_autogen_indexes.py index 702e2df..f798dd3 100644 --- a/tests/test_autogen_indexes.py +++ b/tests/test_autogen_indexes.py @@ -36,6 +36,8 @@ class NoUqReflection(object): class AutogenerateUniqueIndexTest(AutogenFixtureTest, TestBase): reports_unique_constraints = True + reports_unique_constraints_as_indexes = False + __requires__ = ('unique_constraint_reflection', ) __only_on__ = 'sqlite' @@ -441,8 +443,17 @@ class AutogenerateUniqueIndexTest(AutogenFixtureTest, TestBase): ('x' in obj.name) if obj.name is not None else False) for cmd, obj in diffs) if self.reports_unnamed_constraints: - assert ("remove_constraint", True) in diffs - assert ("add_constraint", False) in diffs + if self.reports_unique_constraints_as_indexes: + eq_( + diffs, + set([("remove_index", True), ("add_constraint", False)]) + ) + else: + eq_( + diffs, + set([("remove_constraint", True), + ("add_constraint", False)]) + ) def test_remove_named_unique_index(self): m1 = MetaData() @@ -453,14 +464,14 @@ class AutogenerateUniqueIndexTest(AutogenFixtureTest, TestBase): Index('xidx', 'x', unique=True) ) Table('remove_idx', m2, - Column('x', Integer), + Column('x', Integer) ) diffs = self._fixture(m1, m2) if self.reports_unique_constraints: diffs = set((cmd, obj.name) for cmd, obj in diffs) - assert ("remove_index", "xidx") in diffs + eq_(diffs, set([("remove_index", "xidx")])) else: eq_(diffs, []) @@ -479,8 +490,11 @@ class AutogenerateUniqueIndexTest(AutogenFixtureTest, TestBase): diffs = self._fixture(m1, m2) if self.reports_unique_constraints: - diffs = ((cmd, obj.name) for cmd, obj in diffs) - assert ("remove_constraint", "xidx") in diffs + diffs = set((cmd, obj.name) for cmd, obj in diffs) + if self.reports_unique_constraints_as_indexes: + eq_(diffs, set([("remove_index", "xidx")])) + else: + eq_(diffs, set([("remove_constraint", "xidx")])) else: eq_(diffs, []) @@ -628,6 +642,7 @@ class PGUniqueIndexTest(AutogenerateUniqueIndexTest): class MySQLUniqueIndexTest(AutogenerateUniqueIndexTest): reports_unnamed_constraints = True + reports_unique_constraints_as_indexes = True __only_on__ = 'mysql' def test_removed_idx_index_named_as_column(self): @@ -640,7 +655,6 @@ class MySQLUniqueIndexTest(AutogenerateUniqueIndexTest): assert False, "unexpected success" - class NoUqReflectionIndexTest(NoUqReflection, AutogenerateUniqueIndexTest): reports_unique_constraints = False __only_on__ = 'sqlite' @@ -765,6 +779,7 @@ class IncludeHooksTest(AutogenFixtureTest, TestBase): eq_(len(diffs), 1) @config.requirements.unique_constraint_reflection + @config.requirements.reflects_unique_constraints_unambiguously def test_remove_connection_uq(self): m1 = MetaData() m2 = MetaData() |