summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarkus Holtermann <info@markusholtermann.eu>2015-01-17 00:55:41 +0100
committerMarkus Holtermann <info@markusholtermann.eu>2015-01-20 01:24:41 +0100
commit7f20041bca43ca33f0a9617793f2af7ab07c3fab (patch)
tree4a1b9c58eff53a8b13b6eff91de0fcac0fc9ea29 /tests
parentbd691f4586c8ad45bd059ff9d3621cbf8afdcdce (diff)
Fixed #24155 -- Maintained kwargs and import order in migration writer
Thanks Tomas Dobrovolny for the report and Tim Graham for the review.
Diffstat (limited to 'tests')
-rw-r--r--tests/migrations/test_writer.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py
index 74c53b1a2d..6c6a654365 100644
--- a/tests/migrations/test_writer.py
+++ b/tests/migrations/test_writer.py
@@ -216,7 +216,15 @@ class WriterTests(TestCase):
def test_serialize_fields(self):
self.assertSerializedFieldEqual(models.CharField(max_length=255))
+ self.assertSerializedResultEqual(
+ models.CharField(max_length=255),
+ ("models.CharField(max_length=255)", {"from django.db import models"})
+ )
self.assertSerializedFieldEqual(models.TextField(null=True, blank=True))
+ self.assertSerializedResultEqual(
+ models.TextField(null=True, blank=True),
+ ("models.TextField(blank=True, null=True)", {'from django.db import models'})
+ )
def test_serialize_settings(self):
self.assertSerializedEqual(SettingsReference(settings.AUTH_USER_MODEL, "AUTH_USER_MODEL"))
@@ -419,6 +427,26 @@ class WriterTests(TestCase):
result['custom_migration_operations'].more_operations.TestOperation
)
+ def test_sorted_imports(self):
+ """
+ #24155 - Tests ordering of imports.
+ """
+ migration = type(str("Migration"), (migrations.Migration,), {
+ "operations": [
+ migrations.AddField("mymodel", "myfield", models.DateTimeField(
+ default=datetime.datetime(2012, 1, 1, 1, 1, tzinfo=utc),
+ )),
+ ]
+ })
+ writer = MigrationWriter(migration)
+ output = writer.as_string().decode('utf-8')
+ self.assertIn(
+ "import datetime\n"
+ "from django.db import migrations, models\n"
+ "from django.utils.timezone import utc\n",
+ output
+ )
+
def test_deconstruct_class_arguments(self):
# Yes, it doesn't make sense to use a class as a default for a
# CharField. It does make sense for custom fields though, for example