summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2014-03-31 15:25:08 -0400
committerSimon Charette <charette.s@gmail.com>2014-04-13 18:22:26 -0400
commit72d3889db4eb3a14acb94f613edd79f0f27d26e3 (patch)
tree4ed6813ee328d31a865d9f6cb7c8ba10f5457c95 /tests
parentb82f30785ff0f9fedf38fc79624a9064a903de4a (diff)
Fixed #22350 -- Consistently serialize bytes and text in migrations.
Thanks to @treyhunner and Loïc for their suggestions and review.
Diffstat (limited to 'tests')
-rw-r--r--tests/migrations/test_migrations/0001_initial.py3
-rw-r--r--tests/migrations/test_migrations/0002_second.py3
-rw-r--r--tests/migrations/test_migrations_2/0001_initial.py3
-rw-r--r--tests/migrations/test_migrations_conflict/0001_initial.py3
-rw-r--r--tests/migrations/test_migrations_conflict/0002_conflicting_second.py3
-rw-r--r--tests/migrations/test_migrations_conflict/0002_second.py3
-rw-r--r--tests/migrations/test_migrations_squashed/0001_initial.py3
-rw-r--r--tests/migrations/test_migrations_squashed/0001_squashed_0002.py3
-rw-r--r--tests/migrations/test_migrations_squashed/0002_second.py3
-rw-r--r--tests/migrations/test_migrations_unmigdep/0001_initial.py3
-rw-r--r--tests/migrations/test_writer.py23
11 files changed, 49 insertions, 4 deletions
diff --git a/tests/migrations/test_migrations/0001_initial.py b/tests/migrations/test_migrations/0001_initial.py
index 344bebdfe3..3544610eb4 100644
--- a/tests/migrations/test_migrations/0001_initial.py
+++ b/tests/migrations/test_migrations/0001_initial.py
@@ -1,3 +1,6 @@
+# encoding: utf8
+from __future__ import unicode_literals
+
from django.db import migrations, models
diff --git a/tests/migrations/test_migrations/0002_second.py b/tests/migrations/test_migrations/0002_second.py
index 736e844825..5da381677c 100644
--- a/tests/migrations/test_migrations/0002_second.py
+++ b/tests/migrations/test_migrations/0002_second.py
@@ -1,3 +1,6 @@
+# encoding: utf8
+from __future__ import unicode_literals
+
from django.db import migrations, models
diff --git a/tests/migrations/test_migrations_2/0001_initial.py b/tests/migrations/test_migrations_2/0001_initial.py
index 6172f011e8..cb15a04956 100644
--- a/tests/migrations/test_migrations_2/0001_initial.py
+++ b/tests/migrations/test_migrations_2/0001_initial.py
@@ -1,3 +1,6 @@
+# encoding: utf8
+from __future__ import unicode_literals
+
from django.db import migrations, models
diff --git a/tests/migrations/test_migrations_conflict/0001_initial.py b/tests/migrations/test_migrations_conflict/0001_initial.py
index 344bebdfe3..3544610eb4 100644
--- a/tests/migrations/test_migrations_conflict/0001_initial.py
+++ b/tests/migrations/test_migrations_conflict/0001_initial.py
@@ -1,3 +1,6 @@
+# encoding: utf8
+from __future__ import unicode_literals
+
from django.db import migrations, models
diff --git a/tests/migrations/test_migrations_conflict/0002_conflicting_second.py b/tests/migrations/test_migrations_conflict/0002_conflicting_second.py
index 15ea1f063a..cf83d7b036 100644
--- a/tests/migrations/test_migrations_conflict/0002_conflicting_second.py
+++ b/tests/migrations/test_migrations_conflict/0002_conflicting_second.py
@@ -1,3 +1,6 @@
+# encoding: utf8
+from __future__ import unicode_literals
+
from django.db import migrations, models
diff --git a/tests/migrations/test_migrations_conflict/0002_second.py b/tests/migrations/test_migrations_conflict/0002_second.py
index ace9a83347..0595de83f0 100644
--- a/tests/migrations/test_migrations_conflict/0002_second.py
+++ b/tests/migrations/test_migrations_conflict/0002_second.py
@@ -1,3 +1,6 @@
+# encoding: utf8
+from __future__ import unicode_literals
+
from django.db import migrations, models
diff --git a/tests/migrations/test_migrations_squashed/0001_initial.py b/tests/migrations/test_migrations_squashed/0001_initial.py
index 344bebdfe3..3544610eb4 100644
--- a/tests/migrations/test_migrations_squashed/0001_initial.py
+++ b/tests/migrations/test_migrations_squashed/0001_initial.py
@@ -1,3 +1,6 @@
+# encoding: utf8
+from __future__ import unicode_literals
+
from django.db import migrations, models
diff --git a/tests/migrations/test_migrations_squashed/0001_squashed_0002.py b/tests/migrations/test_migrations_squashed/0001_squashed_0002.py
index 742be641aa..b357e3f6f8 100644
--- a/tests/migrations/test_migrations_squashed/0001_squashed_0002.py
+++ b/tests/migrations/test_migrations_squashed/0001_squashed_0002.py
@@ -1,3 +1,6 @@
+# encoding: utf8
+from __future__ import unicode_literals
+
from django.db import migrations, models
diff --git a/tests/migrations/test_migrations_squashed/0002_second.py b/tests/migrations/test_migrations_squashed/0002_second.py
index ace9a83347..0595de83f0 100644
--- a/tests/migrations/test_migrations_squashed/0002_second.py
+++ b/tests/migrations/test_migrations_squashed/0002_second.py
@@ -1,3 +1,6 @@
+# encoding: utf8
+from __future__ import unicode_literals
+
from django.db import migrations, models
diff --git a/tests/migrations/test_migrations_unmigdep/0001_initial.py b/tests/migrations/test_migrations_unmigdep/0001_initial.py
index f4c11b4657..ff19085563 100644
--- a/tests/migrations/test_migrations_unmigdep/0001_initial.py
+++ b/tests/migrations/test_migrations_unmigdep/0001_initial.py
@@ -1,3 +1,6 @@
+# encoding: utf8
+from __future__ import unicode_literals
+
from django.db import migrations, models
diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py
index c3889df0e7..4d552532d4 100644
--- a/tests/migrations/test_writer.py
+++ b/tests/migrations/test_writer.py
@@ -1,9 +1,9 @@
# encoding: utf8
-
from __future__ import unicode_literals
import datetime
import os
+import tokenize
from django.core.validators import RegexValidator, EmailValidator
from django.db import models, migrations
@@ -59,7 +59,11 @@ class WriterTests(TestCase):
self.assertSerializedEqual(1)
self.assertSerializedEqual(None)
self.assertSerializedEqual(b"foobar")
+ string, imports = MigrationWriter.serialize(b"foobar")
+ self.assertEqual(string, "b'foobar'")
self.assertSerializedEqual("föobár")
+ string, imports = MigrationWriter.serialize("foobar")
+ self.assertEqual(string, "'foobar'")
self.assertSerializedEqual({1: 2})
self.assertSerializedEqual(["a", 2, True, None])
self.assertSerializedEqual(set([2, 3, "eighty"]))
@@ -92,15 +96,15 @@ class WriterTests(TestCase):
# Classes
validator = RegexValidator(message="hello")
string, imports = MigrationWriter.serialize(validator)
- self.assertEqual(string, "django.core.validators.RegexValidator(message=%s)" % repr("hello"))
+ self.assertEqual(string, "django.core.validators.RegexValidator(message='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.assertEqual(string, "django.core.validators.EmailValidator(message='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"))
+ self.assertEqual(string, "custom.EmailValidator(message='hello')")
# Django fields
self.assertSerializedFieldEqual(models.CharField(max_length=255))
self.assertSerializedFieldEqual(models.TextField(null=True, blank=True))
@@ -153,6 +157,17 @@ class WriterTests(TestCase):
# Just make sure it runs for now, and that things look alright.
result = self.safe_exec(output)
self.assertIn("Migration", result)
+ # In order to preserve compatibility with Python 3.2 unicode literals
+ # prefix shouldn't be added to strings.
+ tokens = tokenize.generate_tokens(six.StringIO(str(output)).readline)
+ for token_type, token_source, (srow, scol), _, line in tokens:
+ if token_type == tokenize.STRING:
+ self.assertFalse(
+ token_source.startswith('u'),
+ "Unicode literal prefix found at %d:%d: %r" % (
+ srow, scol, line.strip()
+ )
+ )
def test_migration_path(self):
test_apps = [