Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1import responses 

2from tests.publisher.endpoint_testing import BaseTestCases 

3 

4 

5class PublicisePageNotAuth(BaseTestCases.EndpointLoggedOut): 

6 def setUp(self): 

7 snap_name = "test-snap" 

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

9 

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

11 

12 

13class GetPublicisePage(BaseTestCases.EndpointLoggedInErrorHandling): 

14 def setUp(self): 

15 snap_name = "test-snap" 

16 

17 api_url = "https://dashboard.snapcraft.io/dev/api/snaps/info/{}" 

18 api_url = api_url.format(snap_name) 

19 endpoint_url = "/{}/publicise".format(snap_name) 

20 

21 super().setUp( 

22 snap_name=snap_name, 

23 endpoint_url=endpoint_url, 

24 method_endpoint="GET", 

25 api_url=api_url, 

26 method_api="GET", 

27 ) 

28 

29 @responses.activate 

30 def test_page_not_found(self): 

31 payload = {"error_list": []} 

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

33 

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

35 

36 self.check_call_by_api_url(responses.calls) 

37 

38 assert response.status_code == 404 

39 self.assert_template_used("404.html") 

40 

41 @responses.activate 

42 def test_publicise_logged_in(self): 

43 snap_name = "test-snap" 

44 

45 payload = { 

46 "snap_id": "id", 

47 "title": "test snap", 

48 "private": False, 

49 "snap_name": snap_name, 

50 "channel_maps_list": [], 

51 "keywords": [], 

52 "publisher": {"display-name": "test"}, 

53 } 

54 

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

56 

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

58 

59 self.check_call_by_api_url(responses.calls) 

60 

61 assert response.status_code == 200 

62 self.assert_template_used("publisher/publicise/store_buttons.html") 

63 

64 self.assert_context("snap_id", "id") 

65 self.assert_context("snap_title", "test snap") 

66 self.assert_context("snap_name", snap_name) 

67 

68 @responses.activate 

69 def test_publicise_private_snap(self): 

70 snap_name = "test-snap" 

71 

72 payload = { 

73 "snap_id": "id", 

74 "title": "test snap", 

75 "private": True, 

76 "snap_name": snap_name, 

77 "channel_maps_list": [], 

78 "keywords": [], 

79 "publisher": {"display-name": "test"}, 

80 } 

81 

82 responses.add(responses.GET, self.api_url, json=payload, status=200) 

83 

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

85 

86 self.check_call_by_api_url(responses.calls) 

87 

88 assert response.status_code == 200 

89 self.assert_template_used("publisher/publicise/store_buttons.html") 

90 

91 self.assert_context("private", True)