mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #18269 -- Applied unicode_literals for Python 3 compatibility.
Thanks Vinay Sajip for the support of his django3 branch and Jannis Leidel for the review.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from __future__ import absolute_import
|
||||
from __future__ import absolute_import,unicode_literals
|
||||
|
||||
import datetime
|
||||
from operator import attrgetter
|
||||
@@ -11,6 +11,7 @@ from django.db import DatabaseError, connection, connections, DEFAULT_DB_ALIAS
|
||||
from django.db.models import Count
|
||||
from django.db.models.query import Q, ITER_CHUNK_SIZE, EmptyQuerySet
|
||||
from django.test import TestCase, skipUnlessDBFeature
|
||||
from django.test.utils import str_prefix
|
||||
from django.utils import unittest
|
||||
from django.utils.datastructures import SortedDict
|
||||
|
||||
@@ -466,7 +467,7 @@ class Queries1Tests(BaseQuerysetTest):
|
||||
# ordering columns.
|
||||
self.assertValueQuerysetEqual(
|
||||
Note.objects.values('misc').distinct().order_by('note', '-misc'),
|
||||
[{'misc': u'foo'}, {'misc': u'bar'}, {'misc': u'foo'}]
|
||||
[{'misc': 'foo'}, {'misc': 'bar'}, {'misc': 'foo'}]
|
||||
)
|
||||
|
||||
def test_ticket4358(self):
|
||||
@@ -506,7 +507,7 @@ class Queries1Tests(BaseQuerysetTest):
|
||||
# return 'one' and 'two' as strings, not Unicode objects. It's a side-effect of
|
||||
# using constants here and not a real concern.
|
||||
d = Item.objects.extra(select=SortedDict(s), select_params=params).values('a', 'b')[0]
|
||||
self.assertEqual(d, {'a': u'one', 'b': u'two'})
|
||||
self.assertEqual(d, {'a': 'one', 'b': 'two'})
|
||||
|
||||
# Order by the number of tags attached to an item.
|
||||
l = Item.objects.extra(select={'count': 'select count(*) from queries_item_tags where queries_item_tags.item_id = queries_item.id'}).order_by('-count')
|
||||
@@ -582,7 +583,7 @@ class Queries1Tests(BaseQuerysetTest):
|
||||
# works.
|
||||
self.assertValueQuerysetEqual(
|
||||
Item.objects.values('note__note').order_by('queries_note.note', 'id'),
|
||||
[{'note__note': u'n2'}, {'note__note': u'n3'}, {'note__note': u'n3'}, {'note__note': u'n3'}]
|
||||
[{'note__note': 'n2'}, {'note__note': 'n3'}, {'note__note': 'n3'}, {'note__note': 'n3'}]
|
||||
)
|
||||
|
||||
def test_ticket7096(self):
|
||||
@@ -1051,15 +1052,15 @@ class Queries4Tests(BaseQuerysetTest):
|
||||
|
||||
# A values() or values_list() query across joined models must use outer
|
||||
# joins appropriately.
|
||||
# Note: In Oracle, we expect a null CharField to return u'' instead of
|
||||
# Note: In Oracle, we expect a null CharField to return '' instead of
|
||||
# None.
|
||||
if connection.features.interprets_empty_strings_as_nulls:
|
||||
expected_null_charfield_repr = u''
|
||||
expected_null_charfield_repr = ''
|
||||
else:
|
||||
expected_null_charfield_repr = None
|
||||
self.assertValueQuerysetEqual(
|
||||
Report.objects.values_list("creator__extra__info", flat=True).order_by("name"),
|
||||
[u'e1', u'e2', expected_null_charfield_repr],
|
||||
['e1', 'e2', expected_null_charfield_repr],
|
||||
)
|
||||
|
||||
# Similarly for select_related(), joins beyond an initial nullable join
|
||||
@@ -1080,7 +1081,7 @@ class Queries4Tests(BaseQuerysetTest):
|
||||
m2 = Member.objects.create(name="m2", details=d2)
|
||||
Child.objects.create(person=m2, parent=m1)
|
||||
obj = m1.children.select_related("person__details")[0]
|
||||
self.assertEqual(obj.person.details.data, u'd2')
|
||||
self.assertEqual(obj.person.details.data, 'd2')
|
||||
|
||||
def test_order_by_resetting(self):
|
||||
# Calling order_by() with no parameters removes any existing ordering on the
|
||||
@@ -1530,12 +1531,12 @@ class RawQueriesTests(TestCase):
|
||||
query = "SELECT * FROM queries_note WHERE note = %s"
|
||||
params = ['n1']
|
||||
qs = Note.objects.raw(query, params=params)
|
||||
self.assertEqual(repr(qs), "<RawQuerySet: 'SELECT * FROM queries_note WHERE note = n1'>")
|
||||
self.assertEqual(repr(qs), str_prefix("<RawQuerySet: %(_)s'SELECT * FROM queries_note WHERE note = n1'>"))
|
||||
|
||||
query = "SELECT * FROM queries_note WHERE note = %s and misc = %s"
|
||||
params = ['n1', 'foo']
|
||||
qs = Note.objects.raw(query, params=params)
|
||||
self.assertEqual(repr(qs), "<RawQuerySet: 'SELECT * FROM queries_note WHERE note = n1 and misc = foo'>")
|
||||
self.assertEqual(repr(qs), str_prefix("<RawQuerySet: %(_)s'SELECT * FROM queries_note WHERE note = n1 and misc = foo'>"))
|
||||
|
||||
|
||||
class GeneratorExpressionTests(TestCase):
|
||||
|
||||
Reference in New Issue
Block a user