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

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 

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 ] 

17 

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

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

20 

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 ] 

30 

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

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

33 

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 ] 

40 

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

42 self.assertEqual(result, []) 

43 

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() 

47 

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

49 self.assertEqual(result, [])