|
| 1 | +from unittest.mock import MagicMock, patch |
| 2 | + |
| 3 | +from django.test import TestCase |
| 4 | + |
| 5 | +from pulpcore.middleware import DomainMiddleware |
| 6 | +from pulpcore.plugin.find_url import find_api_root |
| 7 | + |
| 8 | + |
| 9 | +class TestLivezNoDatabaseAccess(TestCase): |
| 10 | + """Test that GET /livez/ makes zero database queries.""" |
| 11 | + |
| 12 | + def test_livez_makes_no_database_queries(self): |
| 13 | + _, api_v3_path = find_api_root(set_domain=False, rewrite_header=False) |
| 14 | + with self.assertNumQueries(0): |
| 15 | + response = self.client.get(f"{api_v3_path}livez/") |
| 16 | + self.assertEqual(response.status_code, 200) |
| 17 | + |
| 18 | + |
| 19 | +class TestDomainMiddlewareSkip(TestCase): |
| 20 | + """Test that DomainMiddleware skips DB lookup for views with skip_domain_middleware=True.""" |
| 21 | + |
| 22 | + def setUp(self): |
| 23 | + self.middleware = DomainMiddleware(get_response=MagicMock()) |
| 24 | + self.request = MagicMock() |
| 25 | + |
| 26 | + @patch("pulpcore.middleware.Domain.objects") |
| 27 | + @patch("pulpcore.middleware.set_domain") |
| 28 | + def test_does_db_lookup_when_flag_not_set(self, mock_set_domain, mock_domain_objects): |
| 29 | + view_class = type("NormalView", (), {}) |
| 30 | + view_func = MagicMock(view_class=view_class) |
| 31 | + view_kwargs = {"pulp_domain": "default"} |
| 32 | + |
| 33 | + self.middleware.process_view(self.request, view_func, [], view_kwargs) |
| 34 | + |
| 35 | + mock_domain_objects.get.assert_called_once_with(name="default") |
0 commit comments