|
9 | 9 | from django.shortcuts import render
|
10 | 10 | from django.test.utils import override_settings
|
11 | 11 |
|
| 12 | +from debug_toolbar import settings as dt_settings |
| 13 | + |
12 | 14 | from ..base import BaseTestCase
|
13 | 15 |
|
14 | 16 | try:
|
@@ -357,3 +359,40 @@ def test_regression_infinite_recursion(self):
|
357 | 359 |
|
358 | 360 | # ensure the stacktrace is populated
|
359 | 361 | self.assertTrue(len(query[1]["stacktrace"]) > 0)
|
| 362 | + |
| 363 | + @override_settings( |
| 364 | + DEBUG_TOOLBAR_CONFIG={"PRETTIFY_SQL": True}, |
| 365 | + ) |
| 366 | + def test_prettify_sql(self): |
| 367 | + """ |
| 368 | + Test case to validate that the PRETTIFY_SQL setting changes the output |
| 369 | + of the sql when it's toggled. It does not validate what it does |
| 370 | + though. |
| 371 | + """ |
| 372 | + list(User.objects.filter(username__istartswith="spam")) |
| 373 | + |
| 374 | + response = self.panel.process_request(self.request) |
| 375 | + self.panel.generate_stats(self.request, response) |
| 376 | + pretty_sql = self.panel._queries[-1][1]["sql"] |
| 377 | + self.assertEqual(len(self.panel._queries), 1) |
| 378 | + |
| 379 | + # Reset the queries |
| 380 | + self.panel._queries = [] |
| 381 | + # Run it again, but with prettyify off. Verify that it's different. |
| 382 | + dt_settings.get_config()["PRETTIFY_SQL"] = False |
| 383 | + list(User.objects.filter(username__istartswith="spam")) |
| 384 | + response = self.panel.process_request(self.request) |
| 385 | + self.panel.generate_stats(self.request, response) |
| 386 | + self.assertEqual(len(self.panel._queries), 1) |
| 387 | + self.assertNotEqual(pretty_sql, self.panel._queries[-1][1]["sql"]) |
| 388 | + |
| 389 | + self.panel._queries = [] |
| 390 | + # Run it again, but with prettyify back on. |
| 391 | + # This is so we don't have to check what PRETTIFY_SQL does exactly, |
| 392 | + # but we know it's doing something. |
| 393 | + dt_settings.get_config()["PRETTIFY_SQL"] = True |
| 394 | + list(User.objects.filter(username__istartswith="spam")) |
| 395 | + response = self.panel.process_request(self.request) |
| 396 | + self.panel.generate_stats(self.request, response) |
| 397 | + self.assertEqual(len(self.panel._queries), 1) |
| 398 | + self.assertEqual(pretty_sql, self.panel._queries[-1][1]["sql"]) |
0 commit comments