Coverage for tests/publisher/snaps/test_post_preview.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 json
3import responses
4from tests.publisher.endpoint_testing import BaseTestCases
7class PostPreviewPageNotAuth(BaseTestCases.EndpointLoggedOut):
8 def setUp(self):
9 snap_name = "test-snap"
10 endpoint_url = "/{}/preview".format(snap_name)
12 super().setUp(
13 snap_name=snap_name,
14 endpoint_url=endpoint_url,
15 method_endpoint="POST",
16 )
19class PostPreviewPage(BaseTestCases.EndpointLoggedIn):
20 def setUp(self):
21 self.snap_id = "complexId"
23 snap_name = "test-snap"
24 endpoint_url = "/{}/preview".format(snap_name)
25 api_url = (
26 "https://dashboard.snapcraft.io/dev/api/" "snaps/info/{}"
27 ).format(snap_name)
29 super().setUp(
30 snap_name=snap_name,
31 api_url=api_url,
32 endpoint_url=endpoint_url,
33 method_api="GET",
34 method_endpoint="POST",
35 )
37 @responses.activate
38 def test_renders_template(self):
39 responses.add(
40 responses.GET,
41 self.api_url,
42 json={
43 "publisher": {
44 "display-name": "Test",
45 "username": "test",
46 "validation": "verified",
47 }
48 },
49 status=200,
50 )
52 state = json.dumps(
53 {
54 "snap_name": self.snap_name,
55 "images": [],
56 "title": self.snap_name,
57 "categories": [{"slug": "devices-and-iot"}],
58 }
59 )
61 response = self.client.post(self.endpoint_url, data={"state": state})
63 self.assertEqual(response.status_code, 200)
64 self.assertTemplateUsed("store/snap-details.html")
65 self.assertContext("snap_name", self.snap_name)
66 self.assertContext("is_preview", True)
67 self.assertContext("screenshots", [])
68 self.assertContext("icon_url", "")
69 self.assertContext("video", None)
70 self.assertContext("package_name", self.snap_name)