Skip to content

Commit

Permalink
Add test case and six.binary_type
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel authored and Daniel committed Oct 25, 2018
1 parent 3bf2b74 commit 4012dbd
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
2 changes: 2 additions & 0 deletions debug_toolbar/panels/sql/tracking.py
Expand Up @@ -88,6 +88,8 @@ def _quote_expr(self, element):
return "'%s'" % force_text(element).replace("'", "''")
except DjangoUnicodeDecodeError:
return repr(element)
elif isinstance(element, six.binary_type):
return '(binary data)'
else:
return repr(element)

Expand Down
13 changes: 13 additions & 0 deletions tests/panels/test_sql.py
Expand Up @@ -122,6 +122,19 @@ def test_param_conversion(self):
'["2017-12-22 16:07:01"]'
))

@unittest.skipUnless(connection.vendor != 'sqlite',
'Test invalid for SQLite')
def test_binary_param_force_text(self):
self.assertEqual(len(self.panel._queries), 0)

with connection.cursor() as cursor:
cursor.execute("SELECT * FROM auth_user WHERE username = %s", [b'\xff'])

self.assertEqual(len(self.panel._queries), 1)

self.panel.process_response(self.request, self.response)
self.panel.generate_stats(self.request, self.response)

@unittest.skipUnless(connection.vendor != 'sqlite',
'Test invalid for SQLite')
def test_raw_query_param_conversion(self):
Expand Down

0 comments on commit 4012dbd

Please sign in to comment.