This commit is contained in:
Andrew Godwin 2014-05-08 21:48:10 -07:00
parent 5400b29ebf
commit fdbd29dd27
3 changed files with 53 additions and 0 deletions

View File

@ -167,3 +167,25 @@ class ExecutorTests(MigrationTestBase):
executor.migrate([("migrations", None)]) executor.migrate([("migrations", None)])
self.assertTableNotExists("migrations_author") self.assertTableNotExists("migrations_author")
self.assertTableNotExists("migrations_tribble") self.assertTableNotExists("migrations_tribble")
@override_settings(
MIGRATION_MODULES={"migrations": "migrations.test_migrations_custom_user"},
AUTH_USER_MODEL="migrations.Author",
)
def test_custom_user(self):
"""
Regression test for #22325 - references to a custom user model defined in the
same app are not resolved correctly.
"""
executor = MigrationExecutor(connection)
self.assertTableNotExists("migrations_author")
self.assertTableNotExists("migrations_tribble")
# Migrate forwards
executor.migrate([("migrations", "0001_initial")])
self.assertTableExists("migrations_author")
self.assertTableExists("migrations_tribble")
# And migrate back to clean up the database
executor.loader.build_graph()
executor.migrate([("migrations", None)])
self.assertTableNotExists("migrations_author")
self.assertTableNotExists("migrations_tribble")

View File

@ -0,0 +1,31 @@
# encoding: utf8
from __future__ import unicode_literals
from django.db import migrations, models
from django.conf import settings
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
"Author",
[
("id", models.AutoField(primary_key=True)),
("name", models.CharField(max_length=255)),
],
),
migrations.CreateModel(
"Tribble",
[
("id", models.AutoField(primary_key=True)),
("author", models.ForeignKey(to=settings.AUTH_USER_MODEL, to_field="id")),
],
)
]