from sqlalchemy import MetaData, Column, Table, Integer, String, Text, \
- Numeric, CHAR, NUMERIC, ForeignKey, DATETIME
+ Numeric, CHAR, ForeignKey, DATETIME
from alembic import autogenerate, context
from unittest import TestCase
-from tests import staging_env, sqlite_db, clear_staging_env, eq_, eq_ignore_whitespace, capture_context_buffer, _no_sql_testing_config, _testing_config
+from tests import staging_env, sqlite_db, clear_staging_env, eq_, eq_ignore_whitespace
def _model_one():
m = MetaData()
class AutogenerateDiffTest(TestCase):
@classmethod
def setup_class(cls):
- env = staging_env()
+ staging_env()
cls.bind = sqlite_db()
cls.m1 = _model_one()
cls.m1.create_all(cls.bind)
clear_staging_env()
def test_diffs(self):
+ """test generation of diff rules"""
+
metadata = _model_two()
connection = self.bind.connect()
diffs = []
)
def test_render_diffs(self):
+ """test a full render including indentation"""
+
metadata = _model_two()
connection = self.bind.connect()
template_args = {}
context.configure(
- connection=self.bind.connect(),
+ connection=connection,
autogenerate_metadata=metadata)
autogenerate.produce_migration_diffs(template_args)
eq_(template_args['upgrades'],
drop_table(u'extra')
drop_column('user', u'pw')
alter_column('user', 'name', nullable=False)
- alter_column('order', u'amount', type=Numeric(precision=10, scale=2))
+ alter_column('order', u'amount', type=sa.Numeric(precision=10, scale=2))
alter_column('order', u'amount', nullable=True)
add_column('address', sa.Column('street', sa.String(length=50), nullable=True))
### end Alembic commands ###""")
)
add_column('user', sa.Column(u'pw', sa.VARCHAR(length=50), nullable=True))
alter_column('user', 'name', nullable=True)
- alter_column('order', u'amount', type=NUMERIC(precision=8, scale=2))
+ alter_column('order', u'amount', type=sa.NUMERIC(precision=8, scale=2))
alter_column('order', u'amount', nullable=False)
drop_column('address', 'street')
### end Alembic commands ###""")
class AutogenRenderTest(TestCase):
+ """test individual directives"""
+
@classmethod
def setup_class(cls):
context._context_opts['autogenerate_sqlalchemy_prefix'] = 'sa.'
eq_(
autogenerate._modify_type(
"sometable", "somecolumn", CHAR(10)),
- "alter_column('sometable', 'somecolumn', type=CHAR(length=10))"
+ "alter_column('sometable', 'somecolumn', type=sa.CHAR(length=10))"
)
def test_render_modify_nullable(self):