diff options
author | Gord Thompson <gord@gordthompson.com> | 2021-06-08 16:56:39 -0600 |
---|---|---|
committer | Gord Thompson <gord@gordthompson.com> | 2021-06-18 11:08:19 -0600 |
commit | c48373b5ae95a6dc84d4f02404f0b2da54f54a61 (patch) | |
tree | 548dfbb6bdf7a063aea68618871c7e558690325b /tests/test_autogen_diffs.py | |
parent | 01b5e5fa08c646d3d1f65c731136a1a6a9255315 (diff) | |
download | alembic-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.py | 272 |
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) |