Author: jezdez Date: 2011-04-22 11:17:26 -0700 (Fri, 22 Apr 2011) New Revision: 16088
Modified: django/trunk/django/db/models/query.py django/trunk/django/db/models/sql/query.py django/trunk/tests/regressiontests/queries/tests.py Log: Fixed #14729 -- RawQuerySet.__repr__ fails when params passed as list. Thanks, intgr for ticket and accuser for patch. Modified: django/trunk/django/db/models/query.py =================================================================== --- django/trunk/django/db/models/query.py 2011-04-22 18:17:16 UTC (rev 16087) +++ django/trunk/django/db/models/query.py 2011-04-22 18:17:26 UTC (rev 16088) @@ -1385,7 +1385,7 @@ yield instance def __repr__(self): - return "<RawQuerySet: %r>" % (self.raw_query % self.params) + return "<RawQuerySet: %r>" % (self.raw_query % tuple(self.params)) def __getitem__(self, k): return list(self)[k] Modified: django/trunk/django/db/models/sql/query.py =================================================================== --- django/trunk/django/db/models/sql/query.py 2011-04-22 18:17:16 UTC (rev 16087) +++ django/trunk/django/db/models/sql/query.py 2011-04-22 18:17:26 UTC (rev 16088) @@ -74,7 +74,7 @@ return iter(result) def __repr__(self): - return "<RawQuery: %r>" % (self.sql % self.params) + return "<RawQuery: %r>" % (self.sql % tuple(self.params)) def _execute_query(self): self.cursor = connections[self.using].cursor() Modified: django/trunk/tests/regressiontests/queries/tests.py =================================================================== --- django/trunk/tests/regressiontests/queries/tests.py 2011-04-22 18:17:16 UTC (rev 16087) +++ django/trunk/tests/regressiontests/queries/tests.py 2011-04-22 18:17:26 UTC (rev 16088) @@ -1317,6 +1317,23 @@ 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): def test_ticket10432(self): # Using an empty generator expression as the rvalue for an "__in" -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-updates?hl=en.