]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
add tests for #7
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 28 Nov 2011 21:24:42 +0000 (16:24 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 28 Nov 2011 21:24:42 +0000 (16:24 -0500)
tests/test_autogenerate.py

index 1d0e0f72f2f422bd46ab2f6e46ba778c30cec4a9..5260b04fc7583cb988d61cd769f24fba50ffa3c5 100644 (file)
@@ -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"""