summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2017-05-18 06:33:40 -0700
committerTim Graham <timograham@gmail.com>2017-05-18 09:33:40 -0400
commitf599747fc802f1db6cd4394c33fc9afb8aac370b (patch)
treeb9abaf038592e509b94e10c6c12e7edd5d8949e1
parent912ef7f49d4466c8bd0ab94f1c319ccc518c6a24 (diff)
Fixed #28152 -- Made migrations serialize sets as set literals rather than set().
-rw-r--r--django/contrib/auth/migrations/0001_initial.py2
-rw-r--r--django/contrib/contenttypes/migrations/0001_initial.py2
-rw-r--r--django/contrib/redirects/migrations/0001_initial.py2
-rw-r--r--django/db/migrations/serializer.py5
-rw-r--r--tests/migrations/test_migrations/0001_initial.py2
-rw-r--r--tests/migrations/test_migrations_fake_split_initial/0001_initial.py2
-rw-r--r--tests/migrations/test_migrations_initial_false/0001_not_initial.py2
-rw-r--r--tests/migrations/test_writer.py6
8 files changed, 15 insertions, 8 deletions
diff --git a/django/contrib/auth/migrations/0001_initial.py b/django/contrib/auth/migrations/0001_initial.py
index 5ab80b64e0..c1fbe9a613 100644
--- a/django/contrib/auth/migrations/0001_initial.py
+++ b/django/contrib/auth/migrations/0001_initial.py
@@ -26,7 +26,7 @@ class Migration(migrations.Migration):
],
options={
'ordering': ('content_type__app_label', 'content_type__model', 'codename'),
- 'unique_together': set([('content_type', 'codename')]),
+ 'unique_together': {('content_type', 'codename')},
'verbose_name': 'permission',
'verbose_name_plural': 'permissions',
},
diff --git a/django/contrib/contenttypes/migrations/0001_initial.py b/django/contrib/contenttypes/migrations/0001_initial.py
index 9bafd098e9..e55c320d80 100644
--- a/django/contrib/contenttypes/migrations/0001_initial.py
+++ b/django/contrib/contenttypes/migrations/0001_initial.py
@@ -29,6 +29,6 @@ class Migration(migrations.Migration):
),
migrations.AlterUniqueTogether(
name='contenttype',
- unique_together=set([('app_label', 'model')]),
+ unique_together={('app_label', 'model')},
),
]
diff --git a/django/contrib/redirects/migrations/0001_initial.py b/django/contrib/redirects/migrations/0001_initial.py
index fb0462f52c..5acf8c9be7 100644
--- a/django/contrib/redirects/migrations/0001_initial.py
+++ b/django/contrib/redirects/migrations/0001_initial.py
@@ -30,7 +30,7 @@ class Migration(migrations.Migration):
],
options={
'ordering': ('old_path',),
- 'unique_together': set([('site', 'old_path')]),
+ 'unique_together': {('site', 'old_path')},
'db_table': 'django_redirect',
'verbose_name': 'redirect',
'verbose_name_plural': 'redirects',
diff --git a/django/db/migrations/serializer.py b/django/db/migrations/serializer.py
index 9c135a5fa9..4df3776e54 100644
--- a/django/db/migrations/serializer.py
+++ b/django/db/migrations/serializer.py
@@ -244,8 +244,9 @@ class SequenceSerializer(BaseSequenceSerializer):
class SetSerializer(BaseSequenceSerializer):
def _format(self):
- # Don't use the literal "{%s}" as it doesn't support empty set
- return "set([%s])"
+ # Serialize as a set literal except when value is empty because {}
+ # is an empty dict.
+ return '{%s}' if self.value else 'set(%s)'
class SettingsReferenceSerializer(BaseSerializer):
diff --git a/tests/migrations/test_migrations/0001_initial.py b/tests/migrations/test_migrations/0001_initial.py
index 8572afa1aa..259568e8d4 100644
--- a/tests/migrations/test_migrations/0001_initial.py
+++ b/tests/migrations/test_migrations/0001_initial.py
@@ -30,6 +30,6 @@ class Migration(migrations.Migration):
),
migrations.AlterUniqueTogether(
name='author',
- unique_together=set([('name', 'slug')]),
+ unique_together={('name', 'slug')},
),
]
diff --git a/tests/migrations/test_migrations_fake_split_initial/0001_initial.py b/tests/migrations/test_migrations_fake_split_initial/0001_initial.py
index 2079c10be8..ef17e329ce 100644
--- a/tests/migrations/test_migrations_fake_split_initial/0001_initial.py
+++ b/tests/migrations/test_migrations_fake_split_initial/0001_initial.py
@@ -25,6 +25,6 @@ class Migration(migrations.Migration):
),
migrations.AlterUniqueTogether(
name='author',
- unique_together=set([('name', 'slug')]),
+ unique_together={('name', 'slug')},
),
]
diff --git a/tests/migrations/test_migrations_initial_false/0001_not_initial.py b/tests/migrations/test_migrations_initial_false/0001_not_initial.py
index 5347ad2934..388c3b61e4 100644
--- a/tests/migrations/test_migrations_initial_false/0001_not_initial.py
+++ b/tests/migrations/test_migrations_initial_false/0001_not_initial.py
@@ -25,6 +25,6 @@ class Migration(migrations.Migration):
),
migrations.AlterUniqueTogether(
name='author',
- unique_together=set([('name', 'slug')]),
+ unique_together={('name', 'slug')},
),
]
diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py
index 1e6455d2fa..6ca711042e 100644
--- a/tests/migrations/test_writer.py
+++ b/tests/migrations/test_writer.py
@@ -505,6 +505,12 @@ class WriterTests(SimpleTestCase):
self.assertSerializedEqual(frozenset())
self.assertSerializedEqual(frozenset("let it go"))
+ def test_serialize_set(self):
+ self.assertSerializedEqual(set())
+ self.assertSerializedResultEqual(set(), ('set()', set()))
+ self.assertSerializedEqual({'a'})
+ self.assertSerializedResultEqual({'a'}, ("{'a'}", set()))
+
def test_serialize_timedelta(self):
self.assertSerializedEqual(datetime.timedelta())
self.assertSerializedEqual(datetime.timedelta(minutes=42))