|
| 1 | +import re |
1 | 2 | import unittest
|
2 | 3 | from unittest.mock import patch
|
3 | 4 |
|
@@ -506,6 +507,29 @@ async def test_intercept_redirects(self):
|
506 | 507 | # Link to LOCATION header.
|
507 | 508 | self.assertIn(b'href="/regular/redirect/"', response.content)
|
508 | 509 |
|
| 510 | + async def test_server_timing_headers(self): |
| 511 | + response = await self.async_client.get("/execute_sql/") |
| 512 | + server_timing = response["Server-Timing"] |
| 513 | + expected_partials = [ |
| 514 | + r'TimerPanel_utime;dur=(\d)*(\.(\d)*)?;desc="User CPU time", ', |
| 515 | + r'TimerPanel_stime;dur=(\d)*(\.(\d)*)?;desc="System CPU time", ', |
| 516 | + r'TimerPanel_total;dur=(\d)*(\.(\d)*)?;desc="Total CPU time", ', |
| 517 | + r'TimerPanel_total_time;dur=(\d)*(\.(\d)*)?;desc="Elapsed time", ', |
| 518 | + r'SQLPanel_sql_time;dur=(\d)*(\.(\d)*)?;desc="SQL 1 queries", ', |
| 519 | + r'CachePanel_total_time;dur=0;desc="Cache 0 Calls"', |
| 520 | + ] |
| 521 | + for expected in expected_partials: |
| 522 | + self.assertTrue(re.compile(expected).search(server_timing)) |
| 523 | + |
| 524 | + @override_settings(DEBUG_TOOLBAR_CONFIG={"RENDER_PANELS": True}) |
| 525 | + async def test_timer_panel(self): |
| 526 | + response = await self.async_client.get("/regular/basic/") |
| 527 | + self.assertEqual(response.status_code, 200) |
| 528 | + self.assertContains( |
| 529 | + response, |
| 530 | + '<script type="module" src="/static/debug_toolbar/js/timer.js" async>', |
| 531 | + ) |
| 532 | + |
509 | 533 | async def test_auth_login_view_without_redirect(self):
|
510 | 534 | response = await self.async_client.get("/login_without_redirect/")
|
511 | 535 | self.assertEqual(response.status_code, 200)
|
|
0 commit comments