diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-02-21 11:44:20 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-02-21 11:44:20 -0500 |
commit | 9d1c8132b3c322ce5b83726c503b070884313078 (patch) | |
tree | ea906cbe0ad48e8465a465c722e9c3fe6a88ccfd /tests/test_postgresql.py | |
parent | 93eb6ccbe10133d2c5ff52b8ca2faea81008d72a (diff) | |
download | alembic-9d1c8132b3c322ce5b83726c503b070884313078.tar.gz |
- move Postgresql-related render tests to the test_postgresql suite
Change-Id: I5e5659739269284c41bc9a7ae3127fb5d72d108f
Diffstat (limited to 'tests/test_postgresql.py')
-rw-r--r-- | tests/test_postgresql.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tests/test_postgresql.py b/tests/test_postgresql.py index a27deeb..07fb542 100644 --- a/tests/test_postgresql.py +++ b/tests/test_postgresql.py @@ -22,6 +22,12 @@ from alembic.testing.fixtures import TestBase from alembic.testing.fixtures import op_fixture from alembic.testing import config from alembic import op +from alembic.util import compat +from alembic.testing import eq_ignore_whitespace +from alembic import autogenerate +from sqlalchemy import Index +from sqlalchemy import Boolean +from sqlalchemy import false class PostgresqlOpTest(TestBase): @@ -535,3 +541,64 @@ class PostgresqlDetectSerialTest(TestBase): None, Column('x', Integer, autoincrement=False, primary_key=True) ) + + +class PostgresqlAutogenRenderTest(TestBase): + + def setUp(self): + ctx_opts = { + 'sqlalchemy_module_prefix': 'sa.', + 'alembic_module_prefix': 'op.', + 'target_metadata': MetaData() + } + context = MigrationContext.configure( + dialect_name="postgresql", + opts=ctx_opts + ) + + self.autogen_context = api.AutogenContext(context) + + def test_render_add_index_pg_where(self): + autogen_context = self.autogen_context + + m = MetaData() + t = Table('t', m, + Column('x', String), + Column('y', String) + ) + + idx = Index('foo_idx', t.c.x, t.c.y, + postgresql_where=(t.c.y == 'something')) + + op_obj = ops.CreateIndexOp.from_index(idx) + + if compat.sqla_08: + eq_ignore_whitespace( + autogenerate.render_op_text(autogen_context, op_obj), + """op.create_index('foo_idx', 't', \ +['x', 'y'], unique=False, """ + """postgresql_where=sa.text(!U"y = 'something'"))""" + ) + else: + eq_ignore_whitespace( + autogenerate.render_op_text(autogen_context, op_obj), + """op.create_index('foo_idx', 't', ['x', 'y'], \ +unique=False, """ + """postgresql_where=sa.text(!U't.y = %(y_1)s'))""" + ) + + def test_render_server_default_native_boolean(self): + c = Column( + 'updated_at', Boolean(), + server_default=false(), + nullable=False) + result = autogenerate.render._render_column( + c, self.autogen_context, + ) + eq_ignore_whitespace( + result, + 'sa.Column(\'updated_at\', sa.Boolean(), ' + 'server_default=sa.text(!U\'false\'), ' + 'nullable=False)' + ) + |