summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-07-06 20:42:17 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2015-07-06 20:42:17 -0400
commit9eb8f3a085193067b15f89069ff1b40013a9f1d8 (patch)
treec36b94aa3b81047abdc0f168f4d84b77d2bc0357
parentea5ca8980c960f5374087280eb4435617c479aa5 (diff)
downloadalembic-9eb8f3a085193067b15f89069ff1b40013a9f1d8.tar.gz
get all of autogen_diffs tests to pass again
-rw-r--r--alembic/autogenerate/api.py2
-rw-r--r--alembic/operations/ops.py10
-rw-r--r--tests/_autogen_fixtures.py7
-rw-r--r--tests/test_autogen_diffs.py37
4 files changed, 32 insertions, 24 deletions
diff --git a/alembic/autogenerate/api.py b/alembic/autogenerate/api.py
index 632ecb7..1277c20 100644
--- a/alembic/autogenerate/api.py
+++ b/alembic/autogenerate/api.py
@@ -98,7 +98,7 @@ def compare_metadata(context, metadata):
"""
migration_script = produce_migrations(context, metadata)
- return migration_script.as_diffs()
+ return migration_script.upgrade_ops.as_diffs()
def produce_migrations(context, metadata):
diff --git a/alembic/operations/ops.py b/alembic/operations/ops.py
index 5f50f10..e9c2497 100644
--- a/alembic/operations/ops.py
+++ b/alembic/operations/ops.py
@@ -51,9 +51,7 @@ class AddConstraintOp(MigrateOperation):
return funcs[constraint.__visit_name__](constraint)
def reverse(self):
- return DropConstraintOp(
- self.constraint_name, self.table_name, type_=self.type_,
- schema=self.schema)
+ return DropConstraintOp.from_constraint(self.to_constraint())
def to_diff_tuple(self):
return ("add_constraint", self.to_constraint())
@@ -1164,7 +1162,7 @@ class AlterColumnOp(AlterTableOp):
kw['modify_server_default'] = self.modify_server_default
all_keys = set(m.group(1) for m in [
- re.match(r'(?:existing_|modify_)(.+))', k)
+ re.match(r'^(?:existing_|modify_)(.+)$', k)
for k in kw
] if m)
@@ -1720,9 +1718,11 @@ class ModifyTableOps(OpContainer):
def reverse(self):
return ModifyTableOps(
+ self.table_name,
ops=list(reversed(
[op.reverse() for op in self.ops]
- ))
+ )),
+ schema=self.schema
)
diff --git a/tests/_autogen_fixtures.py b/tests/_autogen_fixtures.py
index 7ef6cbf..98848b5 100644
--- a/tests/_autogen_fixtures.py
+++ b/tests/_autogen_fixtures.py
@@ -2,6 +2,7 @@ from sqlalchemy import MetaData, Column, Table, Integer, String, Text, \
Numeric, CHAR, ForeignKey, Index, UniqueConstraint, CheckConstraint, text
from sqlalchemy.engine.reflection import Inspector
+from alembic.operations import ops
from alembic import autogenerate
from alembic.migration import MigrationContext
from alembic.testing import config
@@ -232,11 +233,11 @@ class AutogenFixtureTest(_ComparesFKs):
'object_filters': object_filters,
'include_schemas': include_schemas
}
- diffs = []
+ uo = ops.UpgradeOps(ops=[])
autogenerate._produce_net_changes(
- autogen_context, diffs
+ autogen_context, uo
)
- return diffs
+ return uo.as_diffs()
reports_unnamed_constraints = False
diff --git a/tests/test_autogen_diffs.py b/tests/test_autogen_diffs.py
index de0d5a9..cade594 100644
--- a/tests/test_autogen_diffs.py
+++ b/tests/test_autogen_diffs.py
@@ -64,7 +64,6 @@ class AutogenCrossSchemaTest(AutogenTest, TestBase):
return m
def test_default_schema_omitted_upgrade(self):
- diffs = []
def include_object(obj, name, type_, reflected, compare_to):
if type_ == "table":
@@ -76,13 +75,14 @@ class AutogenCrossSchemaTest(AutogenTest, TestBase):
'include_schemas': True,
'metadata': self.m2
})
- autogenerate._produce_net_changes(self.autogen_context, diffs)
+ uo = ops.UpgradeOps(ops=[])
+ autogenerate._produce_net_changes(self.autogen_context, uo)
+ diffs = uo.as_diffs()
eq_(diffs[0][0], "add_table")
eq_(diffs[0][1].schema, None)
def test_alt_schema_included_upgrade(self):
- diffs = []
def include_object(obj, name, type_, reflected, compare_to):
if type_ == "table":
@@ -95,14 +95,14 @@ class AutogenCrossSchemaTest(AutogenTest, TestBase):
'include_schemas': True,
'metadata': self.m2
})
- autogenerate._produce_net_changes(self.autogen_context, diffs)
+ uo = ops.UpgradeOps(ops=[])
+ autogenerate._produce_net_changes(self.autogen_context, uo)
+ diffs = uo.as_diffs()
eq_(diffs[0][0], "add_table")
eq_(diffs[0][1].schema, config.test_schema)
def test_default_schema_omitted_downgrade(self):
- diffs = []
-
def include_object(obj, name, type_, reflected, compare_to):
if type_ == "table":
return name == "t1"
@@ -113,13 +113,14 @@ class AutogenCrossSchemaTest(AutogenTest, TestBase):
'include_schemas': True,
'metadata': self.m2
})
- autogenerate._produce_net_changes(self.autogen_context, diffs)
+ uo = ops.UpgradeOps(ops=[])
+ autogenerate._produce_net_changes(self.autogen_context, uo)
+ diffs = uo.as_diffs()
eq_(diffs[0][0], "remove_table")
eq_(diffs[0][1].schema, None)
def test_alt_schema_included_downgrade(self):
- diffs = []
def include_object(obj, name, type_, reflected, compare_to):
if type_ == "table":
@@ -131,7 +132,9 @@ class AutogenCrossSchemaTest(AutogenTest, TestBase):
'include_schemas': True,
'metadata': self.m2
})
- autogenerate._produce_net_changes(self.autogen_context, diffs)
+ uo = ops.UpgradeOps(ops=[])
+ autogenerate._produce_net_changes(self.autogen_context, uo)
+ diffs = uo.as_diffs()
eq_(diffs[0][0], "remove_table")
eq_(diffs[0][1].schema, config.test_schema)
@@ -398,21 +401,23 @@ class AutogenerateDiffTest(ModelOne, AutogenTest, TestBase):
eq_(alter_cols, set(['user_id', 'order', 'user']))
def test_skip_null_type_comparison_reflected(self):
- diff = []
+ ac = ops.AlterColumnOp("sometable", "somecol")
autogenerate.compare._compare_type(None, "sometable", "somecol",
Column("somecol", NULLTYPE),
Column("somecol", Integer()),
- diff, self.autogen_context
+ ac, self.autogen_context
)
+ diff = ac.to_diff_tuple()
assert not diff
def test_skip_null_type_comparison_local(self):
- diff = []
+ ac = ops.AlterColumnOp("sometable", "somecol")
autogenerate.compare._compare_type(None, "sometable", "somecol",
Column("somecol", Integer()),
Column("somecol", NULLTYPE),
- diff, self.autogen_context
+ ac, self.autogen_context
)
+ diff = ac.to_diff_tuple()
assert not diff
def test_custom_type_compare(self):
@@ -485,14 +490,16 @@ class AutogenerateDiffTestWSchema(ModelOne, AutogenTest, TestBase):
"""test generation of diff rules"""
metadata = self.m2
- diffs = []
self.autogen_context.update({
'object_filters': _default_object_filters,
'include_schemas': True,
'metadata': self.m2
})
- autogenerate._produce_net_changes(self.autogen_context, diffs)
+ uo = ops.UpgradeOps(ops=[])
+ autogenerate._produce_net_changes(self.autogen_context, uo)
+
+ diffs = uo.as_diffs()
eq_(
diffs[0],