Coverage for tests/publisher/tests_get_package_metadata.py: 45%

20 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-28 22:05 +0000

1import responses 

2from unittest.mock import patch 

3from tests.publisher.endpoint_testing import BaseTestCases 

4 

5# Make sure tests fail on stray responses. 

6responses.mock.assert_all_requests_are_fired = True 

7 

8 

9class TestGetPackageMetadata(BaseTestCases): 

10 def setUp(self): 

11 super().setUp() 

12 

13 @responses.activate 

14 @patch( 

15 "canonicalwebteam.store_api.publishergw." 

16 "PublisherGW.get_package_metadata" 

17 ) 

18 def test_get_package_metadata(self, mock_get_package_metadata): 

19 # testing for track guardrails 

20 mock_metadata = { 

21 "track-guardrails": { 

22 "created-at": "2024-03-26T11:54:50.062999", 

23 "pattern": "^v\\.[0-9]+", 

24 } 

25 } 

26 mock_get_package_metadata.return_value = mock_metadata 

27 

28 self.client.set_session_data( 

29 {"publisher": {"nickname": "test_username"}} 

30 ) 

31 

32 snap_name = "test_snap" 

33 api_response = {"metadata": mock_metadata} 

34 responses.add( 

35 responses.GET, 

36 f"https://api.charmhub.io/v1/snap/{snap_name}", 

37 json=api_response, 

38 status=200, 

39 ) 

40 

41 response = self.client.get(f"/api/packages/{snap_name}") 

42 

43 self.assertEqual(response.status_code, 200) 

44 self.assertEqual( 

45 response.json, 

46 {"data": mock_metadata, "success": True}, 

47 ) 

48 mock_get_package_metadata.assert_called_once_with( 

49 self.client.session, 

50 "snap", 

51 snap_name, 

52 )