mirror of
https://github.com/django/django.git
synced 2025-08-03 10:34:04 +00:00
Add tests for the migrate command and fix a bug they exposed
This commit is contained in:
parent
162f7b938f
commit
00276e0414
6 changed files with 84 additions and 37 deletions
39
tests/migrations/test_base.py
Normal file
39
tests/migrations/test_base.py
Normal file
|
@ -0,0 +1,39 @@
|
|||
from django.test import TestCase
|
||||
from django.db import connection
|
||||
|
||||
|
||||
class MigrationTestBase(TestCase):
|
||||
"""
|
||||
Contains an extended set of asserts for testing migrations and schema operations.
|
||||
"""
|
||||
|
||||
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)
|
Loading…
Add table
Add a link
Reference in a new issue