aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--debug_toolbar/utils/tracking/db.py3
-rw-r--r--tests/tests.py4
-rw-r--r--tests/urls.py3
-rw-r--r--tests/views.py4
4 files changed, 10 insertions, 4 deletions
diff --git a/debug_toolbar/utils/tracking/db.py b/debug_toolbar/utils/tracking/db.py
index b6bbb66..b4ceff0 100644
--- a/debug_toolbar/utils/tracking/db.py
+++ b/debug_toolbar/utils/tracking/db.py
@@ -73,8 +73,7 @@ class NormalCursorWrapper(object):
def _quote_expr(self, element):
if isinstance(element, six.string_types):
- element = element.replace("'", "''")
- return "'%s'" % element
+ return "'%s'" % force_text(element).replace("'", "''")
else:
return repr(element)
diff --git a/tests/tests.py b/tests/tests.py
index 3c28f79..7fb4a87 100644
--- a/tests/tests.py
+++ b/tests/tests.py
@@ -169,6 +169,10 @@ class DebugToolbarIntegrationTestCase(TestCase):
self.assertContains(response, 'LÀTÍN') # template
self.assertContains(response, 'djDebug') # toolbar
+ def test_non_ascii_bytes_in_db_params(self):
+ response = self.client.get('/non_ascii_bytes_in_db_params/')
+ self.assertContains(response, 'djàngó')
+
def test_non_ascii_session(self):
response = self.client.get('/set_session/')
self.assertContains(response, 'où')
diff --git a/tests/urls.py b/tests/urls.py
index 4bed492..8a88385 100644
--- a/tests/urls.py
+++ b/tests/urls.py
@@ -1,3 +1,5 @@
+# coding: utf-8
+
"""
URLpatterns for the debug toolbar.
@@ -22,6 +24,7 @@ urlpatterns = patterns('tests.views',
url(r'^resolving3/(.+)/$', 'resolving_view', { 'arg2' : 'default' }),
url(r'^regular/(?P<title>.*)/$', 'regular_view'),
url(r'^non_ascii_context/$', 'non_ascii_context'),
+ url(r'^non_ascii_bytes_in_db_params/$', 'new_user', {'username': 'djàngó'.encode('utf-8')}),
url(r'^non_ascii_request/$', 'regular_view', {'title': NonAsciiRepr()}),
url(r'^new_user/$', 'new_user'),
url(r'^execute_sql/$', 'execute_sql'),
diff --git a/tests/views.py b/tests/views.py
index e6d9ebb..01c4971 100644
--- a/tests/views.py
+++ b/tests/views.py
@@ -23,8 +23,8 @@ def regular_view(request, title):
return render(request, 'basic.html', {'title': title})
-def new_user(request):
- User.objects.create_user(username='joe')
+def new_user(request, username='joe'):
+ User.objects.create_user(username=username)
return render(request, 'basic.html', {'title': 'new user'})