summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2012-07-20 14:48:51 +0200
committerAymeric Augustin <aymeric.augustin@m4x.org>2012-07-22 09:29:54 +0200
commitbdca5ea345c548a82a80d198906818c9ccbef896 (patch)
tree5c3f5fe5ad2522175d67b96a1fce1ff1763ba125 /tests
parent3cb2457f46b3e40ff6b6acffcb3fd44cbea091e5 (diff)
[py3] Replaced unicode/str by six.text_type/bytes.
Diffstat (limited to 'tests')
-rw-r--r--tests/modeltests/custom_columns/tests.py9
-rw-r--r--tests/modeltests/custom_managers/tests.py3
-rw-r--r--tests/modeltests/custom_pk/fields.py5
-rw-r--r--tests/modeltests/custom_pk/tests.py15
-rw-r--r--tests/modeltests/expressions/tests.py3
-rw-r--r--tests/modeltests/field_subclassing/fields.py4
-rw-r--r--tests/modeltests/lookup/models.py3
-rw-r--r--tests/modeltests/m2m_and_m2o/models.py3
-rw-r--r--tests/modeltests/m2m_intermediary/tests.py5
-rw-r--r--tests/modeltests/many_to_one/tests.py3
-rw-r--r--tests/modeltests/model_forms/models.py3
-rw-r--r--tests/modeltests/model_forms/tests.py33
-rw-r--r--tests/modeltests/model_formsets/models.py3
-rw-r--r--tests/modeltests/model_formsets/tests.py21
-rw-r--r--tests/modeltests/model_inheritance/tests.py5
-rw-r--r--tests/modeltests/order_with_respect_to/models.py3
-rw-r--r--tests/modeltests/pagination/tests.py7
-rw-r--r--tests/modeltests/prefetch_related/tests.py39
-rw-r--r--tests/modeltests/save_delete_hooks/tests.py3
-rw-r--r--tests/modeltests/serializers/models.py3
-rw-r--r--tests/modeltests/serializers/tests.py2
-rw-r--r--tests/modeltests/signals/tests.py3
-rw-r--r--tests/modeltests/update/models.py5
-rw-r--r--tests/regressiontests/admin_changelist/tests.py9
-rw-r--r--tests/regressiontests/admin_util/models.py3
-rw-r--r--tests/regressiontests/admin_util/tests.py7
-rw-r--r--tests/regressiontests/admin_views/tests.py7
-rw-r--r--tests/regressiontests/backends/tests.py5
-rw-r--r--tests/regressiontests/datatypes/tests.py3
-rw-r--r--tests/regressiontests/defaultfilters/tests.py7
-rw-r--r--tests/regressiontests/file_uploads/views.py3
-rw-r--r--tests/regressiontests/fixtures_regress/models.py3
-rw-r--r--tests/regressiontests/forms/tests/models.py3
-rw-r--r--tests/regressiontests/forms/tests/util.py3
-rw-r--r--tests/regressiontests/forms/tests/widgets.py7
-rw-r--r--tests/regressiontests/i18n/contenttypes/tests.py7
-rw-r--r--tests/regressiontests/i18n/tests.py9
-rw-r--r--tests/regressiontests/inline_formsets/tests.py5
-rw-r--r--tests/regressiontests/model_forms_regress/tests.py9
-rw-r--r--tests/regressiontests/model_formsets_regress/tests.py11
-rw-r--r--tests/regressiontests/model_regress/tests.py5
-rw-r--r--tests/regressiontests/queries/models.py3
-rw-r--r--tests/regressiontests/select_related_regress/tests.py5
-rw-r--r--tests/regressiontests/templates/templatetags/custom.py23
-rw-r--r--tests/regressiontests/templates/unicode.py3
-rw-r--r--tests/regressiontests/utils/simplelazyobject.py7
-rw-r--r--tests/regressiontests/wsgi/tests.py3
-rwxr-xr-xtests/runtests.py3
48 files changed, 191 insertions, 145 deletions
diff --git a/tests/modeltests/custom_columns/tests.py b/tests/modeltests/custom_columns/tests.py
index c1bb6f0a01..a2e5323a75 100644
--- a/tests/modeltests/custom_columns/tests.py
+++ b/tests/modeltests/custom_columns/tests.py
@@ -2,6 +2,7 @@ from __future__ import absolute_import
from django.core.exceptions import FieldError
from django.test import TestCase
+from django.utils import six
from .models import Author, Article
@@ -22,13 +23,13 @@ class CustomColumnsTests(TestCase):
Author.objects.all(), [
"Peter Jones", "John Smith",
],
- unicode
+ six.text_type
)
self.assertQuerysetEqual(
Author.objects.filter(first_name__exact="John"), [
"John Smith",
],
- unicode
+ six.text_type
)
self.assertEqual(
Author.objects.get(first_name__exact="John"),
@@ -55,7 +56,7 @@ class CustomColumnsTests(TestCase):
"Peter Jones",
"John Smith",
],
- unicode
+ six.text_type
)
# Get the articles for an author
self.assertQuerysetEqual(
@@ -69,5 +70,5 @@ class CustomColumnsTests(TestCase):
art.authors.filter(last_name='Jones'), [
"Peter Jones"
],
- unicode
+ six.text_type
)
diff --git a/tests/modeltests/custom_managers/tests.py b/tests/modeltests/custom_managers/tests.py
index bdba3d0733..294920de2b 100644
--- a/tests/modeltests/custom_managers/tests.py
+++ b/tests/modeltests/custom_managers/tests.py
@@ -1,6 +1,7 @@
from __future__ import absolute_import
from django.test import TestCase
+from django.utils import six
from .models import Person, Book, Car, PersonManager, PublishedBookManager
@@ -14,7 +15,7 @@ class CustomManagerTests(TestCase):
Person.objects.get_fun_people(), [
"Bugs Bunny"
],
- unicode
+ six.text_type
)
# The RelatedManager used on the 'books' descriptor extends the default
# manager
diff --git a/tests/modeltests/custom_pk/fields.py b/tests/modeltests/custom_pk/fields.py
index 40551a363c..68fb9dcd16 100644
--- a/tests/modeltests/custom_pk/fields.py
+++ b/tests/modeltests/custom_pk/fields.py
@@ -2,6 +2,7 @@ import random
import string
from django.db import models
+from django.utils import six
class MyWrapper(object):
@@ -44,12 +45,12 @@ class MyAutoField(models.CharField):
if not value:
return
if isinstance(value, MyWrapper):
- return unicode(value)
+ return six.text_type(value)
return value
def get_db_prep_value(self, value, connection, prepared=False):
if not value:
return
if isinstance(value, MyWrapper):
- return unicode(value)
+ return six.text_type(value)
return value
diff --git a/tests/modeltests/custom_pk/tests.py b/tests/modeltests/custom_pk/tests.py
index b473dcab59..3f562f0bed 100644
--- a/tests/modeltests/custom_pk/tests.py
+++ b/tests/modeltests/custom_pk/tests.py
@@ -3,6 +3,7 @@ from __future__ import absolute_import, unicode_literals
from django.db import transaction, IntegrityError
from django.test import TestCase, skipIfDBFeature
+from django.utils import six
from .models import Employee, Business, Bar, Foo
@@ -16,7 +17,7 @@ class CustomPKTests(TestCase):
Employee.objects.all(), [
"Dan Jones",
],
- unicode
+ six.text_type
)
fran = Employee.objects.create(
@@ -27,7 +28,7 @@ class CustomPKTests(TestCase):
"Fran Bones",
"Dan Jones",
],
- unicode
+ six.text_type
)
self.assertEqual(Employee.objects.get(pk=123), dan)
@@ -45,7 +46,7 @@ class CustomPKTests(TestCase):
"Fran Bones",
"Dan Jones",
],
- unicode
+ six.text_type
)
# The primary key can be accessed via the pk property on the model.
e = Employee.objects.get(pk=123)
@@ -63,7 +64,7 @@ class CustomPKTests(TestCase):
"Dan Jones",
"Fran Jones",
],
- unicode
+ six.text_type
)
emps = Employee.objects.in_bulk([123, 456])
@@ -76,7 +77,7 @@ class CustomPKTests(TestCase):
"Dan Jones",
"Fran Jones",
],
- unicode
+ six.text_type
)
self.assertQuerysetEqual(
fran.business_set.all(), [
@@ -108,14 +109,14 @@ class CustomPKTests(TestCase):
"Dan Jones",
"Fran Jones",
],
- unicode,
+ six.text_type,
)
self.assertQuerysetEqual(
Employee.objects.filter(business__pk="Sears"), [
"Dan Jones",
"Fran Jones",
],
- unicode,
+ six.text_type,
)
self.assertQuerysetEqual(
diff --git a/tests/modeltests/expressions/tests.py b/tests/modeltests/expressions/tests.py
index c4e2707109..99eb07e370 100644
--- a/tests/modeltests/expressions/tests.py
+++ b/tests/modeltests/expressions/tests.py
@@ -3,6 +3,7 @@ from __future__ import absolute_import, unicode_literals
from django.core.exceptions import FieldError
from django.db.models import F
from django.test import TestCase
+from django.utils import six
from .models import Company, Employee
@@ -156,7 +157,7 @@ class ExpressionsTests(TestCase):
"Frank Meyer",
"Max Mustermann",
],
- lambda c: unicode(c.point_of_contact),
+ lambda c: six.text_type(c.point_of_contact),
)
c = Company.objects.all()[0]
diff --git a/tests/modeltests/field_subclassing/fields.py b/tests/modeltests/field_subclassing/fields.py
index 553b031de3..a21085de9d 100644
--- a/tests/modeltests/field_subclassing/fields.py
+++ b/tests/modeltests/field_subclassing/fields.py
@@ -19,7 +19,7 @@ class Small(object):
return '%s%s' % (force_unicode(self.first), force_unicode(self.second))
def __str__(self):
- return unicode(self).encode('utf-8')
+ return six.text_type(self).encode('utf-8')
class SmallField(models.Field):
"""
@@ -42,7 +42,7 @@ class SmallField(models.Field):
return Small(value[0], value[1])
def get_db_prep_save(self, value, connection):
- return unicode(value)
+ return six.text_type(value)
def get_prep_lookup(self, lookup_type, value):
if lookup_type == 'exact':
diff --git a/tests/modeltests/lookup/models.py b/tests/modeltests/lookup/models.py
index 3e5d61538a..b685750347 100644
--- a/tests/modeltests/lookup/models.py
+++ b/tests/modeltests/lookup/models.py
@@ -7,6 +7,7 @@ This demonstrates features of the database API.
from __future__ import unicode_literals
from django.db import models
+from django.utils import six
class Author(models.Model):
@@ -35,7 +36,7 @@ class Season(models.Model):
gt = models.IntegerField(null=True, blank=True)
def __unicode__(self):
- return unicode(self.year)
+ return six.text_type(self.year)
class Game(models.Model):
season = models.ForeignKey(Season, related_name='games')
diff --git a/tests/modeltests/m2m_and_m2o/models.py b/tests/modeltests/m2m_and_m2o/models.py
index 6c1f277811..92ed3fbcd9 100644
--- a/tests/modeltests/m2m_and_m2o/models.py
+++ b/tests/modeltests/m2m_and_m2o/models.py
@@ -6,6 +6,7 @@ Make sure to set ``related_name`` if you use relationships to the same table.
from __future__ import unicode_literals
from django.db import models
+from django.utils import six
class User(models.Model):
@@ -17,7 +18,7 @@ class Issue(models.Model):
client = models.ForeignKey(User, related_name='test_issue_client')
def __unicode__(self):
- return unicode(self.num)
+ return six.text_type(self.num)
class Meta:
ordering = ('num',)
diff --git a/tests/modeltests/m2m_intermediary/tests.py b/tests/modeltests/m2m_intermediary/tests.py
index cdc762246a..f261f23546 100644
--- a/tests/modeltests/m2m_intermediary/tests.py
+++ b/tests/modeltests/m2m_intermediary/tests.py
@@ -3,6 +3,7 @@ from __future__ import absolute_import
from datetime import datetime
from django.test import TestCase
+from django.utils import six
from .models import Reporter, Article, Writer
@@ -24,7 +25,7 @@ class M2MIntermediaryTests(TestCase):
("John Smith", "Main writer"),
("Jane Doe", "Contributor"),
],
- lambda w: (unicode(w.reporter), w.position)
+ lambda w: (six.text_type(w.reporter), w.position)
)
self.assertEqual(w1.reporter, r1)
self.assertEqual(w2.reporter, r2)
@@ -36,5 +37,5 @@ class M2MIntermediaryTests(TestCase):
r1.writer_set.all(), [
("John Smith", "Main writer")
],
- lambda w: (unicode(w.reporter), w.position)
+ lambda w: (six.text_type(w.reporter), w.position)
)
diff --git a/tests/modeltests/many_to_one/tests.py b/tests/modeltests/many_to_one/tests.py
index fd849df051..20bd1be0df 100644
--- a/tests/modeltests/many_to_one/tests.py
+++ b/tests/modeltests/many_to_one/tests.py
@@ -5,6 +5,7 @@ from datetime import datetime
from django.core.exceptions import MultipleObjectsReturned, FieldError
from django.test import TestCase
+from django.utils import six
from django.utils.translation import ugettext_lazy
from .models import Article, Reporter
@@ -421,7 +422,7 @@ class ManyToOneTests(TestCase):
lazy = ugettext_lazy('test')
reporter.article_set.create(headline=lazy,
pub_date=datetime(2011, 6, 10))
- notlazy = unicode(lazy)
+ notlazy = six.text_type(lazy)
article = reporter.article_set.get()
self.assertEqual(article.headline, notlazy)
diff --git a/tests/modeltests/model_forms/models.py b/tests/modeltests/model_forms/models.py
index a4ce86f184..8942b21f73 100644
--- a/tests/modeltests/model_forms/models.py
+++ b/tests/modeltests/model_forms/models.py
@@ -13,6 +13,7 @@ import tempfile
from django.core.files.storage import FileSystemStorage
from django.db import models
+from django.utils import six
temp_storage_dir = tempfile.mkdtemp(dir=os.environ['DJANGO_TEST_TEMP_DIR'])
@@ -226,7 +227,7 @@ class BigInt(models.Model):
biggie = models.BigIntegerField()
def __unicode__(self):
- return unicode(self.biggie)
+ return six.text_type(self.biggie)
class MarkupField(models.CharField):
def __init__(self, *args, **kwargs):
diff --git a/tests/modeltests/model_forms/tests.py b/tests/modeltests/model_forms/tests.py
index 281316a28e..fc37a25872 100644
--- a/tests/modeltests/model_forms/tests.py
+++ b/tests/modeltests/model_forms/tests.py
@@ -11,6 +11,7 @@ from django.db import connection
from django.forms.models import model_to_dict
from django.utils.unittest import skipUnless
from django.test import TestCase
+from django.utils import six
from .models import (Article, ArticleStatus, BetterWriter, BigInt, Book,
Category, CommaSeparatedInteger, CustomFieldForExclusionModel, DerivedBook,
@@ -653,7 +654,7 @@ class OldFormForXTests(TestCase):
# ManyToManyFields are represented by a MultipleChoiceField, ForeignKeys and any
# fields with the 'choices' attribute are represented by a ChoiceField.
f = ArticleForm(auto_id=False)
- self.assertHTMLEqual(unicode(f), '''<tr><th>Headline:</th><td><input type="text" name="headline" maxlength="50" /></td></tr>
+ self.assertHTMLEqual(six.text_type(f), '''<tr><th>Headline:</th><td><input type="text" name="headline" maxlength="50" /></td></tr>
<tr><th>Slug:</th><td><input type="text" name="slug" maxlength="50" /></td></tr>
<tr><th>Pub date:</th><td><input type="text" name="pub_date" /></td></tr>
<tr><th>Writer:</th><td><select name="writer">
@@ -681,14 +682,14 @@ class OldFormForXTests(TestCase):
# a value of None. If a field isn't specified on a form, the object created
# from the form can't provide a value for that field!
f = PartialArticleForm(auto_id=False)
- self.assertHTMLEqual(unicode(f), '''<tr><th>Headline:</th><td><input type="text" name="headline" maxlength="50" /></td></tr>
+ self.assertHTMLEqual(six.text_type(f), '''<tr><th>Headline:</th><td><input type="text" name="headline" maxlength="50" /></td></tr>
<tr><th>Pub date:</th><td><input type="text" name="pub_date" /></td></tr>''')
# When the ModelForm is passed an instance, that instance's current values are
# inserted as 'initial' data in each Field.
w = Writer.objects.get(name='Mike Royko')
f = RoykoForm(auto_id=False, instance=w)
- self.assertHTMLEqual(unicode(f), '''<tr><th>Name:</th><td><input type="text" name="name" value="Mike Royko" maxlength="50" /><br /><span class="helptext">Use both first and last names.</span></td></tr>''')
+ self.assertHTMLEqual(six.text_type(f), '''<tr><th>Name:</th><td><input type="text" name="name" value="Mike Royko" maxlength="50" /><br /><span class="helptext">Use both first and last names.</span></td></tr>''')
art = Article(
headline='Test article',
@@ -725,7 +726,7 @@ class OldFormForXTests(TestCase):
'headline': 'Test headline',
'slug': 'test-headline',
'pub_date': '1984-02-06',
- 'writer': unicode(w_royko.pk),
+ 'writer': six.text_type(w_royko.pk),
'article': 'Hello.'
}, instance=art)
self.assertEqual(f.errors, {})
@@ -808,9 +809,9 @@ class OldFormForXTests(TestCase):
'headline': 'New headline',
'slug': 'new-headline',
'pub_date': '1988-01-04',
- 'writer': unicode(w_royko.pk),
+ 'writer': six.text_type(w_royko.pk),
'article': 'Hello.',
- 'categories': [unicode(c1.id), unicode(c2.id)]
+ 'categories': [six.text_type(c1.id), six.text_type(c2.id)]
}, instance=new_art)
new_art = f.save()
self.assertEqual(new_art.id == art_id_1, True)
@@ -820,7 +821,7 @@ class OldFormForXTests(TestCase):
# Now, submit form data with no categories. This deletes the existing categories.
f = TestArticleForm({'headline': 'New headline', 'slug': 'new-headline', 'pub_date': '1988-01-04',
- 'writer': unicode(w_royko.pk), 'article': 'Hello.'}, instance=new_art)
+ 'writer': six.text_type(w_royko.pk), 'article': 'Hello.'}, instance=new_art)
new_art = f.save()
self.assertEqual(new_art.id == art_id_1, True)
new_art = Article.objects.get(id=art_id_1)
@@ -828,7 +829,7 @@ class OldFormForXTests(TestCase):
# Create a new article, with categories, via the form.
f = ArticleForm({'headline': 'The walrus was Paul', 'slug': 'walrus-was-paul', 'pub_date': '1967-11-01',
- 'writer': unicode(w_royko.pk), 'article': 'Test.', 'categories': [unicode(c1.id), unicode(c2.id)]})
+ 'writer': six.text_type(w_royko.pk), 'article': 'Test.', 'categories': [six.text_type(c1.id), six.text_type(c2.id)]})
new_art = f.save()
art_id_2 = new_art.id
self.assertEqual(art_id_2 not in (None, art_id_1), True)
@@ -837,7 +838,7 @@ class OldFormForXTests(TestCase):
# Create a new article, with no categories, via the form.
f = ArticleForm({'headline': 'The walrus was Paul', 'slug': 'walrus-was-paul', 'pub_date': '1967-11-01',
- 'writer': unicode(w_royko.pk), 'article': 'Test.'})
+ 'writer': six.text_type(w_royko.pk), 'article': 'Test.'})
new_art = f.save()
art_id_3 = new_art.id
self.assertEqual(art_id_3 not in (None, art_id_1, art_id_2), True)
@@ -847,7 +848,7 @@ class OldFormForXTests(TestCase):
# Create a new article, with categories, via the form, but use commit=False.
# The m2m data won't be saved until save_m2m() is invoked on the form.
f = ArticleForm({'headline': 'The walrus was Paul', 'slug': 'walrus-was-paul', 'pub_date': '1967-11-01',
- 'writer': unicode(w_royko.pk), 'article': 'Test.', 'categories': [unicode(c1.id), unicode(c2.id)]})
+ 'writer': six.text_type(w_royko.pk), 'article': 'Test.', 'categories': [six.text_type(c1.id), six.text_type(c2.id)]})
new_art = f.save(commit=False)
# Manually save the instance
@@ -1091,12 +1092,12 @@ class OldFormForXTests(TestCase):
<p><label for="id_age">Age:</label> <input type="text" name="age" id="id_age" /></p>''' % (w_woodward.pk, w_bernstein.pk, bw.pk, w_royko.pk))
data = {
- 'writer': unicode(w_woodward.pk),
+ 'writer': six.text_type(w_woodward.pk),
'age': '65',
}
form = WriterProfileForm(data)
instance = form.save()
- self.assertEqual(unicode(instance), 'Bob Woodward is 65')
+ self.assertEqual(six.text_type(instance), 'Bob Woodward is 65')
form = WriterProfileForm(instance=instance)
self.assertHTMLEqual(form.as_p(), '''<p><label for="id_writer">Writer:</label> <select name="writer" id="id_writer">
@@ -1376,7 +1377,7 @@ class OldFormForXTests(TestCase):
# Similar to a regular Form class you can define custom media to be used on
# the ModelForm.
f = ModelFormWithMedia()
- self.assertHTMLEqual(unicode(f.media), '''<link href="/some/form/css" type="text/css" media="all" rel="stylesheet" />
+ self.assertHTMLEqual(six.text_type(f.media), '''<link href="/some/form/css" type="text/css" media="all" rel="stylesheet" />
<script type="text/javascript" src="/some/form/javascript"></script>''')
f = CommaSeparatedIntegerForm({'field': '1,2,3'})
@@ -1445,7 +1446,7 @@ class OldFormForXTests(TestCase):
(22, 'Pear')))
form = InventoryForm(instance=core)
- self.assertHTMLEqual(unicode(form['parent']), '''<select name="parent" id="id_parent">
+ self.assertHTMLEqual(six.text_type(form['parent']), '''<select name="parent" id="id_parent">
<option value="">---------</option>
<option value="86" selected="selected">Apple</option>
<option value="87">Core</option>
@@ -1466,7 +1467,7 @@ class OldFormForXTests(TestCase):
self.assertEqual(CategoryForm.base_fields.keys(),
['description', 'url'])
- self.assertHTMLEqual(unicode(CategoryForm()), '''<tr><th><label for="id_description">Description:</label></th><td><input type="text" name="description" id="id_description" /></td></tr>
+ self.assertHTMLEqual(six.text_type(CategoryForm()), '''<tr><th><label for="id_description">Description:</label></th><td><input type="text" name="description" id="id_description" /></td></tr>
<tr><th><label for="id_url">The URL:</label></th><td><input id="id_url" type="text" name="url" maxlength="40" /></td></tr>''')
# to_field_name should also work on ModelMultipleChoiceField ##################
@@ -1481,5 +1482,5 @@ class OldFormForXTests(TestCase):
def test_model_field_that_returns_none_to_exclude_itself_with_explicit_fields(self):
self.assertEqual(CustomFieldForExclusionForm.base_fields.keys(), ['name'])
- self.assertHTMLEqual(unicode(CustomFieldForExclusionForm()),
+ self.assertHTMLEqual(six.text_type(CustomFieldForExclusionForm()),
'''<tr><th><label for="id_name">Name:</label></th><td><input id="id_name" type="text" name="name" maxlength="10" /></td></tr>''')
diff --git a/tests/modeltests/model_formsets/models.py b/tests/modeltests/model_formsets/models.py
index 055aa8dff1..a01a2da0fa 100644
--- a/tests/modeltests/model_formsets/models.py
+++ b/tests/modeltests/model_formsets/models.py
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
import datetime
from django.db import models
+from django.utils import six
class Author(models.Model):
@@ -149,7 +150,7 @@ class Revision(models.Model):
unique_together = (("repository", "revision"),)
def __unicode__(self):
- return "%s (%s)" % (self.revision, unicode(self.repository))
+ return "%s (%s)" % (self.revision, six.text_type(self.repository))
# models for testing callable defaults (see bug #7975). If you define a model
# with a callable default value, you cannot rely on the initial value in a
diff --git a/tests/modeltests/model_formsets/tests.py b/tests/modeltests/model_formsets/tests.py
index 309dd3aaa2..e28560b237 100644
--- a/tests/modeltests/model_formsets/tests.py
+++ b/tests/modeltests/model_formsets/tests.py
@@ -10,6 +10,7 @@ from django.db import models
from django.forms.models import (_get_foreign_key, inlineformset_factory,
modelformset_factory)
from django.test import TestCase, skipUnlessDBFeature
+from django.utils import six
from .models import (Author, BetterAuthor, Book, BookWithCustomPK,
BookWithOptionalAltEditor, AlternateBook, AuthorMeeting, CustomPrimaryKey,
@@ -72,7 +73,7 @@ class DeletionTests(TestCase):
'form-TOTAL_FORMS': '1',
'form-INITIAL_FORMS': '1',
'form-MAX_NUM_FORMS': '0',
- 'form-0-id': unicode(poet.id),
+ 'form-0-id': six.text_type(poet.id),
'form-0-name': 'x' * 1000,
}
formset = PoetFormSet(data, queryset=Poet.objects.all())
@@ -772,7 +773,7 @@ class ModelFormsetTest(TestCase):
'owner_set-TOTAL_FORMS': '3',
'owner_set-INITIAL_FORMS': '1',
'owner_set-MAX_NUM_FORMS': '',
- 'owner_set-0-auto_id': unicode(owner1.auto_id),
+ 'owner_set-0-auto_id': six.text_type(owner1.auto_id),
'owner_set-0-name': 'Joe Perry',
'owner_set-1-auto_id': '',
'owner_set-1-name': 'Jack Berry',
@@ -835,7 +836,7 @@ class ModelFormsetTest(TestCase):
'ownerprofile-TOTAL_FORMS': '1',
'ownerprofile-INITIAL_FORMS': '1',
'ownerprofile-MAX_NUM_FORMS': '1',
- 'ownerprofile-0-owner': unicode(owner1.auto_id),
+ 'ownerprofile-0-owner': six.text_type(owner1.auto_id),
'ownerprofile-0-age': '55',
}
formset = FormSet(data, instance=owner1)
@@ -993,8 +994,8 @@ class ModelFormsetTest(TestCase):
'membership_set-TOTAL_FORMS': '1',
'membership_set-INITIAL_FORMS': '0',
'membership_set-MAX_NUM_FORMS': '',
- 'membership_set-0-date_joined': unicode(now.strftime('%Y-%m-%d %H:%M:%S')),
- 'initial-membership_set-0-date_joined': unicode(now.strftime('%Y-%m-%d %H:%M:%S')),
+ 'membership_set-0-date_joined': six.text_type(now.strftime('%Y-%m-%d %H:%M:%S')),
+ 'initial-membership_set-0-date_joined': six.text_type(now.strftime('%Y-%m-%d %H:%M:%S')),
'membership_set-0-karma': '',
}
formset = FormSet(data, instance=person)
@@ -1007,8 +1008,8 @@ class ModelFormsetTest(TestCase):
'membership_set-TOTAL_FORMS': '1',
'membership_set-INITIAL_FORMS': '0',
'membership_set-MAX_NUM_FORMS': '',
- 'membership_set-0-date_joined': unicode(one_day_later.strftime('%Y-%m-%d %H:%M:%S')),
- 'initial-membership_set-0-date_joined': unicode(now.strftime('%Y-%m-%d %H:%M:%S')),
+ 'membership_set-0-date_joined': six.text_type(one_day_later.strftime('%Y-%m-%d %H:%M:%S')),
+ 'initial-membership_set-0-date_joined': six.text_type(now.strftime('%Y-%m-%d %H:%M:%S')),
'membership_set-0-karma': '',
}
formset = FormSet(filled_data, instance=person)
@@ -1029,9 +1030,9 @@ class ModelFormsetTest(TestCase):
'membership_set-TOTAL_FORMS': '1',
'membership_set-INITIAL_FORMS': '0',
'membership_set-MAX_NUM_FORMS': '',
- 'membership_set-0-date_joined_0': unicode(now.strftime('%Y-%m-%d')),
- 'membership_set-0-date_joined_1': unicode(now.strftime('%H:%M:%S')),
- 'initial-membership_set-0-date_joined': unicode(now.strftime('%Y-%m-%d %H:%M:%S')),
+ 'membership_set-0-date_joined_0': six.text_type(now.strftime('%Y-%m-%d')),
+ 'membership_set-0-date_joined_1': six.text_type(now.strftime('%H:%M:%S')),
+ 'initial-membership_set-0-date_joined': six.text_type(now.strftime('%Y-%m-%d %H:%M:%S')),
'membership_set-0-karma': '',
}
formset = FormSet(data, instance=person)
diff --git a/tests/modeltests/model_inheritance/tests.py b/tests/modeltests/model_inheritance/tests.py
index 695d3f836c..16d2242fbe 100644
--- a/tests/modeltests/model_inheritance/tests.py
+++ b/tests/modeltests/model_inheritance/tests.py
@@ -4,6 +4,7 @@ from operator import attrgetter
from django.core.exceptions import FieldError
from django.test import TestCase
+from django.utils import six
from .models import (Chef, CommonInfo, ItalianRestaurant, ParkingLot, Place,
Post, Restaurant, Student, StudentWorker, Supplier, Worker, MixinModel)
@@ -21,8 +22,8 @@ class ModelInheritanceTests(TestCase):
s = Student.objects.create(name="Pebbles", age=5, school_class="1B")
- self.assertEqual(unicode(w1), "Worker Fred")
- self.assertEqual(unicode(s), "Student Pebbles")
+ self.assertEqual(six.text_type(w1), "Worker Fred")
+ self.assertEqual(six.text_type(s), "Student Pebbles")
# The children inherit the Meta class of their parents (if they don't
# specify their own).
diff --git a/tests/modeltests/order_with_respect_to/models.py b/tests/modeltests/order_with_respect_to/models.py
index 59f01d4cd1..a4e20c2fe0 100644
--- a/tests/modeltests/order_with_respect_to/models.py
+++ b/tests/modeltests/order_with_respect_to/models.py
@@ -3,6 +3,7 @@ Tests for the order_with_respect_to Meta attribute.
"""
from django.db import models
+from django.utils import six
class Question(models.Model):
@@ -16,7 +17,7 @@ class Answer(models.Model):
order_with_respect_to = 'question'
def __unicode__(self):
- return unicode(self.text)
+ return six.text_type(self.text)
class Post(models.Model):
title = models.CharField(max_length=200)
diff --git a/tests/modeltests/pagination/tests.py b/tests/modeltests/pagination/tests.py
index 4d5d8680e4..cba8825ec4 100644
--- a/tests/modeltests/pagination/tests.py
+++ b/tests/modeltests/pagination/tests.py
@@ -4,6 +4,7 @@ from datetime import datetime
from django.core.paginator import Paginator, InvalidPage, EmptyPage
from django.test import TestCase
+from django.utils import six
from .models import Article
@@ -32,7 +33,7 @@ class PaginationTests(TestCase):
def test_first_page(self):
paginator = Paginator(Article.objects.all(), 5)
p = paginator.page(1)
- self.assertEqual("<Page 1 of 2>", unicode(p))
+ self.assertEqual("<Page 1 of 2>", six.text_type(p))
self.assertQuerysetEqual(p.object_list, [
"<Article: Article 1>",
"<Article: Article 2>",
@@ -52,7 +53,7 @@ class PaginationTests(TestCase):
def test_last_page(self):
paginator = Paginator(Article.objects.all(), 5)
p = paginator.page(2)
- self.assertEqual("<Page 2 of 2>", unicode(p))
+ self.assertEqual("<Page 2 of 2>", six.text_type(p))
self.assertQuerysetEqual(p.object_list, [
"<Article: Article 6>",
"<Article: Article 7>",
@@ -109,7 +110,7 @@ class PaginationTests(TestCase):
self.assertEqual(3, paginator.num_pages)
self.assertEqual([1, 2, 3], paginator.page_range)
p = paginator.page(2)
- self.assertEqual("<Page 2 of 3>", unicode(p))
+ self.assertEqual("<Page 2 of 3>", six.text_type(p))
self.assertEqual([4, 5, 6], p.object_list)
self.assertTrue(p.has_next())
self.assertTrue(p.has_previous())
diff --git a/tests/modeltests/prefetch_related/tests.py b/tests/modeltests/prefetch_related/tests.py
index 43f195d357..8ae0a1e298 100644
--- a/tests/modeltests/prefetch_related/tests.py
+++ b/tests/modeltests/prefetch_related/tests.py
@@ -4,6 +4,7 @@ from django.contrib.contenttypes.models import ContentType
from django.db import connection
from django.test import TestCase
from django.test.utils import override_settings
+from django.utils import six
from .models import (Author, Book, Reader, Qualification, Teacher, Department,
TaggedItem, Bookmark, AuthorAddress, FavoriteAuthors, AuthorWithAge,
@@ -120,7 +121,7 @@ class PrefetchRelatedTests(TestCase):
"""
with self.assertNumQueries(3):
qs = Author.objects.prefetch_related('books__read_by')
- lists = [[[unicode(r) for r in b.read_by.all()]
+ lists = [[[six.text_type(r) for r in b.read_by.all()]
for b in a.books.all()]
for a in qs]
self.assertEqual(lists,
@@ -134,7 +135,7 @@ class PrefetchRelatedTests(TestCase):
def test_overriding_prefetch(self):
with self.assertNumQueries(3):
qs = Author.objects.prefetch_related('books', 'books__read_by')
- lists = [[[unicode(r) for r in b.read_by.all()]
+ lists = [[[six.text_type(r) for r in b.read_by.all()]
for b in a.books.all()]
for a in qs]
self.assertEqual(lists,
@@ -146,7 +147,7 @@ class PrefetchRelatedTests(TestCase):
])
with self.assertNumQueries(3):
qs = Author.objects.prefetch_related('books__read_by', 'books')
- lists = [[[unicode(r) for r in b.read_by.all()]
+ lists = [[[six.text_type(r) for r in b.read_by.all()]
for b in a.books.all()]
for a in qs]
self.assertEqual(lists,
@@ -164,7 +165,7 @@ class PrefetchRelatedTests(TestCase):
# Need a double
with self.assertNumQueries(3):
author = Author.objects.prefetch_related('books__read_by').get(name="Charlotte")
- lists = [[unicode(r) for r in b.read_by.all()]
+ lists = [[six.text_type(r) for r in b.read_by.all()]
for b in author.books.all()]
self.assertEqual(lists, [["Amy"], ["Belinda"]]) # Poems, Jane Eyre
@@ -175,7 +176,7 @@ class PrefetchRelatedTests(TestCase):
"""
with self.assertNumQueries(2):
qs = Author.objects.select_related('first_book').prefetch_related('first_book__read_by')
- lists = [[unicode(r) for r in a.first_book.read_by.all()]
+ lists = [[six.text_type(r) for r in a.first_book.read_by.all()]
for a in qs]
self.assertEqual(lists, [["Amy"],
["Amy"],
@@ -227,7 +228,7 @@ class DefaultManagerTests(TestCase):
# qualifications, since this will do one query per teacher.
qs = Department.objects.prefetch_related('teachers')
depts = "".join(["%s department: %s\n" %
- (dept.name, ", ".join(unicode(t) for t in dept.teachers.all()))
+ (dept.name, ", ".join(six.text_type(t) for t in dept.teachers.all()))
for dept in qs])
self.assertEqual(depts,
@@ -343,9 +344,9 @@ class MultiTableInheritanceTest(TestCase):
def test_foreignkey(self):
with self.assertNumQueries(2):
qs = AuthorWithAge.objects.prefetch_related('addresses')
- addresses = [[unicode(address) for address in obj.addresses.all()]
+ addresses = [[six.text_type(address) for address in obj.addresses.all()]
for obj in qs]
- self.assertEqual(addresses, [[unicode(self.authorAddress)], [], []])
+ self.assertEqual(addresses, [[six.text_type(self.authorAddress)], [], []])
def test_foreignkey_to_inherited(self):
with self.assertNumQueries(2):
@@ -356,19 +357,19 @@ class MultiTableInheritanceTest(TestCase):
def test_m2m_to_inheriting_model(self):
qs = AuthorWithAge.objects.prefetch_related('books_with_year')
with self.assertNumQueries(2):
- lst = [[unicode(book) for book in author.books_with_year.all()]
+ lst = [[six.text_type(book) for book in author.books_with_year.all()]
for author in qs]
qs = AuthorWithAge.objects.all()
- lst2 = [[unicode(book) for book in author.books_with_year.all()]
+ lst2 = [[six.text_type(book) for book in author.books_with_year.all()]
for author in qs]
self.assertEqual(lst, lst2)
qs = BookWithYear.objects.prefetch_related('aged_authors')
with self.assertNumQueries(2):
- lst = [[unicode(author) for author in book.aged_authors.all()]
+ lst = [[six.text_type(author) for author in book.aged_authors.all()]
for book in qs]
qs = BookWithYear.objects.all()
- lst2 = [[unicode(author) for author in book.aged_authors.all()]
+ lst2 = [[six.text_type(author) for author in book.aged_authors.all()]
for book in qs]
self.assertEqual(lst, lst2)
@@ -410,23 +411,23 @@ class ForeignKeyToFieldTest(TestCase):
def test_foreignkey(self):
with self.assertNumQueries(2):
qs = Author.objects.prefetch_related('addresses')
- addresses = [[unicode(address) for address in obj.addresses.all()]
+ addresses = [[six.text_type(address) for address in obj.addresses.all()]
for obj in qs]
- self.assertEqual(addresses, [[unicode(self.authorAddress)], [], []])
+ self.assertEqual(addresses, [[six.text_type(self.authorAddress)], [], []])
def test_m2m(self):
with self.assertNumQueries(3):
qs = Author.objects.all().prefetch_related('favorite_authors', 'favors_me')
favorites = [(
- [unicode(i_like) for i_like in author.favorite_authors.all()],
- [unicode(likes_me) for likes_me in author.favors_me.all()]
+ [six.text_type(i_like) for i_like in author.favorite_authors.all()],
+ [six.text_type(likes_me) for likes_me in author.favors_me.all()]
) for author in qs]
self.assertEqual(
favorites,
[
- ([unicode(self.author2)],[unicode(self.author3)]),
- ([unicode(self.author3)],[unicode(self.author1)]),
- ([unicode(self.author1)],[unicode(self.author2)])
+ ([six.text_type(self.author2)],[six.text_type(self.author3)]),
+ ([six.text_type(self.author3)],[six.text_type(self.author1)]),
+ ([six.text_type(self.author1)],[six.text_type(self.author2)])
]
)
diff --git a/tests/modeltests/save_delete_hooks/tests.py b/tests/modeltests/save_delete_hooks/tests.py
index 377d9eec03..42e0d4a80e 100644
--- a/tests/modeltests/save_delete_hooks/tests.py
+++ b/tests/modeltests/save_delete_hooks/tests.py
@@ -1,6 +1,7 @@
from __future__ import absolute_import
from django.test import TestCase
+from django.utils import six
from .models import Person
@@ -19,7 +20,7 @@ class SaveDeleteHookTests(TestCase):
Person.objects.all(), [
"John Smith",
],
- unicode
+ six.text_type
)
p.delete()
diff --git a/tests/modeltests/serializers/models.py b/tests/modeltests/serializers/models.py
index 3549be1b4f..9da099c027 100644
--- a/tests/modeltests/serializers/models.py
+++ b/tests/modeltests/serializers/models.py
@@ -10,6 +10,7 @@ from __future__ import unicode_literals
from decimal import Decimal
from django.db import models
+from django.utils import six
class Category(models.Model):
@@ -100,7 +101,7 @@ class TeamField(models.CharField):
super(TeamField, self).__init__(max_length=100)
def get_db_prep_save(self, value, connection):
- return unicode(value.title)
+ return six.text_type(value.title)
def to_python(self, value):
if isinstance(value, Team):
diff --git a/tests/modeltests/serializers/tests.py b/tests/modeltests/serializers/tests.py
index 73a3aa3e7a..9177227539 100644
--- a/tests/modeltests/serializers/tests.py
+++ b/tests/modeltests/serializers/tests.py
@@ -296,7 +296,7 @@ class XmlSerializerTestCase(SerializersTestBase, TestCase):
def _comparison_value(value):
# The XML serializer handles everything as strings, so comparisons
# need to be performed on the stringified value
- return unicode(value)
+ return six.text_type(value)
@staticmethod
def _validate_output(serial_str):
diff --git a/tests/modeltests/signals/tests.py b/tests/modeltests/signals/tests.py
index 29563dc363..58f25c2868 100644
--- a/tests/modeltests/signals/tests.py
+++ b/tests/modeltests/signals/tests.py
@@ -3,6 +3,7 @@ from __future__ import absolute_import
from django.db.models import signals
from django.dispatch import receiver
from django.test import TestCase
+from django.utils import six
from .models import Person, Car
@@ -144,7 +145,7 @@ class SignalTests(TestCase):
Person.objects.all(), [
"James Jones",
],
- unicode
+ six.text_type
)
signals.post_delete.disconnect(post_delete_test)
diff --git a/tests/modeltests/update/models.py b/tests/modeltests/update/models.py
index 92156a5553..b93e4a7aae 100644
--- a/tests/modeltests/update/models.py
+++ b/tests/modeltests/update/models.py
@@ -4,6 +4,7 @@ updates.
"""
from django.db import models
+from django.utils import six
class DataPoint(models.Model):
@@ -12,14 +13,14 @@ class DataPoint(models.Model):
another_value = models.CharField(max_length=20, blank=True)
def __unicode__(self):
- return unicode(self.name)
+ return six.text_type(self.name)
class RelatedPoint(models.Model):
name = models.CharField(max_length=20)
data = models.ForeignKey(DataPoint)
def __unicode__(self):
- return unicode(self.name)
+ return six.text_type(self.name)
class A(models.Model):
diff --git a/tests/regressiontests/admin_changelist/tests.py b/tests/regressiontests/admin_changelist/tests.py
index 62166ce174..1ed963aaf2 100644
--- a/tests/regressiontests/admin_changelist/tests.py
+++ b/tests/regressiontests/admin_changelist/tests.py
@@ -10,6 +10,7 @@ from django.template import Context, Template
from django.test import TestCase
from django.test.client import RequestFactory
from django.utils import formats
+from django.utils import six
from .admin import (ChildAdmin, QuartetAdmin, BandAdmin, ChordsBandAdmin,
GroupAdmin, ParentAdmin, DynamicListDisplayChildAdmin,
@@ -339,7 +340,7 @@ class ChangeListTests(TestCase):
event = Event.objects.create(date=datetime.date.today())
response = self.client.get('/admin/admin_changelist/event/')
self.assertContains(response, formats.localize(event.date))
- self.assertNotContains(response, unicode(event.date))
+ self.assertNotContains(response, six.text_type(event.date))
def test_dynamic_list_display(self):
"""
@@ -443,9 +444,9 @@ class ChangeListTests(TestCase):
request = self._mocked_authenticated_request('/swallow/', superuser)
response = model_admin.changelist_view(request)
# just want to ensure it doesn't blow up during rendering
- self.assertContains(response, unicode(swallow.origin))
- self.assertContains(response, unicode(swallow.load))
- self.assertContains(response, unicode(swallow.speed))
+ self.assertContains(response, six.text_type(swallow.origin))
+ self.assertContains(response, six.text_type(swallow.load))
+ self.assertContains(response, six.text_type(swallow.speed))
def test_deterministic_order_for_unordered_model(self):
"""
diff --git a/tests/regressiontests/admin_util/models.py b/tests/regressiontests/admin_util/models.py
index 0e81df3817..5541097022 100644
--- a/tests/regressiontests/admin_util/models.py
+++ b/tests/regressiontests/admin_util/models.py
@@ -1,4 +1,5 @@
from django.db import models
+from django.utils import six
class Article(models.Model):
@@ -22,7 +23,7 @@ class Count(models.Model):
parent = models.ForeignKey('self', null=True)
def __unicode__(self):
- return unicode(self.num)
+ return six.text_type(self.num)
class Event(models.Model):
date = models.DateTimeField(auto_now_add=True)
diff --git a/tests/regressiontests/admin_util/tests.py b/tests/regressiontests/admin_util/tests.py
index ba2be363ca..6b6dad4336 100644
--- a/tests/regressiontests/admin_util/tests.py
+++ b/tests/regressiontests/admin_util/tests.py
@@ -15,6 +15,7 @@ from django.test import TestCase
from django.utils import unittest
from django.utils.formats import localize
from django.utils.safestring import mark_safe
+from django.utils import six
from .models import Article, Count, Event, Location
@@ -249,17 +250,17 @@ class UtilTests(unittest.TestCase):
log_entry.action_flag = admin.models.ADDITION
self.assertTrue(
- unicode(log_entry).startswith('Added ')
+ six.text_type(log_entry).startswith('Added ')
)
log_entry.action_flag = admin.models.CHANGE
self.assertTrue(
- unicode(log_entry).startswith('Changed ')
+ six.text_type(log_entry).startswith('Changed ')
)
log_entry.action_flag = admin.models.DELETION
self.assertTrue(
- unicode(log_entry).startswith('Deleted ')
+ six.text_type(log_entry).startswith('Deleted ')
)
def test_safestring_in_field_label(self):
diff --git a/tests/regressiontests/admin_views/tests.py b/tests/regressiontests/admin_views/tests.py
index 630758a91d..a139016f27 100644
--- a/tests/regressiontests/admin_views/tests.py
+++ b/tests/regressiontests/admin_views/tests.py
@@ -30,6 +30,7 @@ from django.utils.cache import get_max_age
from django.utils.encoding import iri_to_uri
from django.utils.html import escape
from django.utils.http import urlencode
+from django.utils import six
from django.test.utils import override_settings
# local test models
@@ -2478,7 +2479,7 @@ class AdminCustomQuerysetTest(TestCase):
response = self.client.post('/test_admin/admin/admin_views/paper/%s/' % p.pk,
post_data, follow=True)
self.assertEqual(response.status_code, 200)
- # Message should contain non-ugly model name. Instance representation is set by unicode() (ugly)
+ # Message should contain non-ugly model name. Instance representation is set by six.text_type() (ugly)
self.assertContains(response, '<li class="info">The paper &quot;Paper_Deferred_author object&quot; was changed successfully.</li>', html=True)
# defer() is used in ModelAdmin.queryset()
@@ -2530,8 +2531,8 @@ class AdminInlineFileUploadTest(TestCase):
"pictures-TOTAL_FORMS": "2",
"pictures-INITIAL_FORMS": "1",
"pictures-MAX_NUM_FORMS": "0",
- "pictures-0-id": unicode(self.picture.id),
- "pictures-0-gallery": unicode(self.gallery.id),
+ "pictures-0-id": six.text_type(self.picture.id),
+ "pictures-0-gallery": six.text_type(self.gallery.id),
"pictures-0-name": "Test Picture",
"pictures-0-image": "",
"pictures-1-id": "",
diff --git a/tests/regressiontests/backends/tests.py b/tests/regressiontests/backends/tests.py
index cb25ac0a32..fa41aa7401 100644
--- a/tests/regressiontests/backends/tests.py
+++ b/tests/regressiontests/backends/tests.py
@@ -16,6 +16,7 @@ from django.db.utils import ConnectionHandler, DatabaseError, load_backend
from django.test import (TestCase, skipUnlessDBFeature, skipIfDBFeature,
TransactionTestCase)
from django.test.utils import override_settings
+from django.utils import six
from django.utils import unittest
from . import models
@@ -50,7 +51,7 @@ class OracleChecks(unittest.TestCase):
# than 4000 chars and read it properly
c = connection.cursor()
c.execute('CREATE TABLE ltext ("TEXT" NCLOB)')
- long_str = ''.join([unicode(x) for x in xrange(4000)])
+ long_str = ''.join([six.text_type(x) for x in xrange(4000)])
c.execute('INSERT INTO ltext VALUES (%s)',[long_str])
c.execute('SELECT text FROM ltext')
row = c.fetchone()
@@ -154,7 +155,7 @@ class LastExecutedQueryTest(TestCase):
sql, params = tags.query.sql_with_params()
cursor = tags.query.get_compiler('default').execute_sql(None)
last_sql = cursor.db.ops.last_executed_query(cursor, sql, params)
- self.assertTrue(isinstance(last_sql, unicode))
+ self.assertTrue(isinstance(last_sql, six.text_type))
class ParameterHandlingTest(TestCase):
diff --git a/tests/regressiontests/datatypes/tests.py b/tests/regressiontests/datatypes/tests.py
index f8f6802041..f0ec5f3c0a 100644
--- a/tests/regressiontests/datatypes/tests.py
+++ b/tests/regressiontests/datatypes/tests.py
@@ -3,6 +3,7 @@ from __future__ import absolute_import, unicode_literals
import datetime
from django.test import TestCase, skipIfDBFeature
+from django.utils import six
from django.utils.timezone import utc
from .models import Donut, RumBaba
@@ -73,7 +74,7 @@ class DataTypesTestCase(TestCase):
database should be unicode."""
d = Donut.objects.create(name='Jelly Donut', review='Outstanding')
newd = Donut.objects.get(id=d.id)
- self.assertTrue(isinstance(newd.review, unicode))
+ self.assertTrue(isinstance(newd.review, six.text_type))
@skipIfDBFeature('supports_timezones')
def test_error_on_timezone(self):
diff --git a/tests/regressiontests/defaultfilters/tests.py b/tests/regressiontests/defaultfilters/tests.py
index ffa0a01132..e2907632ef 100644
--- a/tests/regressiontests/defaultfilters/tests.py
+++ b/tests/regressiontests/defaultfilters/tests.py
@@ -6,6 +6,7 @@ import decimal
from django.template.defaultfilters import *
from django.test import TestCase
+from django.utils import six
from django.utils import unittest, translation
from django.utils.safestring import SafeData
@@ -48,13 +49,13 @@ class DefaultFiltersTests(TestCase):
'0.00000000000000000002')
pos_inf = float(1e30000)
- self.assertEqual(floatformat(pos_inf), unicode(pos_inf))
+ self.assertEqual(floatformat(pos_inf), six.text_type(pos_inf))
neg_inf = float(-1e30000)
- self.assertEqual(floatformat(neg_inf), unicode(neg_inf))
+ self.assertEqual(floatformat(neg_inf), six.text_type(neg_inf))
nan = pos_inf / pos_inf
- self.assertEqual(floatformat(nan), unicode(nan))
+ self.assertEqual(floatformat(nan), six.text_type(nan))
class FloatWrapper(object):
def __init__(self, value):
diff --git a/tests/regressiontests/file_uploads/views.py b/tests/regressiontests/file_uploads/views.py
index 73b09cbcff..c5d2720e1a 100644
--- a/tests/regressiontests/file_uploads/views.py
+++ b/tests/regressiontests/file_uploads/views.py
@@ -6,6 +6,7 @@ import os
from django.core.files.uploadedfile import UploadedFile
from django.http import HttpResponse, HttpResponseServerError
+from django.utils import six
from .models import FileModel, UPLOAD_TO
from .tests import UNICODE_FILENAME
@@ -19,7 +20,7 @@ def file_upload_view(request):
"""
form_data = request.POST.copy()
form_data.update(request.FILES)
- if isinstance(form_data.get('file_field'), UploadedFile) and isinstance(form_data['name'], unicode):
+ if isinstance(form_data.get('file_field'), UploadedFile) and isinstance(form_data['name'], six.text_type):
# If a file is posted, the dummy client should only post the file name,
# not the full path.
if os.path.dirname(form_data['file_field'].name) != '':
diff --git a/tests/regressiontests/fixtures_regress/models.py b/tests/regressiontests/fixtures_regress/models.py
index 14cf880003..7151cb0ed9 100644
--- a/tests/regressiontests/fixtures_regress/models.py
+++ b/tests/regressiontests/fixtures_regress/models.py
@@ -2,6 +2,7 @@ from __future__ import absolute_import, unicode_literals
from django.contrib.auth.models import User
from django.db import models
+from django.utils import six
class Animal(models.Model):
@@ -29,7 +30,7 @@ class Stuff(models.Model):
owner = models.ForeignKey(User, null=True)
def __unicode__(self):
- return unicode(self.name) + ' is owned by ' + unicode(self.owner)
+ return six.text_type(self.name) + ' is owned by ' + six.text_type(self.owner)
class Absolute(models.Model):
diff --git a/tests/regressiontests/forms/tests/models.py b/tests/regressiontests/forms/tests/models.py
index 5bea49b840..7687335b48 100644
--- a/tests/regressiontests/forms/tests/models.py
+++ b/tests/regressiontests/forms/tests/models.py
@@ -8,6 +8,7 @@ from django.db import models
from django.forms import Form, ModelForm, FileField, ModelChoiceField
from django.forms.models import ModelFormMetaclass
from django.test import TestCase
+from django.utils import six
from ..models import (ChoiceOptionModel, ChoiceFieldModel, FileModel, Group,
BoundaryModel, Defaults)
@@ -40,7 +41,7 @@ class ModelFormCallableModelDefault(TestCase):
choices = list(ChoiceFieldForm().fields['choice'].choices)
self.assertEqual(len(choices), 1)
- self.assertEqual(choices[0], (option.pk, unicode(option)))
+ self.assertEqual(choices[0], (option.pk, six.text_type(option)))
def test_callable_initial_value(self):
"The initial value for a callable default returning a queryset is the pk (refs #13769)"
diff --git a/tests/regressiontests/forms/tests/util.py b/tests/regressiontests/forms/tests/util.py
index 280049c97b..b7cc4ec809 100644
--- a/tests/regressiontests/forms/tests/util.py
+++ b/tests/regressiontests/forms/tests/util.py
@@ -5,6 +5,7 @@ from django.core.exceptions import ValidationError
from django.forms.util import flatatt, ErrorDict, ErrorList
from django.test import TestCase
from django.utils.safestring import mark_safe
+from django.utils import six
from django.utils.translation import ugettext_lazy
@@ -30,7 +31,7 @@ class FormsUtilTestCase(TestCase):
'<ul class="errorlist"><li>There was an error.</li></ul>')
# Can take a unicode string.
- self.assertHTMLEqual(unicode(ErrorList(ValidationError("Not \u03C0.").messages)),
+ self.assertHTMLEqual(six.text_type(ErrorList(ValidationError("Not \u03C0.").messages)),
'<ul class="errorlist"><li>Not π.</li></ul>')
# Can take a lazy string.
diff --git a/tests/regressiontests/forms/tests/widgets.py b/tests/regressiontests/forms/tests/widgets.py
index d5f6334fe9..3ea42cf549 100644
--- a/tests/regressiontests/forms/tests/widgets.py
+++ b/tests/regressiontests/forms/tests/widgets.py
@@ -10,6 +10,7 @@ from django.forms import *
from django.forms.widgets import RadioFieldRenderer
from django.utils import formats
from django.utils.safestring import mark_safe
+from django.utils import six
from django.utils.translation import activate, deactivate
from django.test import TestCase
@@ -676,7 +677,7 @@ beatle J R Ringo False""")
# You can create your own custom renderers for RadioSelect to use.
class MyRenderer(RadioFieldRenderer):
def render(self):
- return '<br />\n'.join([unicode(choice) for choice in self])
+ return '<br />\n'.join([six.text_type(choice) for choice in self])
w = RadioSelect(renderer=MyRenderer)
self.assertHTMLEqual(w.render('beatle', 'G', choices=(('J', 'John'), ('P', 'Paul'), ('G', 'George'), ('R', 'Ringo'))), """<label><input type="radio" name="beatle" value="J" /> John</label><br />
<label><input type="radio" name="beatle" value="P" /> Paul</label><br />
@@ -716,7 +717,7 @@ beatle J R Ringo False""")
# Unicode choices are correctly rendered as HTML
w = RadioSelect()
- self.assertHTMLEqual(unicode(w.render('email', 'ŠĐĆŽćžšđ', choices=[('ŠĐĆŽćžšđ', 'ŠĐabcĆŽćžšđ'), ('ćžšđ', 'abcćžšđ')])), '<ul>\n<li><label><input checked="checked" type="radio" name="email" value="\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111" /> \u0160\u0110abc\u0106\u017d\u0107\u017e\u0161\u0111</label></li>\n<li><label><input type="radio" name="email" value="\u0107\u017e\u0161\u0111" /> abc\u0107\u017e\u0161\u0111</label></li>\n</ul>')
+ self.assertHTMLEqual(six.text_type(w.render('email', 'ŠĐĆŽćžšđ', choices=[('ŠĐĆŽćžšđ', 'ŠĐabcĆŽćžšđ'), ('ćžšđ', 'abcćžšđ')])), '<ul>\n<li><label><input checked="checked" type="radio" name="email" value="\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111" /> \u0160\u0110abc\u0106\u017d\u0107\u017e\u0161\u0111</label></li>\n<li><label><input type="radio" name="email" value="\u0107\u017e\u0161\u0111" /> abc\u0107\u017e\u0161\u0111</label></li>\n</ul>')
# Attributes provided at instantiation are passed to the constituent inputs
w = RadioSelect(attrs={'id':'foo'})
@@ -1135,7 +1136,7 @@ class ClearableFileInputTests(TestCase):
output = widget.render('my<div>file', field)
self.assertFalse(field.url in output)
self.assertTrue('href="something?chapter=1&amp;sect=2&amp;copy=3&amp;lang=en"' in output)
- self.assertFalse(unicode(field) in output)
+ self.assertFalse(six.text_type(field) in output)
self.assertTrue('something&lt;div onclick=&quot;alert(&#39;oops&#39;)&quot;&gt;.jpg' in output)
self.assertTrue('my&lt;div&gt;file' in output)
self.assertFalse('my<div>file' in output)
diff --git a/tests/regressiontests/i18n/contenttypes/tests.py b/tests/regressiontests/i18n/contenttypes/tests.py
index bed94da8b8..178232f543 100644
--- a/tests/regressiontests/i18n/contenttypes/tests.py
+++ b/tests/regressiontests/i18n/contenttypes/tests.py
@@ -6,6 +6,7 @@ import os
from django.contrib.contenttypes.models import ContentType
from django.test import TestCase
from django.test.utils import override_settings
+from django.utils import six
from django.utils import translation
@@ -24,11 +25,11 @@ class ContentTypeTests(TestCase):
def test_verbose_name(self):
company_type = ContentType.objects.get(app_label='i18n', model='company')
with translation.override('en'):
- self.assertEqual(unicode(company_type), 'Company')
+ self.assertEqual(six.text_type(company_type), 'Company')
with translation.override('fr'):
- self.assertEqual(unicode(company_type), 'Société')
+ self.assertEqual(six.text_type(company_type), 'Société')
def test_field_override(self):
company_type = ContentType.objects.get(app_label='i18n', model='company')
company_type.name = 'Other'
- self.assertEqual(unicode(company_type), 'Other')
+ self.assertEqual(six.text_type(company_type), 'Other')
diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py
index 69260edb0a..9ca66bdb9b 100644
--- a/tests/regressiontests/i18n/tests.py
+++ b/tests/regressiontests/i18n/tests.py
@@ -19,6 +19,7 @@ from django.utils.formats import (get_format, date_format, time_format,
from django.utils.importlib import import_module
from django.utils.numberformat import format as nformat
from django.utils.safestring import mark_safe, SafeString, SafeUnicode
+from django.utils import six
from django.utils.six import PY3
from django.utils.translation import (ugettext, ugettext_lazy, activate,
deactivate, gettext_lazy, pgettext, npgettext, to_locale,
@@ -81,9 +82,9 @@ class TranslationTests(TestCase):
def test_lazy_pickle(self):
s1 = ugettext_lazy("test")
- self.assertEqual(unicode(s1), "test")
+ self.assertEqual(six.text_type(s1), "test")
s2 = pickle.loads(pickle.dumps(s1))
- self.assertEqual(unicode(s2), "test")
+ self.assertEqual(six.text_type(s2), "test")
def test_pgettext(self):
# Reset translation catalog to include other/locale/de
@@ -222,10 +223,10 @@ class TranslationTests(TestCase):
def test_string_concat(self):
"""
- unicode(string_concat(...)) should not raise a TypeError - #4796
+ six.text_type(string_concat(...)) should not raise a TypeError - #4796
"""
import django.utils.translation
- self.assertEqual('django', unicode(django.utils.translation.string_concat("dja", "ngo")))
+ self.assertEqual('django', six.text_type(django.utils.translation.string_concat("dja", "ngo")))
def test_safe_status(self):
"""
diff --git a/tests/regressiontests/inline_formsets/tests.py b/tests/regressiontests/inline_formsets/tests.py
index 8ad84f221f..6e63f34ed0 100644
--- a/tests/regressiontests/inline_formsets/tests.py
+++ b/tests/regressiontests/inline_formsets/tests.py
@@ -2,6 +2,7 @@ from __future__ import absolute_import, unicode_literals
from django.forms.models import inlineformset_factory
from django.test import TestCase
+from django.utils import six
from .models import Poet, Poem, School, Parent, Child
@@ -66,8 +67,8 @@ class DeletionTests(TestCase):
'poem_set-TOTAL_FORMS': '1',
'poem_set-INITIAL_FORMS': '1',
'poem_set-MAX_NUM_FORMS': '0',
- 'poem_set-0-id': unicode(poem.id),
- 'poem_set-0-poem': unicode(poem.id),
+ 'poem_set-0-id': six.text_type(poem.id),
+ 'poem_set-0-poem': six.text_type(poem.id),
'poem_set-0-name': 'x' * 1000,
}
formset = PoemFormSet(data, instance=poet)
diff --git a/tests/regressiontests/model_forms_regress/tests.py b/tests/regressiontests/model_forms_regress/tests.py
index a0f9bba170..3cb129f84e 100644
--- a/tests/regressiontests/model_forms_regress/tests.py
+++ b/tests/regressiontests/model_forms_regress/tests.py
@@ -7,6 +7,7 @@ from django.core.exceptions import FieldError, ValidationError
from django.core.files.uploadedfile import SimpleUploadedFile
from django.forms.models import (modelform_factory, ModelChoiceField,
fields_for_model, construct_instance, ModelFormMetaclass)
+from django.utils import six
from django.utils import unittest
from django.test import TestCase
@@ -392,14 +393,14 @@ class FileFieldTests(unittest.TestCase):
"""
form = DocumentForm()
- self.assertTrue('name="myfile"' in unicode(form))
- self.assertTrue('myfile-clear' not in unicode(form))
+ self.assertTrue('name="myfile"' in six.text_type(form))
+ self.assertTrue('myfile-clear' not in six.text_type(form))
form = DocumentForm(files={'myfile': SimpleUploadedFile('something.txt', b'content')})
self.assertTrue(form.is_valid())
doc = form.save(commit=False)
self.assertEqual(doc.myfile.name, 'something.txt')
form = DocumentForm(instance=doc)
- self.assertTrue('myfile-clear' in unicode(form))
+ self.assertTrue('myfile-clear' in six.text_type(form))
form = DocumentForm(instance=doc, data={'myfile-clear': 'true'})
doc = form.save(commit=False)
self.assertEqual(bool(doc.myfile), False)
@@ -420,7 +421,7 @@ class FileFieldTests(unittest.TestCase):
self.assertTrue(not form.is_valid())
self.assertEqual(form.errors['myfile'],
['Please either submit a file or check the clear checkbox, not both.'])
- rendered = unicode(form)
+ rendered = six.text_type(form)
self.assertTrue('something.txt' in rendered)
self.assertTrue('myfile-clear' in rendered)
diff --git a/tests/regressiontests/model_formsets_regress/tests.py b/tests/regressiontests/model_formsets_regress/tests.py
index 68ebe48bde..1fbdb9744f 100644
--- a/tests/regressiontests/model_formsets_regress/tests.py
+++ b/tests/regressiontests/model_formsets_regress/tests.py
@@ -5,6 +5,7 @@ from django.forms.formsets import BaseFormSet, DELETION_FIELD_NAME
from django.forms.util import ErrorDict, ErrorList
from django.forms.models import modelform_factory, inlineformset_factory, modelformset_factory, BaseModelFormSet
from django.test import TestCase
+from django.utils import six
from .models import User, UserSite, Restaurant, Manager, Network, Host
@@ -51,7 +52,7 @@ class InlineFormsetTests(TestCase):
'usersite_set-TOTAL_FORMS': '1',
'usersite_set-INITIAL_FORMS': '1',
'usersite_set-MAX_NUM_FORMS': '0',
- 'usersite_set-0-id': unicode(usersite[0]['id']),
+ 'usersite_set-0-id': six.text_type(usersite[0]['id']),
'usersite_set-0-data': '11',
'usersite_set-0-user': 'apollo13'
}
@@ -69,7 +70,7 @@ class InlineFormsetTests(TestCase):
'usersite_set-TOTAL_FORMS': '2',
'usersite_set-INITIAL_FORMS': '1',
'usersite_set-MAX_NUM_FORMS': '0',
- 'usersite_set-0-id': unicode(usersite[0]['id']),
+ 'usersite_set-0-id': six.text_type(usersite[0]['id']),
'usersite_set-0-data': '11',
'usersite_set-0-user': 'apollo13',
'usersite_set-1-data': '42',
@@ -124,7 +125,7 @@ class InlineFormsetTests(TestCase):
'manager_set-TOTAL_FORMS': '1',
'manager_set-INITIAL_FORMS': '1',
'manager_set-MAX_NUM_FORMS': '0',
- 'manager_set-0-id': unicode(manager[0]['id']),
+ 'manager_set-0-id': six.text_type(manager[0]['id']),
'manager_set-0-name': 'Terry Gilliam'
}
form_set = FormSet(data, instance=restaurant)
@@ -140,7 +141,7 @@ class InlineFormsetTests(TestCase):
'manager_set-TOTAL_FORMS': '2',
'manager_set-INITIAL_FORMS': '1',
'manager_set-MAX_NUM_FORMS': '0',
- 'manager_set-0-id': unicode(manager[0]['id']),
+ 'manager_set-0-id': six.text_type(manager[0]['id']),
'manager_set-0-name': 'Terry Gilliam',
'manager_set-1-name': 'John Cleese'
}
@@ -188,7 +189,7 @@ class InlineFormsetTests(TestCase):
'host_set-TOTAL_FORMS': '2',
'host_set-INITIAL_FORMS': '1',
'host_set-MAX_NUM_FORMS': '0',
- 'host_set-0-id': unicode(host1.id),
+ 'host_set-0-id': six.text_type(host1.id),
'host_set-0-hostname': 'tranquility.hub.dal.net',
'host_set-1-hostname': 'matrix.de.eu.dal.net'
}
diff --git a/tests/regressiontests/model_regress/tests.py b/tests/regressiontests/model_regress/tests.py
index 7f9f514c7a..6a45a83052 100644
--- a/tests/regressiontests/model_regress/tests.py
+++ b/tests/regressiontests/model_regress/tests.py
@@ -5,6 +5,7 @@ from operator import attrgetter
from django.core.exceptions import ValidationError
from django.test import TestCase, skipUnlessDBFeature
+from django.utils import six
from django.utils import tzinfo
from .models import (Worker, Article, Party, Event, Department,
@@ -38,7 +39,7 @@ class ModelTests(TestCase):
# Empty strings should be returned as Unicode
a = Article.objects.get(pk=a.pk)
self.assertEqual(a.misc_data, '')
- self.assertIs(type(a.misc_data), unicode)
+ self.assertIs(type(a.misc_data), six.text_type)
def test_long_textfield(self):
# TextFields can hold more than 4000 characters (this was broken in
@@ -138,7 +139,7 @@ class ModelTests(TestCase):
# Check Department and Worker (non-default PK type)
d = Department.objects.create(id=10, name="IT")
w = Worker.objects.create(department=d, name="Full-time")
- self.assertEqual(unicode(w), "Full-time")
+ self.assertEqual(six.text_type(w), "Full-time")
def test_broken_unicode(self):
# Models with broken unicode methods should still have a printable repr
diff --git a/tests/regressiontests/queries/models.py b/tests/regressiontests/queries/models.py
index 8c34b50e93..6328776e91 100644
--- a/tests/regressiontests/queries/models.py
+++ b/tests/regressiontests/queries/models.py
@@ -6,6 +6,7 @@ from __future__ import unicode_literals
import threading
from django.db import models
+from django.utils import six
class DumbCategory(models.Model):
@@ -122,7 +123,7 @@ class Number(models.Model):
num = models.IntegerField()
def __unicode__(self):
- return unicode(self.num)
+ return six.text_type(self.num)
# Symmetrical m2m field with a normal field using the reverse accesor name
# ("valid").
diff --git a/tests/regressiontests/select_related_regress/tests.py b/tests/regressiontests/select_related_regress/tests.py
index 73b0a8a875..7f93a1c33c 100644
--- a/tests/regressiontests/select_related_regress/tests.py
+++ b/tests/regressiontests/select_related_regress/tests.py
@@ -1,6 +1,7 @@
from __future__ import absolute_import, unicode_literals
from django.test import TestCase
+from django.utils import six
from .models import (Building, Child, Device, Port, Item, Country, Connection,
ClientStatus, State, Client, SpecialClient, TUser, Person, Student,
@@ -33,11 +34,11 @@ class SelectRelatedRegressTests(TestCase):
c2=Connection.objects.create(start=port2, end=port3)
connections=Connection.objects.filter(start__device__building=b, end__device__building=b).order_by('id')
- self.assertEqual([(c.id, unicode(c.start), unicode(c.end)) for c in connections],
+ self.assertEqual([(c.id, six.text_type(c.start), six.text_type(c.end)) for c in connections],
[(c1.id, 'router/4', 'switch/7'), (c2.id, 'switch/7', 'server/1')])
connections=Connection.objects.filter(start__device__building=b, end__device__building=b).select_related().order_by('id')
- self.assertEqual([(c.id, unicode(c.start), unicode(c.end)) for c in connections],
+ self.assertEqual([(c.id, six.text_type(c.start), six.text_type(c.end)) for c in connections],
[(c1.id, 'router/4', 'switch/7'), (c2.id, 'switch/7', 'server/1')])
# This final query should only have seven tables (port, device and building
diff --git a/tests/regressiontests/templates/templatetags/custom.py b/tests/regressiontests/templates/templatetags/custom.py
index 7f788311c6..95fcd551de 100644
--- a/tests/regressiontests/templates/templatetags/custom.py
+++ b/tests/regressiontests/templates/templatetags/custom.py
@@ -3,6 +3,7 @@ import operator
from django import template
from django.template.defaultfilters import stringfilter
from django.template.loader import get_template
+from django.utils import six
register = template.Library()
@@ -56,13 +57,13 @@ simple_one_default.anything = "Expected simple_one_default __dict__"
@register.simple_tag
def simple_unlimited_args(one, two='hi', *args):
"""Expected simple_unlimited_args __doc__"""
- return "simple_unlimited_args - Expected result: %s" % (', '.join([unicode(arg) for arg in [one, two] + list(args)]))
+ return "simple_unlimited_args - Expected result: %s" % (', '.join([six.text_type(arg) for arg in [one, two] + list(args)]))
simple_unlimited_args.anything = "Expected simple_unlimited_args __dict__"
@register.simple_tag
def simple_only_unlimited_args(*args):
"""Expected simple_only_unlimited_args __doc__"""
- return "simple_only_unlimited_args - Expected result: %s" % ', '.join([unicode(arg) for arg in args])
+ return "simple_only_unlimited_args - Expected result: %s" % ', '.join([six.text_type(arg) for arg in args])
simple_only_unlimited_args.anything = "Expected simple_only_unlimited_args __dict__"
@register.simple_tag
@@ -71,7 +72,7 @@ def simple_unlimited_args_kwargs(one, two='hi', *args, **kwargs):
# Sort the dictionary by key to guarantee the order for testing.
sorted_kwarg = sorted(kwargs.iteritems(), key=operator.itemgetter(0))
return "simple_unlimited_args_kwargs - Expected result: %s / %s" % (
- ', '.join([unicode(arg) for arg in [one, two] + list(args)]),
+ ', '.join([six.text_type(arg) for arg in [one, two] + list(args)]),
', '.join(['%s=%s' % (k, v) for (k, v) in sorted_kwarg])
)
simple_unlimited_args_kwargs.anything = "Expected simple_unlimited_args_kwargs __dict__"
@@ -183,25 +184,25 @@ inclusion_one_default_from_template.anything = "Expected inclusion_one_default_f
@register.inclusion_tag('inclusion.html')
def inclusion_unlimited_args(one, two='hi', *args):
"""Expected inclusion_unlimited_args __doc__"""
- return {"result": "inclusion_unlimited_args - Expected result: %s" % (', '.join([unicode(arg) for arg in [one, two] + list(args)]))}
+ return {"result": "inclusion_unlimited_args - Expected result: %s" % (', '.join([six.text_type(arg) for arg in [one, two] + list(args)]))}
inclusion_unlimited_args.anything = "Expected inclusion_unlimited_args __dict__"
@register.inclusion_tag(get_template('inclusion.html'))
def inclusion_unlimited_args_from_template(one, two='hi', *args):
"""Expected inclusion_unlimited_args_from_template __doc__"""
- return {"result": "inclusion_unlimited_args_from_template - Expected result: %s" % (', '.join([unicode(arg) for arg in [one, two] + list(args)]))}
+ return {"result": "inclusion_unlimited_args_from_template - Expected result: %s" % (', '.join([six.text_type(arg) for arg in [one, two] + list(args)]))}
inclusion_unlimited_args_from_template.anything = "Expected inclusion_unlimited_args_from_template __dict__"
@register.inclusion_tag('inclusion.html')
def inclusion_only_unlimited_args(*args):
"""Expected inclusion_only_unlimited_args __doc__"""
- return {"result": "inclusion_only_unlimited_args - Expected result: %s" % (', '.join([unicode(arg) for arg in args]))}
+ return {"result": "inclusion_only_unlimited_args - Expected result: %s" % (', '.join([six.text_type(arg) for arg in args]))}
inclusion_only_unlimited_args.anything = "Expected inclusion_only_unlimited_args __dict__"
@register.inclusion_tag(get_template('inclusion.html'))
def inclusion_only_unlimited_args_from_template(*args):
"""Expected inclusion_only_unlimited_args_from_template __doc__"""
- return {"result": "inclusion_only_unlimited_args_from_template - Expected result: %s" % (', '.join([unicode(arg) for arg in args]))}
+ return {"result": "inclusion_only_unlimited_args_from_template - Expected result: %s" % (', '.join([six.text_type(arg) for arg in args]))}
inclusion_only_unlimited_args_from_template.anything = "Expected inclusion_only_unlimited_args_from_template __dict__"
@register.inclusion_tag('test_incl_tag_current_app.html', takes_context=True)
@@ -222,7 +223,7 @@ def inclusion_unlimited_args_kwargs(one, two='hi', *args, **kwargs):
# Sort the dictionary by key to guarantee the order for testing.
sorted_kwarg = sorted(kwargs.iteritems(), key=operator.itemgetter(0))
return {"result": "inclusion_unlimited_args_kwargs - Expected result: %s / %s" % (
- ', '.join([unicode(arg) for arg in [one, two] + list(args)]),
+ ', '.join([six.text_type(arg) for arg in [one, two] + list(args)]),
', '.join(['%s=%s' % (k, v) for (k, v) in sorted_kwarg])
)}
inclusion_unlimited_args_kwargs.anything = "Expected inclusion_unlimited_args_kwargs __dict__"
@@ -278,13 +279,13 @@ assignment_one_default.anything = "Expected assignment_one_default __dict__"
@register.assignment_tag
def assignment_unlimited_args(one, two='hi', *args):
"""Expected assignment_unlimited_args __doc__"""
- return "assignment_unlimited_args - Expected result: %s" % (', '.join([unicode(arg) for arg in [one, two] + list(args)]))
+ return "assignment_unlimited_args - Expected result: %s" % (', '.join([six.text_type(arg) for arg in [one, two] + list(args)]))
assignment_unlimited_args.anything = "Expected assignment_unlimited_args __dict__"
@register.assignment_tag
def assignment_only_unlimited_args(*args):
"""Expected assignment_only_unlimited_args __doc__"""
- return "assignment_only_unlimited_args - Expected result: %s" % ', '.join([unicode(arg) for arg in args])
+ return "assignment_only_unlimited_args - Expected result: %s" % ', '.join([six.text_type(arg) for arg in args])
assignment_only_unlimited_args.anything = "Expected assignment_only_unlimited_args __dict__"
@register.assignment_tag
@@ -293,7 +294,7 @@ def assignment_unlimited_args_kwargs(one, two='hi', *args, **kwargs):
# Sort the dictionary by key to guarantee the order for testing.
sorted_kwarg = sorted(kwargs.iteritems(), key=operator.itemgetter(0))
return "assignment_unlimited_args_kwargs - Expected result: %s / %s" % (
- ', '.join([unicode(arg) for arg in [one, two] + list(args)]),
+ ', '.join([six.text_type(arg) for arg in [one, two] + list(args)]),
', '.join(['%s=%s' % (k, v) for (k, v) in sorted_kwarg])
)
assignment_unlimited_args_kwargs.anything = "Expected assignment_unlimited_args_kwargs __dict__"
diff --git a/tests/regressiontests/templates/unicode.py b/tests/regressiontests/templates/unicode.py
index 2c41176b01..7cb2a28d15 100644
--- a/tests/regressiontests/templates/unicode.py
+++ b/tests/regressiontests/templates/unicode.py
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
from django.template import Template, TemplateEncodingError, Context
from django.utils.safestring import SafeData
+from django.utils import six
from django.utils.unittest import TestCase
@@ -27,5 +28,5 @@ class UnicodeTests(TestCase):
# they all render the same (and are returned as unicode objects and
# "safe" objects as well, for auto-escaping purposes).
self.assertEqual(t1.render(c3), t2.render(c3))
- self.assertIsInstance(t1.render(c3), unicode)
+ self.assertIsInstance(t1.render(c3), six.text_type)
self.assertIsInstance(t1.render(c3), SafeData)
diff --git a/tests/regressiontests/utils/simplelazyobject.py b/tests/regressiontests/utils/simplelazyobject.py
index 982d2226e6..960a5e3201 100644
--- a/tests/regressiontests/utils/simplelazyobject.py
+++ b/tests/regressiontests/utils/simplelazyobject.py
@@ -4,6 +4,7 @@ import copy
import pickle
from django.test.utils import str_prefix
+from django.utils import six
from django.utils.unittest import TestCase
from django.utils.functional import SimpleLazyObject, empty
@@ -22,7 +23,7 @@ class _ComplexObject(object):
return "I am _ComplexObject(%r)" % self.name
def __unicode__(self):
- return unicode(self.name)
+ return six.text_type(self.name)
def __repr__(self):
return "_ComplexObject(%r)" % self.name
@@ -58,7 +59,7 @@ class TestUtilsSimpleLazyObject(TestCase):
str(SimpleLazyObject(complex_object)))
def test_unicode(self):
- self.assertEqual("joe", unicode(SimpleLazyObject(complex_object)))
+ self.assertEqual("joe", six.text_type(SimpleLazyObject(complex_object)))
def test_class(self):
# This is important for classes that use __class__ in things like
@@ -108,5 +109,5 @@ class TestUtilsSimpleLazyObject(TestCase):
pickled = pickle.dumps(x)
unpickled = pickle.loads(pickled)
self.assertEqual(unpickled, x)
- self.assertEqual(unicode(unpickled), unicode(x))
+ self.assertEqual(six.text_type(unpickled), six.text_type(x))
self.assertEqual(unpickled.name, x.name)
diff --git a/tests/regressiontests/wsgi/tests.py b/tests/regressiontests/wsgi/tests.py
index 9614a81c67..a482a5c1eb 100644
--- a/tests/regressiontests/wsgi/tests.py
+++ b/tests/regressiontests/wsgi/tests.py
@@ -6,6 +6,7 @@ from django.core.wsgi import get_wsgi_application
from django.test import TestCase
from django.test.client import RequestFactory
from django.test.utils import override_settings
+from django.utils import six
from django.utils import unittest
@@ -39,7 +40,7 @@ class WSGITest(TestCase):
response_data["headers"],
[('Content-Type', 'text/html; charset=utf-8')])
self.assertEqual(
- unicode(response),
+ six.text_type(response),
"Content-Type: text/html; charset=utf-8\n\nHello World!")
diff --git a/tests/runtests.py b/tests/runtests.py
index b71cf98b13..c548d2745b 100755
--- a/tests/runtests.py
+++ b/tests/runtests.py
@@ -7,6 +7,7 @@ import tempfile
import warnings
from django import contrib
+from django.utils import six
# databrowse is deprecated, but we still want to run its tests
warnings.filterwarnings('ignore', "The Databrowse contrib app is deprecated",
@@ -142,7 +143,7 @@ def teardown(state):
# so that it will successfully remove temp trees containing
# non-ASCII filenames on Windows. (We're assuming the temp dir
# name itself does not contain non-ASCII characters.)
- shutil.rmtree(unicode(TEMP_DIR))
+ shutil.rmtree(six.text_type(TEMP_DIR))
# Restore the old settings.
for key, value in state.items():
setattr(settings, key, value)