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

1from django.test import TestCase, Client 

2from django.urls import reverse 

3from django.contrib.auth import get_user_model 

4 

5 

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") 

14 

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") 

23 

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") 

32 

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")