Coverage for tests/endpoints/tests_snaps_search.py: 100%

19 statements  

« prev     ^ index     » next       coverage.py v7.10.2, created at 2025-08-05 22:06 +0000

1from unittest.mock import patch 

2from tests.endpoints.endpoint_testing import TestEndpoints 

3 

4 

5class TestSnapsSearch(TestEndpoints): 

6 @patch("canonicalwebteam.store_api.dashboard.Dashboard.get_store_snaps") 

7 def test_get_snaps_search(self, mock_get_store_snaps): 

8 """Test basic functionality of get_snaps_search endpoint""" 

9 

10 test_snaps = { 

11 "snaps": [ 

12 { 

13 "name": "test-snap-1", 

14 "id": "snap-1-id", 

15 "title": "Test Snap 1", 

16 "summary": "A test snap for testing", 

17 }, 

18 { 

19 "name": "test-snap-2", 

20 "id": "snap-2-id", 

21 "title": "Test Snap 2", 

22 "summary": "Another test snap", 

23 }, 

24 ], 

25 "total": 2, 

26 } 

27 

28 mock_get_store_snaps.return_value = test_snaps 

29 

30 response = self.client.get("/api/test-store-id/snaps/search") 

31 data = response.get_json() 

32 

33 self.assertEqual(response.status_code, 200) 

34 self.assertEqual(data, test_snaps) 

35 

36 @patch("canonicalwebteam.store_api.dashboard.Dashboard.get_store_snaps") 

37 def test_get_snaps_search_with_query_params(self, mock_get_store_snaps): 

38 test_snaps = { 

39 "snaps": [ 

40 { 

41 "name": "filtered-snap", 

42 "id": "filtered-snap-id", 

43 "title": "Filtered Snap", 

44 "summary": "A filtered snap", 

45 } 

46 ], 

47 "total": 1, 

48 } 

49 

50 mock_get_store_snaps.return_value = test_snaps 

51 

52 response = self.client.get( 

53 ( 

54 "/api/test-store-id/snaps/search" 

55 "?q=test-query&allowed_for_inclusion=true" 

56 ) 

57 ) 

58 data = response.get_json() 

59 

60 self.assertEqual(response.status_code, 200) 

61 self.assertEqual(data, test_snaps)