Refs #31468 -- Added tests for MigrationAutodetector.suggest_name().
This commit is contained in:
parent
780473d756
commit
5bd585a82d
|
@ -6,13 +6,13 @@ from django.apps import apps
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.auth.models import AbstractBaseUser
|
from django.contrib.auth.models import AbstractBaseUser
|
||||||
from django.core.validators import RegexValidator, validate_slug
|
from django.core.validators import RegexValidator, validate_slug
|
||||||
from django.db import connection, models
|
from django.db import connection, migrations, models
|
||||||
from django.db.migrations.autodetector import MigrationAutodetector
|
from django.db.migrations.autodetector import MigrationAutodetector
|
||||||
from django.db.migrations.graph import MigrationGraph
|
from django.db.migrations.graph import MigrationGraph
|
||||||
from django.db.migrations.loader import MigrationLoader
|
from django.db.migrations.loader import MigrationLoader
|
||||||
from django.db.migrations.questioner import MigrationQuestioner
|
from django.db.migrations.questioner import MigrationQuestioner
|
||||||
from django.db.migrations.state import ModelState, ProjectState
|
from django.db.migrations.state import ModelState, ProjectState
|
||||||
from django.test import TestCase, override_settings
|
from django.test import SimpleTestCase, TestCase, override_settings
|
||||||
from django.test.utils import isolate_lru_cache
|
from django.test.utils import isolate_lru_cache
|
||||||
|
|
||||||
from .models import FoodManager, FoodQuerySet
|
from .models import FoodManager, FoodQuerySet
|
||||||
|
@ -464,9 +464,9 @@ class AutodetectorTests(TestCase):
|
||||||
|
|
||||||
def repr_changes(self, changes, include_dependencies=False):
|
def repr_changes(self, changes, include_dependencies=False):
|
||||||
output = ""
|
output = ""
|
||||||
for app_label, migrations in sorted(changes.items()):
|
for app_label, migrations_ in sorted(changes.items()):
|
||||||
output += " %s:\n" % app_label
|
output += " %s:\n" % app_label
|
||||||
for migration in migrations:
|
for migration in migrations_:
|
||||||
output += " %s\n" % migration.name
|
output += " %s\n" % migration.name
|
||||||
for operation in migration.operations:
|
for operation in migration.operations:
|
||||||
output += " %s\n" % operation
|
output += " %s\n" % operation
|
||||||
|
@ -2479,3 +2479,22 @@ class AutodetectorTests(TestCase):
|
||||||
self.assertOperationTypes(changes, 'app', 0, ['RemoveField', 'CreateModel'])
|
self.assertOperationTypes(changes, 'app', 0, ['RemoveField', 'CreateModel'])
|
||||||
self.assertOperationAttributes(changes, 'app', 0, 0, name='title', model_name='readable')
|
self.assertOperationAttributes(changes, 'app', 0, 0, name='title', model_name='readable')
|
||||||
self.assertOperationAttributes(changes, 'app', 0, 1, name='book')
|
self.assertOperationAttributes(changes, 'app', 0, 1, name='book')
|
||||||
|
|
||||||
|
|
||||||
|
class AutodetectorSuggestNameTests(SimpleTestCase):
|
||||||
|
def test_single_operation(self):
|
||||||
|
ops = [migrations.CreateModel('Person', fields=[])]
|
||||||
|
self.assertEqual(MigrationAutodetector.suggest_name(ops), 'person')
|
||||||
|
ops = [migrations.DeleteModel('Person')]
|
||||||
|
self.assertEqual(MigrationAutodetector.suggest_name(ops), 'delete_person')
|
||||||
|
|
||||||
|
def test_two_create_models(self):
|
||||||
|
ops = [
|
||||||
|
migrations.CreateModel('Person', fields=[]),
|
||||||
|
migrations.CreateModel('Animal', fields=[]),
|
||||||
|
]
|
||||||
|
self.assertEqual(MigrationAutodetector.suggest_name(ops), 'animal_person')
|
||||||
|
|
||||||
|
def test_auto(self):
|
||||||
|
suggest_name = MigrationAutodetector.suggest_name([])
|
||||||
|
self.assertIs(suggest_name.startswith('auto_'), True)
|
||||||
|
|
Loading…
Reference in New Issue