Coverage for tests/publisher/snaps/test_release_history_json.py: 100%

35 statements  

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

1import responses 

2from tests.publisher.endpoint_testing import BaseTestCases 

3 

4 

5class GetReleaseHistoryJsonNotAuth(BaseTestCases.EndpointLoggedOut): 

6 def setUp(self): 

7 snap_name = "test-snap" 

8 endpoint_url = "/{}/releases/json".format(snap_name) 

9 

10 super().setUp(snap_name=snap_name, endpoint_url=endpoint_url) 

11 

12 

13class GetReleasesHistoryJson(BaseTestCases.EndpointLoggedIn): 

14 def setUp(self): 

15 snap_name = "test-snap" 

16 

17 api_url = ( 

18 "https://dashboard.snapcraft.io/api/v2/snaps/{}" 

19 + "/releases?page=1" 

20 ) 

21 api_url = api_url.format(snap_name) 

22 endpoint_url = "/{}/releases/json".format(snap_name) 

23 

24 super().setUp( 

25 snap_name=snap_name, 

26 endpoint_url=endpoint_url, 

27 api_url=api_url, 

28 method_endpoint="GET", 

29 method_api="GET", 

30 ) 

31 

32 @responses.activate 

33 def test_get_releases(self): 

34 responses.add(responses.GET, self.api_url, json={}, status=200) 

35 

36 response = self.client.get(self.endpoint_url) 

37 

38 self.check_call_by_api_url(responses.calls) 

39 self.assertEqual(response.status_code, 200) 

40 assert response.json == {} 

41 

42 @responses.activate 

43 def test_404(self): 

44 payload = {"error_list": []} 

45 responses.add(responses.GET, self.api_url, json=payload, status=404) 

46 

47 response = self.client.get(self.endpoint_url) 

48 

49 self.check_call_by_api_url(responses.calls) 

50 self.assertEqual(response.status_code, 404) 

51 

52 @responses.activate 

53 def test_5XX(self): 

54 payload = {"error_list": []} 

55 responses.add(responses.GET, self.api_url, json=payload, status=500) 

56 

57 response = self.client.get(self.endpoint_url) 

58 

59 self.check_call_by_api_url(responses.calls) 

60 self.assertEqual(response.status_code, 502)