Loading django/db/migrations/writer.py +4 −1 Original line number Diff line number Diff line Loading @@ -351,6 +351,9 @@ class MigrationWriter(object): return string, set(imports) if hasattr(value, "__module__"): module = value.__module__ if module == six.moves.builtins.__name__: return value.__name__, set() else: return "%s.%s" % (module, value.__name__), set(["import %s" % module]) # Other iterables elif isinstance(value, collections.Iterable): Loading docs/releases/1.7.1.txt +3 −0 Original line number Diff line number Diff line Loading @@ -83,3 +83,6 @@ Bugfixes * Coerced the ``related_name`` model field option to unicode during migration generation to generate migrations that work with both Python 2 and 3 (:ticket:`23455`). * Fixed ``MigrationWriter`` to handle builtin types without imports (:ticket:`23560`). tests/migrations/test_writer.py +5 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,11 @@ class WriterTests(TestCase): self.assertSerializedEqual(set([2, 3, "eighty"])) self.assertSerializedEqual({"lalalala": ["yeah", "no", "maybe"]}) self.assertSerializedEqual(_('Hello')) # Builtins self.assertSerializedEqual([list, tuple, dict, set]) string, imports = MigrationWriter.serialize([list, tuple, dict, set]) self.assertEqual(string, "[list, tuple, dict, set]") self.assertEqual(imports, set()) # Functions with six.assertRaisesRegex(self, ValueError, 'Cannot serialize function: lambda'): self.assertSerializedEqual(lambda x: 42) Loading Loading
django/db/migrations/writer.py +4 −1 Original line number Diff line number Diff line Loading @@ -351,6 +351,9 @@ class MigrationWriter(object): return string, set(imports) if hasattr(value, "__module__"): module = value.__module__ if module == six.moves.builtins.__name__: return value.__name__, set() else: return "%s.%s" % (module, value.__name__), set(["import %s" % module]) # Other iterables elif isinstance(value, collections.Iterable): Loading
docs/releases/1.7.1.txt +3 −0 Original line number Diff line number Diff line Loading @@ -83,3 +83,6 @@ Bugfixes * Coerced the ``related_name`` model field option to unicode during migration generation to generate migrations that work with both Python 2 and 3 (:ticket:`23455`). * Fixed ``MigrationWriter`` to handle builtin types without imports (:ticket:`23560`).
tests/migrations/test_writer.py +5 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,11 @@ class WriterTests(TestCase): self.assertSerializedEqual(set([2, 3, "eighty"])) self.assertSerializedEqual({"lalalala": ["yeah", "no", "maybe"]}) self.assertSerializedEqual(_('Hello')) # Builtins self.assertSerializedEqual([list, tuple, dict, set]) string, imports = MigrationWriter.serialize([list, tuple, dict, set]) self.assertEqual(string, "[list, tuple, dict, set]") self.assertEqual(imports, set()) # Functions with six.assertRaisesRegex(self, ValueError, 'Cannot serialize function: lambda'): self.assertSerializedEqual(lambda x: 42) Loading