# renders
autogen_context.imports = set()
if migration_script.imports:
- autogen_context.imports.union_update(migration_script.imports)
+ autogen_context.imports.update(migration_script.imports)
render._render_python_into_templatevars(
autogen_context, migration_script, template_args
)
--- /dev/null
+.. change::
+ :tags: bug, autogenerate
+ :tickets: 512
+
+ Fixed issue where removed method ``union_update()`` was used when a
+ customized :class:`.MigrationScript` instance included entries in the
+ ``.imports`` data member, raising an AttributeError.
+
def tearDown(self):
clear_staging_env()
- def _env_fixture(self, target_metadata):
+ def _env_fixture(self, target_metadata, **kw):
self.engine = engine = _sqlite_file_db()
def run_env(self):
with engine.connect() as connection:
context.configure(
connection=connection,
- target_metadata=target_metadata)
+ target_metadata=target_metadata,
+ **kw)
with context.begin_transaction():
context.run_migrations()
Column('x', type_)
)
- with self._env_fixture(m):
+ def process_revision_directives(context, rev, generate_revisions):
+ generate_revisions[0].imports.add(
+ "from sqlalchemy.dialects.mysql import TINYINT")
+
+ with self._env_fixture(
+ m,
+ process_revision_directives=process_revision_directives
+ ):
rev = command.revision(
self.cfg, message="some message",
autogenerate=True)
with open(rev.path) as file_:
- assert "from sqlalchemy.dialects import mysql" in file_.read()
+ contents = file_.read()
+ assert "from sqlalchemy.dialects import mysql" in contents
+ assert "from sqlalchemy.dialects.mysql import TINYINT" in contents
class MultiContextTest(TestBase):