Coverage for tests / store / tests_explore.py: 100%
31 statements
« prev ^ index » next coverage.py v7.13.1, created at 2025-12-29 22:06 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2025-12-29 22:06 +0000
1import unittest
2from unittest.mock import patch, Mock
3import requests
6class ExploreViewTest(unittest.TestCase):
7 def setUp(self):
8 self.recommendations_url = (
9 "https://recommendations.snapcraft.io/api/category"
10 )
12 self.mock_snaps = [
13 {
14 "details": {
15 "contact": "https://example.com/contact",
16 "description": "Test description",
17 "icon": "https://example.com/icon.png",
18 "links": {
19 "contact": ["https://example.com/contact"],
20 "website": ["https://example.com"],
21 },
22 "name": "test-snap",
23 "publisher": "Canonical",
24 "title": "Test snap",
25 },
26 "snap_id": "test-snap-id",
27 }
28 ]
30 @patch("requests.get")
31 def test_popular_snaps(self, mock_requests_get):
32 mock_response = Mock()
33 mock_response.json.return_value = self.mock_snaps
34 mock_requests_get.return_value = mock_response
36 res = requests.get(f"{self.recommendations_url}/popular")
37 popular_snaps = res.json()
39 self.assertEqual(popular_snaps, self.mock_snaps)
41 @patch("requests.get")
42 def test_recent_snaps(self, mock_requests_get):
43 mock_response = Mock()
44 mock_response.json.return_value = self.mock_snaps
45 mock_requests_get.return_value = mock_response
47 res = requests.get(f"{self.recommendations_url}/recent")
48 recent_snaps = res.json()
50 self.assertEqual(recent_snaps, self.mock_snaps)
52 @patch("requests.get")
53 def test_trending_snaps(self, mock_requests_get):
54 mock_response = Mock()
55 mock_response.json.return_value = self.mock_snaps
56 mock_requests_get.return_value = mock_response
58 res = requests.get(f"{self.recommendations_url}/trending")
59 trending_snaps = res.json()
61 self.assertEqual(trending_snaps, self.mock_snaps)