Loading django/db/migrations/writer.py +8 −3 Original line number Diff line number Diff line from __future__ import unicode_literals import collections import datetime import inspect import decimal import collections from importlib import import_module import inspect import math import os import re import sys Loading Loading @@ -304,7 +305,11 @@ class MigrationWriter(object): elif isinstance(value, SettingsReference): return "settings.%s" % value.setting_name, {"from django.conf import settings"} # Simple types elif isinstance(value, six.integer_types + (float, bool, type(None))): elif isinstance(value, float): if math.isnan(value) or math.isinf(value): return 'float("{}")'.format(value), set() return repr(value), set() elif isinstance(value, six.integer_types + (bool, type(None))): return repr(value), set() elif isinstance(value, six.binary_type): value_repr = repr(value) Loading docs/releases/1.7.2.txt +3 −0 Original line number Diff line number Diff line Loading @@ -49,3 +49,6 @@ Bugfixes * Allowed usage of ``DateTimeField()`` as ``Transform.output_field`` (:ticket:`23420`). * Fixed a migration serializing bug involving ``float("nan")`` and ``float("inf")`` (:ticket:23770:). tests/migrations/test_writer.py +5 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ from __future__ import unicode_literals import datetime import math import os import re import tokenize Loading Loading @@ -69,6 +70,10 @@ class WriterTests(TestCase): """ # Basic values self.assertSerializedEqual(1) self.assertSerializedEqual(1.2) self.assertTrue(math.isinf(self.serialize_round_trip(float("inf")))) self.assertTrue(math.isinf(self.serialize_round_trip(float("-inf")))) self.assertTrue(math.isnan(self.serialize_round_trip(float("nan")))) self.assertSerializedEqual(None) self.assertSerializedEqual(b"foobar") string, imports = MigrationWriter.serialize(b"foobar") Loading Loading
django/db/migrations/writer.py +8 −3 Original line number Diff line number Diff line from __future__ import unicode_literals import collections import datetime import inspect import decimal import collections from importlib import import_module import inspect import math import os import re import sys Loading Loading @@ -304,7 +305,11 @@ class MigrationWriter(object): elif isinstance(value, SettingsReference): return "settings.%s" % value.setting_name, {"from django.conf import settings"} # Simple types elif isinstance(value, six.integer_types + (float, bool, type(None))): elif isinstance(value, float): if math.isnan(value) or math.isinf(value): return 'float("{}")'.format(value), set() return repr(value), set() elif isinstance(value, six.integer_types + (bool, type(None))): return repr(value), set() elif isinstance(value, six.binary_type): value_repr = repr(value) Loading
docs/releases/1.7.2.txt +3 −0 Original line number Diff line number Diff line Loading @@ -49,3 +49,6 @@ Bugfixes * Allowed usage of ``DateTimeField()`` as ``Transform.output_field`` (:ticket:`23420`). * Fixed a migration serializing bug involving ``float("nan")`` and ``float("inf")`` (:ticket:23770:).
tests/migrations/test_writer.py +5 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ from __future__ import unicode_literals import datetime import math import os import re import tokenize Loading Loading @@ -69,6 +70,10 @@ class WriterTests(TestCase): """ # Basic values self.assertSerializedEqual(1) self.assertSerializedEqual(1.2) self.assertTrue(math.isinf(self.serialize_round_trip(float("inf")))) self.assertTrue(math.isinf(self.serialize_round_trip(float("-inf")))) self.assertTrue(math.isnan(self.serialize_round_trip(float("nan")))) self.assertSerializedEqual(None) self.assertSerializedEqual(b"foobar") string, imports = MigrationWriter.serialize(b"foobar") Loading