summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2021-05-20 21:36:04 +0000
committerGerrit Code Review <gerrit@ci3.zzzcomputing.com>2021-05-20 21:36:04 +0000
commit5a277a5d0ee13fd66d389631ac854556921613b8 (patch)
treeccb21973e9e3d1d1d5103b799d06232fcdf7b6bc /tests
parent8d5a9a1b0d32fff5726010afffa48cc0fb738238 (diff)
parentacc82bff397be712a7e4f5e2069e7bfbf93ff5a9 (diff)
downloadalembic-5a277a5d0ee13fd66d389631ac854556921613b8.tar.gz
Merge "Remove unique/index flags when copying table"
Diffstat (limited to 'tests')
-rw-r--r--tests/test_autogen_indexes.py45
1 files changed, 42 insertions, 3 deletions
diff --git a/tests/test_autogen_indexes.py b/tests/test_autogen_indexes.py
index 6fda283..5ad65ba 100644
--- a/tests/test_autogen_indexes.py
+++ b/tests/test_autogen_indexes.py
@@ -8,6 +8,7 @@ from sqlalchemy import Index
from sqlalchemy import Integer
from sqlalchemy import MetaData
from sqlalchemy import Numeric
+from sqlalchemy import PrimaryKeyConstraint
from sqlalchemy import String
from sqlalchemy import Table
from sqlalchemy import UniqueConstraint
@@ -975,8 +976,34 @@ class AutogenerateUniqueIndexTest(AutogenFixtureTest, TestBase):
eq_(diffs[0][0], "add_table")
eq_(len(diffs), 1)
- assert UniqueConstraint in set(
- type(c) for c in diffs[0][1].constraints
+
+ # checking for dupes also
+ eq_(
+ sorted(
+ [type(cons) for cons in diffs[0][1].constraints],
+ key=lambda c: c.__name__,
+ ),
+ [PrimaryKeyConstraint, UniqueConstraint],
+ )
+
+ @config.requirements.reflects_unique_constraints_unambiguously
+ def test_dont_add_uq_on_reverse_table_drop(self):
+ m1 = MetaData()
+ m2 = MetaData()
+ Table("no_uq", m1, Column("x", String(50), unique=True))
+ diffs = self._fixture(m1, m2)
+
+ eq_(diffs[0][0], "remove_table")
+ eq_(len(diffs), 1)
+
+ # because the drop comes from reflection, the "unique=True" flag
+ # is lost in any case.
+ eq_(
+ sorted(
+ [type(cons) for cons in diffs[0][1].constraints],
+ key=lambda c: c.__name__,
+ ),
+ [PrimaryKeyConstraint, UniqueConstraint],
)
def test_add_uq_ix_on_table_create(self):
@@ -990,8 +1017,15 @@ class AutogenerateUniqueIndexTest(AutogenFixtureTest, TestBase):
assert UniqueConstraint not in set(
type(c) for c in diffs[0][1].constraints
)
+
eq_(diffs[1][0], "add_index")
- eq_(diffs[1][1].unique, True)
+ d_table = diffs[0][1]
+ d_idx = diffs[1][1]
+ eq_(d_idx.unique, True)
+
+ # check for dupes
+ eq_(len(diffs), 2)
+ assert not d_table.indexes
def test_add_ix_on_table_create(self):
m1 = MetaData()
@@ -1293,6 +1327,11 @@ class NoUqReflectionIndexTest(NoUqReflection, AutogenerateUniqueIndexTest):
"unique constraint reflection disabled for this suite"
)
+ def test_dont_add_uq_on_reverse_table_drop(self):
+ config.skip_test(
+ "unique constraint reflection disabled for this suite"
+ )
+
def test_unique_not_reported(self):
m1 = MetaData()
Table(