summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLoic Bistuer <loic.bistuer@sixmedia.com>2013-10-22 00:33:57 +0700
committerTim Graham <timograham@gmail.com>2013-10-21 14:54:52 -0400
commite565e1332ddfbb44fe7e6139375e3c243af7398d (patch)
treee435682dd384a2fa4aca78b378679c92076041f2 /tests
parent28b70425afb2fb8bcbec09d249e37fa786f8a155 (diff)
Fixed #21275 -- Fixed a serializer error when generating migrations for contrib.auth.
The migration serializer now looks for a deconstruct method on any object.
Diffstat (limited to 'tests')
-rw-r--r--tests/migrations/test_writer.py14
1 files changed, 14 insertions, 0 deletions
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))