Coverage for sm / test_search.py: 100%
23 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
1from django.test import TestCase, Client
2from django.urls import reverse
3from django.contrib.auth import get_user_model
6class SearchTest(TestCase):
7 def setUp(self):
8 User = get_user_model()
9 self.user = User.objects.create_user(
10 username="testuser", password="testpassword"
11 )
12 self.client = Client()
13 self.client.login(username="testuser", password="testpassword")
15 def test_search_ajax_nav(self):
16 """
17 Test that AJAX search returns navigation quick jumps.
18 """
19 response = self.client.get(reverse("search"), {"q": "dash", "ajax": "1"})
20 self.assertEqual(response.status_code, 200)
21 self.assertContains(response, "Dashboard")
22 self.assertTemplateUsed(response, "search_results_ajax.html")
24 def test_search_full_nav(self):
25 """
26 Test that full search page includes navigation quick jumps.
27 """
28 response = self.client.get(reverse("search"), {"q": "server"})
29 self.assertEqual(response.status_code, 200)
30 self.assertContains(response, "Servers")
31 self.assertTemplateUsed(response, "search.html")
33 def test_search_too_short(self):
34 """
35 Test behavior when query is too short.
36 """
37 response = self.client.get(reverse("search"), {"q": "a"})
38 self.assertEqual(response.status_code, 200)
39 self.assertContains(response, "Query too short")