From: Mike Bayer Date: Tue, 21 Feb 2017 16:44:20 +0000 (-0500) Subject: - move Postgresql-related render tests to the test_postgresql suite X-Git-Tag: rel_0_9_0~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d1c8132b3c322ce5b83726c503b070884313078;p=thirdparty%2Fsqlalchemy%2Falembic.git - move Postgresql-related render tests to the test_postgresql suite Change-Id: I5e5659739269284c41bc9a7ae3127fb5d72d108f --- diff --git a/tests/test_autogen_render.py b/tests/test_autogen_render.py index 4beabb07..64ca46c2 100644 --- a/tests/test_autogen_render.py +++ b/tests/test_autogen_render.py @@ -11,7 +11,6 @@ from sqlalchemy import MetaData, Column, Table, String, \ from sqlalchemy.types import TIMESTAMP from sqlalchemy.types import UserDefinedType -from sqlalchemy.dialects import mysql, postgresql from sqlalchemy.engine.default import DefaultDialect from sqlalchemy.sql import and_, column, literal_column, false, table from alembic.migration import MigrationContext @@ -41,24 +40,12 @@ class AutogenRenderTest(TestBase): 'target_metadata': MetaData() } context = MigrationContext.configure( - dialect_name="mysql", + dialect=DefaultDialect(), opts=ctx_opts ) self.autogen_context = api.AutogenContext(context) - context = MigrationContext.configure( - dialect_name="postgresql", - opts=ctx_opts - ) - self.pg_autogen_context = api.AutogenContext(context) - - context = MigrationContext.configure( - dialect=DefaultDialect(), - opts=ctx_opts - ) - self.default_autogen_context = api.AutogenContext(context) - def test_render_add_index(self): """ autogenerate.render._add_index @@ -135,35 +122,6 @@ class AutogenRenderTest(TestBase): "['active', 'code'], unique=False)" ) - def test_render_add_index_pg_where(self): - autogen_context = self.pg_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'))""" - ) - @config.requirements.fail_before_sqla_080 def test_render_add_index_func(self): m = MetaData() @@ -196,13 +154,13 @@ unique=False, """ eq_ignore_whitespace( autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_index('test_lower_code_idx', 'test', " - "[sa.text(!U'CAST(code AS CHAR)')], unique=False)" + "[sa.text(!U'CAST(code AS VARCHAR)')], unique=False)" ) else: eq_ignore_whitespace( autogenerate.render_op_text(self.autogen_context, op_obj), "op.create_index('test_lower_code_idx', 'test', " - "[sa.text(!U'CAST(test.code AS CHAR)')], unique=False)" + "[sa.text(!U'CAST(test.code AS VARCHAR)')], unique=False)" ) @config.requirements.fail_before_sqla_080 @@ -1404,21 +1362,6 @@ unique=False, """ 'nullable=False)' ) - 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.pg_autogen_context, - ) - eq_ignore_whitespace( - result, - 'sa.Column(\'updated_at\', sa.Boolean(), ' - 'server_default=sa.text(!U\'false\'), ' - 'nullable=False)' - ) - @config.requirements.fail_before_sqla_09 def test_render_server_default_non_native_boolean(self): c = Column( @@ -1427,7 +1370,7 @@ unique=False, """ nullable=False) result = autogenerate.render._render_column( - c, self.default_autogen_context + c, self.autogen_context ) eq_ignore_whitespace( result, diff --git a/tests/test_postgresql.py b/tests/test_postgresql.py index a27deebc..07fb542b 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)' + ) +