From: Mike Bayer Date: Mon, 28 Nov 2011 21:24:42 +0000 (-0500) Subject: add tests for #7 X-Git-Tag: rel_0_1_0~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c95bcf4fea3bd8942e4e4c4a0c5d0902dabef62;p=thirdparty%2Fsqlalchemy%2Falembic.git add tests for #7 --- diff --git a/tests/test_autogenerate.py b/tests/test_autogenerate.py index 1d0e0f72..5260b04f 100644 --- a/tests/test_autogenerate.py +++ b/tests/test_autogenerate.py @@ -1,5 +1,6 @@ from sqlalchemy import MetaData, Column, Table, Integer, String, Text, \ Numeric, CHAR, ForeignKey, DATETIME +from sqlalchemy.types import NULLTYPE from alembic import autogenerate, context from unittest import TestCase from tests import staging_env, sqlite_db, clear_staging_env, eq_, eq_ignore_whitespace @@ -74,6 +75,13 @@ class AutogenerateDiffTest(TestCase): compare_server_default = True, target_metadata=cls.m2 ) + connection = context.get_bind() + cls.autogen_context = { + 'imports':set(), + 'connection':connection, + 'dialect':connection.dialect, + 'context':context.get_context() + } @classmethod def teardown_class(cls): @@ -85,12 +93,8 @@ class AutogenerateDiffTest(TestCase): metadata = self.m2 connection = context.get_bind() diffs = [] - autogenerate._produce_net_changes(connection, metadata, diffs, { - 'imports':set(), - 'connection':connection, - 'dialect':connection.dialect, - 'context':context.get_context() - }) + autogenerate._produce_net_changes(connection, metadata, diffs, + self.autogen_context) eq_( diffs[0], @@ -139,7 +143,7 @@ class AutogenerateDiffTest(TestCase): metadata = self.m2 template_args = {} - autogenerate.produce_migration_diffs(template_args, {}) + autogenerate.produce_migration_diffs(template_args, self.autogen_context) eq_(template_args['upgrades'], """### commands auto generated by Alembic - please adjust! ### create_table('item', @@ -191,6 +195,27 @@ class AutogenerateDiffTest(TestCase): drop_column('address', 'street') ### end Alembic commands ###""") + def test_skip_null_type_comparison_reflected(self): + diff = [] + autogenerate._compare_type("sometable", "somecol", + {"name":"somecol", "type":NULLTYPE, + "nullable":True, "default":None}, + Column("somecol", Integer()), + diff, self.autogen_context + ) + assert not diff + + def test_skip_null_type_comparison_local(self): + diff = [] + autogenerate._compare_type("sometable", "somecol", + {"name":"somecol", "type":Integer(), + "nullable":True, "default":None}, + Column("somecol", NULLTYPE), + diff, self.autogen_context + ) + assert not diff + + class AutogenRenderTest(TestCase): """test individual directives"""