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
« 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
5# Make sure tests fail on stray responses.
6responses.mock.assert_all_requests_are_fired = True
9class TestGetPackageMetadata(BaseTestCases):
10 def setUp(self):
11 super().setUp()
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
28 self.client.set_session_data(
29 {"publisher": {"nickname": "test_username"}}
30 )
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 )
41 response = self.client.get(f"/api/packages/{snap_name}")
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 )