Fixed #14729 -- RawQuerySet.__repr__ fails when params passed as list. Thanks, intgr for ticket and accuser for patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16088 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
c8092b840b
commit
c77372cad0
|
@ -1385,7 +1385,7 @@ class RawQuerySet(object):
|
||||||
yield instance
|
yield instance
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<RawQuerySet: %r>" % (self.raw_query % self.params)
|
return "<RawQuerySet: %r>" % (self.raw_query % tuple(self.params))
|
||||||
|
|
||||||
def __getitem__(self, k):
|
def __getitem__(self, k):
|
||||||
return list(self)[k]
|
return list(self)[k]
|
||||||
|
|
|
@ -74,7 +74,7 @@ class RawQuery(object):
|
||||||
return iter(result)
|
return iter(result)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<RawQuery: %r>" % (self.sql % self.params)
|
return "<RawQuery: %r>" % (self.sql % tuple(self.params))
|
||||||
|
|
||||||
def _execute_query(self):
|
def _execute_query(self):
|
||||||
self.cursor = connections[self.using].cursor()
|
self.cursor = connections[self.using].cursor()
|
||||||
|
|
|
@ -1317,6 +1317,23 @@ class Queries6Tests(TestCase):
|
||||||
self.assertIsNot(q1, q1.all())
|
self.assertIsNot(q1, q1.all())
|
||||||
|
|
||||||
|
|
||||||
|
class RawQueriesTests(TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
n1 = Note.objects.create(note='n1', misc='foo', id=1)
|
||||||
|
|
||||||
|
def test_ticket14729(self):
|
||||||
|
# Test representation of raw query with one or few parameters passed as list
|
||||||
|
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'>")
|
||||||
|
|
||||||
|
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'>")
|
||||||
|
|
||||||
|
|
||||||
class GeneratorExpressionTests(TestCase):
|
class GeneratorExpressionTests(TestCase):
|
||||||
def test_ticket10432(self):
|
def test_ticket10432(self):
|
||||||
# Using an empty generator expression as the rvalue for an "__in"
|
# Using an empty generator expression as the rvalue for an "__in"
|
||||||
|
|
Loading…
Reference in New Issue