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.testing.suite._autogen_fixtures import ModelOne
from alembic.util import CommandError
# TODO: we should make an adaptation of CompareMetadataToInspectorTest that is
eq_(len(diffs), 0)
-class ModelOne:
- __requires__ = ("unique_constraint_reflection",)
-
- schema = None
-
- @classmethod
- def _get_db_schema(cls):
- schema = cls.schema
-
- m = MetaData(schema=schema)
-
- Table(
- "user",
- m,
- Column("id", Integer, primary_key=True),
- Column("name", String(50)),
- Column("a1", Text),
- Column("pw", String(50)),
- Index("pw_idx", "pw"),
- )
-
- Table(
- "address",
- m,
- Column("id", Integer, primary_key=True),
- Column("email_address", String(100), nullable=False),
- )
-
- Table(
- "order",
- m,
- Column("order_id", Integer, primary_key=True),
- Column(
- "amount",
- Numeric(8, 2),
- nullable=False,
- server_default=text("0"),
- ),
- CheckConstraint("amount >= 0", name="ck_order_amount"),
- )
-
- Table(
- "extra",
- m,
- Column("x", CHAR),
- Column("uid", Integer, ForeignKey("user.id")),
- )
-
- return m
-
- @classmethod
- def _get_model_schema(cls):
- schema = cls.schema
-
- m = MetaData(schema=schema)
-
- Table(
- "user",
- m,
- Column("id", Integer, primary_key=True),
- Column("name", String(50), nullable=False),
- Column("a1", Text, server_default="x"),
- )
-
- Table(
- "address",
- m,
- Column("id", Integer, primary_key=True),
- Column("email_address", String(100), nullable=False),
- Column("street", String(50)),
- UniqueConstraint("email_address", name="uq_email"),
- )
-
- Table(
- "order",
- m,
- Column("order_id", Integer, primary_key=True),
- Column(
- "amount",
- Numeric(10, 2),
- nullable=True,
- server_default=text("0"),
- ),
- Column("user_id", Integer, ForeignKey("user.id")),
- CheckConstraint("amount > -1", name="ck_order_amount"),
- )
-
- Table(
- "item",
- m,
- Column("id", Integer, primary_key=True),
- Column("description", String(100)),
- Column("order_id", Integer, ForeignKey("order.order_id")),
- CheckConstraint("len(description) > 5"),
- )
- return m
-
-
class AutogenerateDiffTest(ModelOne, AutogenTest, TestBase):
__only_on__ = "sqlite"