Coverage for tests/publisher/snaps/test_post_preview.py: 100%
28 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 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 "video": [],
59 }
60 )
62 response = self.client.post(self.endpoint_url, data={"state": state})
64 self.assertEqual(response.status_code, 200)
65 self.assertTemplateUsed("store/snap-details.html")
66 self.assertContext("snap_name", self.snap_name)
67 self.assertContext("is_preview", True)
68 self.assertContext("screenshots", [])
69 self.assertContext("icon_url", "")
70 self.assertContext("video", [])
71 self.assertContext("package_name", self.snap_name)