summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiper Merriam <pipermerriam@gmail.com>2015-07-28 14:08:28 -0600
committerTim Graham <timograham@gmail.com>2015-07-28 18:15:01 -0400
commitb1e552debf8303124a213008d319df9a817b4932 (patch)
tree5e9adde9851deeb645520f4aaad0487b49b2267b
parent5d60d2b4576429d7057fe9e64f4107033581b627 (diff)
Fixed #25186 -- Improved migration's serialization of builtins on Python 2.
-rw-r--r--django/db/migrations/writer.py3
-rw-r--r--tests/migrations/test_writer.py5
2 files changed, 8 insertions, 0 deletions
diff --git a/django/db/migrations/writer.py b/django/db/migrations/writer.py
index 11ecb6ed2b..b45ec0ceda 100644
--- a/django/db/migrations/writer.py
+++ b/django/db/migrations/writer.py
@@ -472,6 +472,9 @@ class MigrationWriter(object):
"For more information, see "
"https://docs.djangoproject.com/en/%s/topics/migrations/#serializing-values"
% (value.__name__, module_name, get_docs_version()))
+ # Needed on Python 2 only
+ if module_name == '__builtin__':
+ return value.__name__, set()
return "%s.%s" % (module_name, value.__name__), {"import %s" % module_name}
# Other iterables
elif isinstance(value, collections.Iterable):
diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py
index ef9489748d..16d2f2f062 100644
--- a/tests/migrations/test_writer.py
+++ b/tests/migrations/test_writer.py
@@ -359,6 +359,11 @@ class WriterTests(SimpleTestCase):
self.assertSerializedEqual(one_item_tuple)
self.assertSerializedEqual(many_items_tuple)
+ def test_serialize_builtins(self):
+ string, imports = MigrationWriter.serialize(range)
+ self.assertEqual(string, 'range')
+ self.assertEqual(imports, set())
+
@unittest.skipUnless(six.PY2, "Only applies on Python 2")
def test_serialize_direct_function_reference(self):
"""