Browse Source

Fix some small errors in the tests

Andrew Godwin 11 years ago
parent
commit
ac45f9c9c5

+ 4 - 2
tests/migrations/test_base.py

@@ -1,12 +1,14 @@
-from django.test import TestCase
+from django.test import TransactionTestCase
 from django.db import connection
 
 
-class MigrationTestBase(TestCase):
+class MigrationTestBase(TransactionTestCase):
     """
     Contains an extended set of asserts for testing migrations and schema operations.
     """
 
+    available_apps = ["migrations"]
+
     def assertTableExists(self, table):
         self.assertIn(table, connection.introspection.get_table_list(connection.cursor()))
 

+ 5 - 0
tests/migrations/test_executor.py

@@ -38,6 +38,11 @@ class ExecutorTests(TransactionTestCase):
         # Are the tables there now?
         self.assertIn("migrations_author", connection.introspection.get_table_list(connection.cursor()))
         self.assertIn("migrations_book", connection.introspection.get_table_list(connection.cursor()))
+        # Alright, let's undo what we did
+        executor.migrate([("migrations", None)])
+        # Are the tables gone?
+        self.assertNotIn("migrations_author", connection.introspection.get_table_list(connection.cursor()))
+        self.assertNotIn("migrations_book", connection.introspection.get_table_list(connection.cursor()))
 
     @override_settings(MIGRATION_MODULES={"migrations": "migrations.test_migrations", "sessions": "migrations.test_migrations_2"})
     def test_empty_plan(self):

+ 7 - 6
tests/migrations/test_operations.py

@@ -127,12 +127,13 @@ class OperationTests(MigrationTestBase):
         self.assertTableExists("test_adflmm_pony_stables")
         self.assertColumnNotExists("test_adflmm_pony", "stables")
         # Make sure the M2M field actually works
-        app_cache = new_state.render()
-        Pony = app_cache.get_model("test_adflmm", "Pony")
-        p = Pony.objects.create(pink=False, weight=4.55)
-        p.stables.create()
-        self.assertEqual(p.stables.count(), 1)
-        p.stables.all().delete()
+        with atomic():
+            app_cache = new_state.render()
+            Pony = app_cache.get_model("test_adflmm", "Pony")
+            p = Pony.objects.create(pink=False, weight=4.55)
+            p.stables.create()
+            self.assertEqual(p.stables.count(), 1)
+            p.stables.all().delete()
         # And test reversal
         with connection.schema_editor() as editor:
             operation.database_backwards("test_adflmm", editor, new_state, project_state)

+ 2 - 2
tests/schema/tests.py

@@ -195,7 +195,7 @@ class SchemaTests(TransactionTestCase):
         # Ensure the field is right afterwards
         columns = self.column_classes(Author)
         self.assertEqual(columns['name'][0], "TextField")
-        self.assertEqual(columns['name'][1][6], bool(connection.features.interprets_empty_strings_as_nulls))
+        self.assertEqual(bool(columns['name'][1][6]), False)
 
     def test_rename(self):
         """
@@ -230,7 +230,7 @@ class SchemaTests(TransactionTestCase):
         # Create the tables
         with connection.schema_editor() as editor:
             editor.create_model(Author)
-            editor.create_model(Tag)
+            editor.create_model(TagM2MTest)
             editor.create_model(BookWithM2M)
         # Ensure there is now an m2m table there
         columns = self.column_classes(BookWithM2M._meta.get_field_by_name("tags")[0].rel.through)