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

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
5class PublicisePageNotAuth(BaseTestCases.EndpointLoggedOut):
6 def setUp(self):
7 snap_name = "test-snap"
8 endpoint_url = "/{}/publicise/badges".format(snap_name)
10 super().setUp(snap_name=snap_name, endpoint_url=endpoint_url)
13class GetPubliciseBadgesPage(BaseTestCases.EndpointLoggedInErrorHandling):
14 snap_payload = {
15 "snap-id": "id",
16 "name": "snapName",
17 "default-track": "test",
18 "snap": {
19 "title": "Snap Title",
20 "summary": "This is a summary",
21 "description": "this is a description",
22 "media": [],
23 "license": "license",
24 "publisher": {
25 "display-name": "Toto",
26 "username": "toto",
27 "validation": True,
28 },
29 "categories": [],
30 "trending": False,
31 },
32 "channel-map": [],
33 }
35 def setUp(self):
36 snap_name = "test-snap"
38 api_url = "https://dashboard.snapcraft.io/dev/api/snaps/info/{}"
39 api_url = api_url.format(snap_name)
40 self.public_api_url = "".join(
41 [
42 "https://api.snapcraft.io/v2/",
43 "snaps/info/",
44 snap_name,
45 "?fields=title%2Csummary%2Cdescription%2Clicense%2Ccontact%2C",
46 "website%2Cpublisher%2Cmedia%2Cdownload%2Cversion%2C",
47 "created-at%2Cconfinement%2Ccategories%2Ctrending%2Cunlisted",
48 "%2Clinks",
49 ]
50 )
52 endpoint_url = "/{}/publicise/badges".format(snap_name)
54 super().setUp(
55 snap_name=snap_name,
56 endpoint_url=endpoint_url,
57 method_endpoint="GET",
58 api_url=api_url,
59 method_api="GET",
60 )
62 @responses.activate
63 def test_page_not_found(self):
64 payload = {"error_list": []}
65 responses.add(responses.GET, self.api_url, json=payload, status=404)
67 response = self.client.get(self.endpoint_url)
69 self.check_call_by_api_url(responses.calls)
71 self.assertEqual(response.status_code, 404)
72 self.assert_template_used("404.html")
74 @responses.activate
75 def test_publicise_logged_in(self):
76 snap_name = "test-snap"
78 payload = {
79 "snap_id": "id",
80 "title": "test snap",
81 "private": False,
82 "snap_name": snap_name,
83 "keywords": [],
84 "media": [],
85 "publisher": {"display-name": "test"},
86 }
88 responses.add(responses.GET, self.api_url, json=payload, status=200)
89 responses.add(
90 responses.GET,
91 self.public_api_url,
92 json=self.snap_payload,
93 status=200,
94 )
96 response = self.client.get(self.endpoint_url)
98 self.check_call_by_api_url(responses.calls)
100 self.assertEqual(response.status_code, 200)
101 self.assert_template_used("publisher/publicise/github_badges.html")
103 self.assert_context("snap_id", "id")
104 self.assert_context("snap_title", "test snap")
105 self.assert_context("snap_name", snap_name)
107 @responses.activate
108 def test_publicise_private_snap(self):
109 snap_name = "test-snap"
111 payload = {
112 "snap_id": "id",
113 "title": "test snap",
114 "private": True,
115 "snap_name": snap_name,
116 "keywords": [],
117 "media": [],
118 }
120 responses.add(responses.GET, self.api_url, json=payload, status=200)
122 response = self.client.get(self.endpoint_url)
124 self.check_call_by_api_url(responses.calls)
126 self.assertEqual(response.status_code, 404)
127 self.assert_template_used("404.html")