From e565e1332ddfbb44fe7e6139375e3c243af7398d Mon Sep 17 00:00:00 2001 From: Loic Bistuer Date: Tue, 22 Oct 2013 00:33:57 +0700 Subject: Fixed #21275 -- Fixed a serializer error when generating migrations for contrib.auth. The migration serializer now looks for a deconstruct method on any object. --- tests/migrations/test_writer.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'tests') diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py index 3e6fe50793..0d64d40350 100644 --- a/tests/migrations/test_writer.py +++ b/tests/migrations/test_writer.py @@ -6,11 +6,13 @@ import copy import datetime import os +from django.core.validators import RegexValidator, EmailValidator from django.db import models, migrations from django.db.migrations.writer import MigrationWriter from django.db.models.loading import cache from django.test import TestCase, override_settings from django.utils import six +from django.utils.deconstruct import deconstructible from django.utils.translation import ugettext_lazy as _ @@ -77,6 +79,18 @@ class WriterTests(TestCase): self.assertSerializedEqual(datetime.datetime.today) self.assertSerializedEqual(datetime.date.today()) self.assertSerializedEqual(datetime.date.today) + # Classes + validator = RegexValidator(message="hello") + string, imports = MigrationWriter.serialize(validator) + self.assertEqual(string, "django.core.validators.RegexValidator(message=%s)" % repr("hello")) + self.serialize_round_trip(validator) + validator = EmailValidator(message="hello") # Test with a subclass. + string, imports = MigrationWriter.serialize(validator) + self.assertEqual(string, "django.core.validators.EmailValidator(message=%s)" % repr("hello")) + self.serialize_round_trip(validator) + validator = deconstructible(path="custom.EmailValidator")(EmailValidator)(message="hello") + string, imports = MigrationWriter.serialize(validator) + self.assertEqual(string, "custom.EmailValidator(message=%s)" % repr("hello")) # Django fields self.assertSerializedFieldEqual(models.CharField(max_length=255)) self.assertSerializedFieldEqual(models.TextField(null=True, blank=True)) -- cgit v1.3