Coverage for tests/publisher/tests_agreement.py: 100%
35 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 responses
2from tests.publisher.endpoint_testing import BaseTestCases
5class GetAgreementPage(BaseTestCases.BaseAppTesting):
6 def setUp(self):
7 endpoint_url = "/account/agreement"
8 super().setUp(snap_name=None, api_url=None, endpoint_url=endpoint_url)
10 @responses.activate
11 def test_agreement_logged_in(self):
12 self._log_in(self.client)
13 response = self.client.get("/account/agreement")
15 assert response.status_code == 200
16 self.assert_template_used(
17 "publisher/developer_programme_agreement.html"
18 )
21class PostAgreementPage(BaseTestCases.EndpointLoggedIn):
22 def setUp(self):
23 api_url = "https://dashboard.snapcraft.io/dev/api/agreement/"
24 data = {"i_agree": "on"}
25 endpoint_url = "/account/agreement"
27 super().setUp(
28 snap_name=None,
29 endpoint_url=endpoint_url,
30 api_url=api_url,
31 method_endpoint="POST",
32 method_api="POST",
33 data=data,
34 )
36 @responses.activate
37 def test_post_agreement_on(self):
38 responses.add(responses.POST, self.api_url, json={}, status=200)
40 response = self.client.post(self.endpoint_url, data={"i_agree": "on"})
42 self.assertEqual(1, len(responses.calls))
43 called = responses.calls[0]
44 self.assertEqual(self.api_url, called.request.url)
45 self.assertEqual(
46 self.authorization, called.request.headers.get("Authorization")
47 )
48 self.assertEqual(called.response.json(), {})
49 self.assertEqual(b'{"latest_tos_accepted": true}', called.request.body)
51 self.assertEqual(302, response.status_code)
52 self.assertEqual("/account/", response.location)
54 @responses.activate
55 def test_post_agreement_off(self):
56 response = self.client.post(self.endpoint_url, data={"i_agree": "off"})
58 self.assertEqual(302, response.status_code)
59 self.assertEqual("/account/agreement", response.location)