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
« 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
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"""
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 }
28 mock_get_store_snaps.return_value = test_snaps
30 response = self.client.get("/api/test-store-id/snaps/search")
31 data = response.get_json()
33 self.assertEqual(response.status_code, 200)
34 self.assertEqual(data, test_snaps)
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 }
50 mock_get_store_snaps.return_value = test_snaps
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()
60 self.assertEqual(response.status_code, 200)
61 self.assertEqual(data, test_snaps)