summaryrefslogtreecommitdiff
path: root/tests/test_script_production.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-08-21 13:06:56 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2015-08-21 13:06:56 -0400
commitec7c2b721f73f2770e2ed9ac770bc873065c1e60 (patch)
treeaf06ee9ac888f6157544953fff56aaa01c713c1b /tests/test_script_production.py
parent28d37a9c57e0fcdfbe129e763e8a7f1d108ed9ee (diff)
downloadalembic-ec7c2b721f73f2770e2ed9ac770bc873065c1e60.tar.gz
- add a test and changelog notes for the fact that a non-autogenerate
run can render Python code in upgradeops/downgradeops via the process_revision_directives hook.
Diffstat (limited to 'tests/test_script_production.py')
-rw-r--r--tests/test_script_production.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/test_script_production.py b/tests/test_script_production.py
index c2d180a..d2e397f 100644
--- a/tests/test_script_production.py
+++ b/tests/test_script_production.py
@@ -329,6 +329,26 @@ def downgrade():
)
assert os.path.exists(rev_script.path)
+ def test_renders_added_directives_no_autogen(self):
+ m = sa.MetaData()
+
+ def process_revision_directives(context, rev, generate_revisions):
+ generate_revisions[0].upgrade_ops.ops.append(
+ ops.CreateIndexOp("some_index", "some_table", ["a", "b"])
+ )
+
+ with self._env_fixture(process_revision_directives, m):
+ rev = command.revision(
+ self.cfg, message="some message", head="model1@head", sql=True)
+
+ with mock.patch.object(rev.module, "op") as op_mock:
+ rev.module.upgrade()
+ eq_(
+ op_mock.mock_calls,
+ [mock.call.create_index(
+ 'some_index', 'some_table', ['a', 'b'], unique=False)]
+ )
+
def test_autogen(self):
m = sa.MetaData()
sa.Table('t', m, sa.Column('x', sa.Integer))