diff options
| author | Adam Johnson <me@adamj.eu> | 2025-09-11 10:09:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-11 11:09:53 +0200 |
| commit | 41bc48ac1ed1d515977ebe965993b1ef83eafd02 (patch) | |
| tree | c52dff9c2024d704e06ae6fc7816870022c7f08c /tests | |
| parent | 46fdeb1373aa7e9089d14440987444493cc9c2e0 (diff) | |
Fixed #36603 -- Optimized check order in LoginRequiredMiddleware.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/auth_tests/test_middleware.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auth_tests/test_middleware.py b/tests/auth_tests/test_middleware.py index e7e5d3b4dc..5e106d40f7 100644 --- a/tests/auth_tests/test_middleware.py +++ b/tests/auth_tests/test_middleware.py @@ -206,3 +206,21 @@ class TestLoginRequiredMiddleware(TestCase): def test_get_redirect_field_name_default(self): redirect_field_name = self.middleware.get_redirect_field_name(lambda: None) self.assertEqual(redirect_field_name, REDIRECT_FIELD_NAME) + + def test_public_view_logged_in_performance(self): + """ + Public views don't trigger fetching the user from the database. + """ + self.client.force_login(self.user) + with self.assertNumQueries(0): + response = self.client.get("/public_view/") + self.assertEqual(response.status_code, 200) + + def test_protected_view_logged_in_performance(self): + """ + Protected views do trigger fetching the user from the database. + """ + self.client.force_login(self.user) + with self.assertNumQueries(2): # session and user + response = self.client.get("/protected_view/") + self.assertEqual(response.status_code, 200) |
