Coverage for tests / publisher / cve / test_has_cve.py: 100%

25 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2025-12-29 22:06 +0000

1import unittest 

2from unittest.mock import patch 

3 

4from webapp.publisher.cve.cve_helper import CveHelper 

5from werkzeug.exceptions import NotFound 

6 

7 

8class HasRevisionsWithCvesTest(unittest.TestCase): 

9 @patch("webapp.publisher.cve.cve_helper.CveHelper._get_cve_file_metadata") 

10 def test_returns_revision_numbers(self, mock_get_metadata): 

11 mock_get_metadata.return_value = [ 

12 {"name": "123.yaml"}, 

13 {"name": "456.yaml"}, 

14 {"name": "789.yaml"}, 

15 ] 

16 

17 result = CveHelper.get_revisions_with_cves("my-snap") 

18 self.assertEqual(result, [123, 456, 789]) 

19 

20 @patch("webapp.publisher.cve.cve_helper.CveHelper._get_cve_file_metadata") 

21 def test_ignores_non_yaml_files(self, mock_get_metadata): 

22 mock_get_metadata.return_value = [ 

23 {"name": "README.md"}, 

24 {"name": "123.yaml"}, 

25 {"name": "abc.yaml"}, 

26 {"name": "456.yaml"}, 

27 {"name": "data.txt"}, 

28 ] 

29 

30 result = CveHelper.get_revisions_with_cves("my-snap") 

31 self.assertEqual(result, [123, 456]) 

32 

33 @patch("webapp.publisher.cve.cve_helper.CveHelper._get_cve_file_metadata") 

34 def test_returns_empty_list_if_no_revision_files(self, mock_get_metadata): 

35 mock_get_metadata.return_value = [ 

36 {"name": "README.md"}, 

37 {"name": "notes.txt"}, 

38 ] 

39 

40 result = CveHelper.get_revisions_with_cves("my-snap") 

41 self.assertEqual(result, []) 

42 

43 @patch("webapp.publisher.cve.cve_helper.CveHelper._get_cve_file_metadata") 

44 def test_returns_empty_list_on_not_found(self, mock_get_metadata): 

45 mock_get_metadata.side_effect = NotFound() 

46 

47 result = CveHelper.get_revisions_with_cves("my-snap") 

48 self.assertEqual(result, [])