1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from django.test import TransactionTestCase
- from django.db import connection
- 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()))
- def assertTableNotExists(self, table):
- self.assertNotIn(table, connection.introspection.get_table_list(connection.cursor()))
- def assertColumnExists(self, table, column):
- self.assertIn(column, [c.name for c in connection.introspection.get_table_description(connection.cursor(), table)])
- def assertColumnNotExists(self, table, column):
- self.assertNotIn(column, [c.name for c in connection.introspection.get_table_description(connection.cursor(), table)])
- def assertColumnNull(self, table, column):
- self.assertEqual([c.null_ok for c in connection.introspection.get_table_description(connection.cursor(), table) if c.name == column][0], True)
- def assertColumnNotNull(self, table, column):
- self.assertEqual([c.null_ok for c in connection.introspection.get_table_description(connection.cursor(), table) if c.name == column][0], False)
- def assertIndexExists(self, table, columns, value=True):
- self.assertEqual(
- value,
- any(
- c["index"]
- for c in connection.introspection.get_constraints(connection.cursor(), table).values()
- if c['columns'] == list(columns)
- ),
- )
- def assertIndexNotExists(self, table, columns):
- return self.assertIndexExists(table, columns, False)
|