Coverage for tests/publisher/cve/test_has_cve.py: 100%
25 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-28 22:05 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-28 22:05 +0000
1import unittest
2from unittest.mock import patch
4from webapp.publisher.cve.cve_helper import CveHelper
5from werkzeug.exceptions import NotFound
8class HasRevisionsWithCvesTest(unittest.TestCase):
10 @patch("webapp.publisher.cve.cve_helper.CveHelper._get_cve_file_metadata")
11 def test_returns_revision_numbers(self, mock_get_metadata):
12 mock_get_metadata.return_value = [
13 {"name": "123.yaml"},
14 {"name": "456.yaml"},
15 {"name": "789.yaml"},
16 ]
18 result = CveHelper.get_revisions_with_cves("my-snap")
19 self.assertEqual(result, [123, 456, 789])
21 @patch("webapp.publisher.cve.cve_helper.CveHelper._get_cve_file_metadata")
22 def test_ignores_non_yaml_files(self, mock_get_metadata):
23 mock_get_metadata.return_value = [
24 {"name": "README.md"},
25 {"name": "123.yaml"},
26 {"name": "abc.yaml"},
27 {"name": "456.yaml"},
28 {"name": "data.txt"},
29 ]
31 result = CveHelper.get_revisions_with_cves("my-snap")
32 self.assertEqual(result, [123, 456])
34 @patch("webapp.publisher.cve.cve_helper.CveHelper._get_cve_file_metadata")
35 def test_returns_empty_list_if_no_revision_files(self, mock_get_metadata):
36 mock_get_metadata.return_value = [
37 {"name": "README.md"},
38 {"name": "notes.txt"},
39 ]
41 result = CveHelper.get_revisions_with_cves("my-snap")
42 self.assertEqual(result, [])
44 @patch("webapp.publisher.cve.cve_helper.CveHelper._get_cve_file_metadata")
45 def test_returns_empty_list_on_not_found(self, mock_get_metadata):
46 mock_get_metadata.side_effect = NotFound()
48 result = CveHelper.get_revisions_with_cves("my-snap")
49 self.assertEqual(result, [])