Coverage for tests/publisher/cve/test_has_cve_api.py: 100%
40 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 import TestCase
2from webapp.app import create_app
3from unittest.mock import patch
6class TestEndpoints(TestCase):
7 def setUp(self):
8 self.app = create_app(testing=True)
9 self.client = self.app.test_client()
10 self._log_in(is_canonical=False)
12 def _log_in(self, is_canonical=False):
13 test_macaroon = "test_macaroon"
14 with self.client.session_transaction() as s:
15 s["publisher"] = {
16 "account_id": "test_account_id",
17 "image": None,
18 "nickname": "XYZ",
19 "fullname": "ABC XYZ",
20 "email": "testing@testing.com",
21 "stores": [],
22 "is_canonical": is_canonical,
23 }
24 s["macaroons"] = test_macaroon
25 s["developer_token"] = test_macaroon
26 s["exchanged_developer_token"] = True
28 def _set_user_is_canonical(self, value):
29 self._log_in(is_canonical=value)
32class TestModelServiceEndpoints(TestEndpoints):
33 @patch(
34 "webapp.publisher.cve.cve_helper.CveHelper.get_revisions_with_cves",
35 return_value=[123, 321],
36 )
37 @patch(
38 "canonicalwebteam.store_api.dashboard.Dashboard.get_snap_info",
39 return_value={"snap_id": "id"},
40 )
41 def test_has_cves_for_canonical_user(self, mock_get_snap_info, mock_get):
42 self._set_user_is_canonical(True)
44 response = self.client.get("api/test/cves")
45 data = response.json
47 self.assertEqual(response.status_code, 200)
48 self.assertEqual(data["success"], True)
49 self.assertEqual(data["data"]["revisions"], [123, 321])
51 @patch(
52 "webapp.publisher.cve.cve_helper.CveHelper.get_revisions_with_cves",
53 return_value=[],
54 )
55 @patch(
56 "canonicalwebteam.store_api.dashboard.Dashboard.get_snap_info",
57 return_value={"snap_id": "id"},
58 )
59 def test_has_cves_no_data(self, mock_get_snap_info, mock_get):
60 self._set_user_is_canonical(True)
62 response = self.client.get("api/test/cves")
63 data = response.json
65 self.assertEqual(response.status_code, 404)
66 self.assertEqual(data["success"], False)
68 def test_has_cves_for_non_canonical_user(self):
69 response = self.client.get("api/test/cves")
70 data = response.json
72 self.assertEqual(response.status_code, 403)
73 self.assertEqual(data["success"], False)