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.

Reply via email to