From: Mike Bayer Date: Sat, 20 Sep 2014 18:45:10 +0000 (-0400) Subject: - move tests erroneously local to the "named" tests X-Git-Tag: rel_0_7_0~73 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb5573bd11c91812166018fb27234ee86301741a;p=thirdparty%2Fsqlalchemy%2Falembic.git - move tests erroneously local to the "named" tests - add tests for CAST within index --- diff --git a/tests/test_autogen_render.py b/tests/test_autogen_render.py index 54ace42c..c53e9e20 100644 --- a/tests/test_autogen_render.py +++ b/tests/test_autogen_render.py @@ -4,7 +4,7 @@ from alembic.testing import TestBase from sqlalchemy import MetaData, Column, Table, String, \ Numeric, CHAR, ForeignKey, DATETIME, Integer, \ - CheckConstraint, Unicode, Enum,\ + CheckConstraint, Unicode, Enum, cast,\ UniqueConstraint, Boolean, ForeignKeyConstraint,\ PrimaryKeyConstraint, Index, func, text, DefaultClause @@ -118,6 +118,20 @@ unique=False, """ "[sa.text('lower(test.code)')], unique=False)" ) + def test_render_add_index_cast(self): + m = MetaData() + t = Table( + 'test', m, + Column('id', Integer, primary_key=True), + Column('code', String(255)) + ) + idx = Index('test_lower_code_idx', cast(t.c.code, String)) + eq_ignore_whitespace( + autogenerate.render._add_index(idx, self.autogen_context), + "op.create_index('test_lower_code_idx', 'test', " + "[sa.text('CAST(test.code AS CHAR)')], unique=False)" + ) + def test_render_add_index_desc(self): m = MetaData() t = Table( @@ -802,6 +816,108 @@ render:primary_key\n)""" set(['from sqlalchemy.dialects import mysql']) ) + def test_render_server_default_text(self): + c = Column( + 'updated_at', TIMESTAMP(), + server_default=text('now()'), + nullable=False) + result = autogenerate.render._render_column( + c, self.autogen_context + ) + eq_( + result, + 'sa.Column(\'updated_at\', sa.TIMESTAMP(), ' + 'server_default=sa.text(\'now()\'), ' + 'nullable=False)' + ) + + def test_render_server_default_native_boolean(self): + autogen_context = { + 'opts': { + 'sqlalchemy_module_prefix': 'sa.', + 'alembic_module_prefix': 'op.', + }, + 'dialect': postgresql.dialect() + } + c = Column( + 'updated_at', Boolean(), + server_default=false(), + nullable=False) + result = autogenerate.render._render_column( + c, autogen_context, + ) + eq_( + result, + 'sa.Column(\'updated_at\', sa.Boolean(), ' + 'server_default=sa.text(\'false\'), ' + 'nullable=False)' + ) + + def test_render_server_default_non_native_boolean(self): + c = Column( + 'updated_at', Boolean(), + server_default=false(), + nullable=False) + autogen_context = { + 'opts': { + 'sqlalchemy_module_prefix': 'sa.', + 'alembic_module_prefix': 'op.', + }, + 'dialect': mysql.dialect() + } + + result = autogenerate.render._render_column( + c, autogen_context + ) + eq_( + result, + 'sa.Column(\'updated_at\', sa.Boolean(), ' + 'server_default=sa.text(\'0\'), ' + 'nullable=False)' + ) + + def test_render_server_default_func(self): + c = Column( + 'updated_at', TIMESTAMP(), + server_default=func.now(), + nullable=False) + result = autogenerate.render._render_column( + c, self.autogen_context + ) + eq_( + result, + 'sa.Column(\'updated_at\', sa.TIMESTAMP(), ' + 'server_default=sa.text(\'now()\'), ' + 'nullable=False)' + ) + + def test_render_server_default_int(self): + c = Column( + 'value', Integer, + server_default="0") + result = autogenerate.render._render_column( + c, self.autogen_context + ) + eq_( + result, + "sa.Column('value', sa.Integer(), " + "server_default='0', nullable=True)" + ) + + def test_render_modify_reflected_int_server_default(self): + eq_ignore_whitespace( + autogenerate.render._modify_col( + "sometable", "somecolumn", + self.autogen_context, + existing_type=Integer(), + existing_server_default=DefaultClause(text("5")), + nullable=True), + "op.alter_column('sometable', 'somecolumn', " + "existing_type=sa.Integer(), nullable=True, " + "existing_server_default=sa.text('5'))" + ) + + class RenderNamingConventionTest(TestBase): __requires__ = ('sqlalchemy_094',) @@ -962,97 +1078,3 @@ class RenderNamingConventionTest(TestBase): "sa.CheckConstraint('im a constraint', name=op.f('ck_t_cc1'))" ) - def test_render_server_default_text(self): - c = Column( - 'updated_at', TIMESTAMP(), - server_default=text('now()'), - nullable=False) - result = autogenerate.render._render_column( - c, self.autogen_context - ) - eq_( - result, - 'sa.Column(\'updated_at\', sa.TIMESTAMP(), ' - 'server_default=sa.text(\'now()\'), ' - '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.autogen_context - ) - eq_( - result, - 'sa.Column(\'updated_at\', sa.Boolean(), ' - 'server_default=sa.text(\'false\'), ' - 'nullable=False)' - ) - - def test_render_server_default_non_native_boolean(self): - c = Column( - 'updated_at', Boolean(), - server_default=false(), - nullable=False) - autogen_context = { - 'opts': { - 'sqlalchemy_module_prefix': 'sa.', - 'alembic_module_prefix': 'op.', - }, - 'dialect': mysql.dialect() - } - - result = autogenerate.render._render_column( - c, autogen_context - ) - eq_( - result, - 'sa.Column(\'updated_at\', sa.Boolean(), ' - 'server_default=sa.text(\'0\'), ' - 'nullable=False)' - ) - - def test_render_server_default_func(self): - c = Column( - 'updated_at', TIMESTAMP(), - server_default=func.now(), - nullable=False) - result = autogenerate.render._render_column( - c, self.autogen_context - ) - eq_( - result, - 'sa.Column(\'updated_at\', sa.TIMESTAMP(), ' - 'server_default=sa.text(\'now()\'), ' - 'nullable=False)' - ) - - def test_render_server_default_int(self): - c = Column( - 'value', Integer, - server_default="0") - result = autogenerate.render._render_column( - c, self.autogen_context - ) - eq_( - result, - "sa.Column('value', sa.Integer(), " - "server_default='0', nullable=True)" - ) - - def test_render_modify_reflected_int_server_default(self): - eq_ignore_whitespace( - autogenerate.render._modify_col( - "sometable", "somecolumn", - self.autogen_context, - existing_type=Integer(), - existing_server_default=DefaultClause(text("5")), - nullable=True), - "op.alter_column('sometable', 'somecolumn', " - "existing_type=sa.Integer(), nullable=True, " - "existing_server_default=sa.text('5'))" - ) -