summaryrefslogtreecommitdiff
path: root/tests/test_autogen_diffs.py
diff options
context:
space:
mode:
authorGord Thompson <gord@gordthompson.com>2021-06-08 16:56:39 -0600
committerGord Thompson <gord@gordthompson.com>2021-06-18 11:08:19 -0600
commitc48373b5ae95a6dc84d4f02404f0b2da54f54a61 (patch)
tree548dfbb6bdf7a063aea68618871c7e558690325b /tests/test_autogen_diffs.py
parent01b5e5fa08c646d3d1f65c731136a1a6a9255315 (diff)
downloadalembic-c48373b5ae95a6dc84d4f02404f0b2da54f54a61.tar.gz
Implement "test suite"
Fixes: #855 Change-Id: I11386597d9f3a260d7349b58d276b44d78642a6a
Diffstat (limited to 'tests/test_autogen_diffs.py')
-rw-r--r--tests/test_autogen_diffs.py272
1 files changed, 7 insertions, 265 deletions
diff --git a/tests/test_autogen_diffs.py b/tests/test_autogen_diffs.py
index 2a1d762..1dff1e3 100644
--- a/tests/test_autogen_diffs.py
+++ b/tests/test_autogen_diffs.py
@@ -33,7 +33,6 @@ from sqlalchemy import UniqueConstraint
from sqlalchemy import VARCHAR
from sqlalchemy.dialects import mysql
from sqlalchemy.dialects import sqlite
-from sqlalchemy.testing import in_
from sqlalchemy.types import NULLTYPE
from sqlalchemy.types import VARBINARY
@@ -52,11 +51,14 @@ from alembic.testing import schemacompare
from alembic.testing import TestBase
from alembic.testing.env import clear_staging_env
from alembic.testing.env import staging_env
+from alembic.testing.suite._autogen_fixtures import _default_name_filters
+from alembic.testing.suite._autogen_fixtures import _default_object_filters
+from alembic.testing.suite._autogen_fixtures import AutogenFixtureTest
+from alembic.testing.suite._autogen_fixtures import AutogenTest
from alembic.util import CommandError
-from ._autogen_fixtures import _default_name_filters
-from ._autogen_fixtures import _default_object_filters
-from ._autogen_fixtures import AutogenFixtureTest
-from ._autogen_fixtures import AutogenTest
+
+# TODO: we should make an adaptation of CompareMetadataToInspectorTest that is
+# more well suited towards generic backends (2021-06-10)
py3k = sys.version_info >= (3,)
@@ -1294,81 +1296,6 @@ class PKConstraintUpgradesIgnoresNullableTest(AutogenTest, TestBase):
eq_(diffs, [])
-class AlterColumnTest(AutogenFixtureTest, TestBase):
- __backend__ = True
-
- @testing.combinations((True,), (False,))
- @config.requirements.comments
- def test_all_existings_filled(self, pk):
- m1 = MetaData()
- m2 = MetaData()
-
- Table("a", m1, Column("x", Integer, primary_key=pk))
- Table("a", m2, Column("x", Integer, comment="x", primary_key=pk))
-
- alter_col = self._assert_alter_col(m1, m2, pk)
- eq_(alter_col.modify_comment, "x")
-
- @testing.combinations((True,), (False,))
- @config.requirements.comments
- def test_all_existings_filled_in_notnull(self, pk):
- m1 = MetaData()
- m2 = MetaData()
-
- Table("a", m1, Column("x", Integer, nullable=False, primary_key=pk))
- Table(
- "a",
- m2,
- Column("x", Integer, nullable=False, comment="x", primary_key=pk),
- )
-
- self._assert_alter_col(m1, m2, pk, nullable=False)
-
- @testing.combinations((True,), (False,))
- @config.requirements.comments
- def test_all_existings_filled_in_comment(self, pk):
- m1 = MetaData()
- m2 = MetaData()
-
- Table("a", m1, Column("x", Integer, comment="old", primary_key=pk))
- Table("a", m2, Column("x", Integer, comment="new", primary_key=pk))
-
- alter_col = self._assert_alter_col(m1, m2, pk)
- eq_(alter_col.existing_comment, "old")
-
- @testing.combinations((True,), (False,))
- @config.requirements.comments
- def test_all_existings_filled_in_server_default(self, pk):
- m1 = MetaData()
- m2 = MetaData()
-
- Table(
- "a", m1, Column("x", Integer, server_default="5", primary_key=pk)
- )
- Table(
- "a",
- m2,
- Column(
- "x", Integer, server_default="5", comment="new", primary_key=pk
- ),
- )
-
- alter_col = self._assert_alter_col(m1, m2, pk)
- in_("5", alter_col.existing_server_default.arg.text)
-
- def _assert_alter_col(self, m1, m2, pk, nullable=None):
- ops = self._fixture(m1, m2, return_ops=True)
- modify_table = ops.ops[-1]
- alter_col = modify_table.ops[0]
-
- if nullable is None:
- eq_(alter_col.existing_nullable, not pk)
- else:
- eq_(alter_col.existing_nullable, nullable)
- assert alter_col.existing_type._compare_type_affinity(Integer())
- return alter_col
-
-
class AutogenKeyTest(AutogenTest, TestBase):
__only_on__ = "sqlite"
@@ -1957,188 +1884,3 @@ class MultipleMetaDataTest(AutogenFixtureTest, TestBase):
[m1a, m1b],
[m2a, m2b],
)
-
-
-class AutoincrementTest(AutogenFixtureTest, TestBase):
- __backend__ = True
- __requires__ = ("integer_subtype_comparisons",)
-
- def test_alter_column_autoincrement_none(self):
- m1 = MetaData()
- m2 = MetaData()
-
- Table("a", m1, Column("x", Integer, nullable=False))
- Table("a", m2, Column("x", Integer, nullable=True))
-
- ops = self._fixture(m1, m2, return_ops=True)
- assert "autoincrement" not in ops.ops[0].ops[0].kw
-
- def test_alter_column_autoincrement_pk_false(self):
- m1 = MetaData()
- m2 = MetaData()
-
- Table(
- "a",
- m1,
- Column("x", Integer, primary_key=True, autoincrement=False),
- )
- Table(
- "a",
- m2,
- Column("x", BigInteger, primary_key=True, autoincrement=False),
- )
-
- ops = self._fixture(m1, m2, return_ops=True)
- is_(ops.ops[0].ops[0].kw["autoincrement"], False)
-
- def test_alter_column_autoincrement_pk_implicit_true(self):
- m1 = MetaData()
- m2 = MetaData()
-
- Table("a", m1, Column("x", Integer, primary_key=True))
- Table("a", m2, Column("x", BigInteger, primary_key=True))
-
- ops = self._fixture(m1, m2, return_ops=True)
- is_(ops.ops[0].ops[0].kw["autoincrement"], True)
-
- def test_alter_column_autoincrement_pk_explicit_true(self):
- m1 = MetaData()
- m2 = MetaData()
-
- Table(
- "a", m1, Column("x", Integer, primary_key=True, autoincrement=True)
- )
- Table(
- "a",
- m2,
- Column("x", BigInteger, primary_key=True, autoincrement=True),
- )
-
- ops = self._fixture(m1, m2, return_ops=True)
- is_(ops.ops[0].ops[0].kw["autoincrement"], True)
-
- def test_alter_column_autoincrement_nonpk_false(self):
- m1 = MetaData()
- m2 = MetaData()
-
- Table(
- "a",
- m1,
- Column("id", Integer, primary_key=True),
- Column("x", Integer, autoincrement=False),
- )
- Table(
- "a",
- m2,
- Column("id", Integer, primary_key=True),
- Column("x", BigInteger, autoincrement=False),
- )
-
- ops = self._fixture(m1, m2, return_ops=True)
- is_(ops.ops[0].ops[0].kw["autoincrement"], False)
-
- def test_alter_column_autoincrement_nonpk_implicit_false(self):
- m1 = MetaData()
- m2 = MetaData()
-
- Table(
- "a",
- m1,
- Column("id", Integer, primary_key=True),
- Column("x", Integer),
- )
- Table(
- "a",
- m2,
- Column("id", Integer, primary_key=True),
- Column("x", BigInteger),
- )
-
- ops = self._fixture(m1, m2, return_ops=True)
- assert "autoincrement" not in ops.ops[0].ops[0].kw
-
- def test_alter_column_autoincrement_nonpk_explicit_true(self):
- m1 = MetaData()
- m2 = MetaData()
-
- Table(
- "a",
- m1,
- Column("id", Integer, primary_key=True, autoincrement=False),
- Column("x", Integer, autoincrement=True),
- )
- Table(
- "a",
- m2,
- Column("id", Integer, primary_key=True, autoincrement=False),
- Column("x", BigInteger, autoincrement=True),
- )
-
- ops = self._fixture(m1, m2, return_ops=True)
- is_(ops.ops[0].ops[0].kw["autoincrement"], True)
-
- def test_alter_column_autoincrement_compositepk_false(self):
- m1 = MetaData()
- m2 = MetaData()
-
- Table(
- "a",
- m1,
- Column("id", Integer, primary_key=True),
- Column("x", Integer, primary_key=True, autoincrement=False),
- )
- Table(
- "a",
- m2,
- Column("id", Integer, primary_key=True),
- Column("x", BigInteger, primary_key=True, autoincrement=False),
- )
-
- ops = self._fixture(m1, m2, return_ops=True)
- is_(ops.ops[0].ops[0].kw["autoincrement"], False)
-
- def test_alter_column_autoincrement_compositepk_implicit_false(self):
- m1 = MetaData()
- m2 = MetaData()
-
- Table(
- "a",
- m1,
- Column("id", Integer, primary_key=True),
- Column("x", Integer, primary_key=True),
- )
- Table(
- "a",
- m2,
- Column("id", Integer, primary_key=True),
- Column("x", BigInteger, primary_key=True),
- )
-
- ops = self._fixture(m1, m2, return_ops=True)
- assert "autoincrement" not in ops.ops[0].ops[0].kw
-
- @config.requirements.autoincrement_on_composite_pk
- def test_alter_column_autoincrement_compositepk_explicit_true(self):
- m1 = MetaData()
- m2 = MetaData()
-
- Table(
- "a",
- m1,
- Column("id", Integer, primary_key=True, autoincrement=False),
- Column("x", Integer, primary_key=True, autoincrement=True),
- # on SQLA 1.0 and earlier, this being present
- # trips the "add KEY for the primary key" so that the
- # AUTO_INCREMENT keyword is accepted by MySQL. SQLA 1.1 and
- # greater the columns are just reorganized.
- mysql_engine="InnoDB",
- )
- Table(
- "a",
- m2,
- Column("id", Integer, primary_key=True, autoincrement=False),
- Column("x", BigInteger, primary_key=True, autoincrement=True),
- )
-
- ops = self._fixture(m1, m2, return_ops=True)
- is_(ops.ops[0].ops[0].kw["autoincrement"], True)