Coverage for tests/publisher/tests_register_name_json.py: 100%
45 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 PostRegisterNameJsonNotAuth(BaseTestCases.EndpointLoggedOut):
6 def setUp(self):
7 endpoint_url = "/register-snap/json"
9 super().setUp(
10 snap_name=None, endpoint_url=endpoint_url, method_endpoint="POST"
11 )
14class PostRegisterNameJson(BaseTestCases.EndpointLoggedIn):
15 def setUp(self):
16 endpoint_url = "/register-snap/json"
17 api_url = "https://dashboard.snapcraft.io/dev/api/register-name/"
19 data = {"snap-name": "test-snap"}
21 super().setUp(
22 snap_name=None,
23 api_url=api_url,
24 endpoint_url=endpoint_url,
25 method_api="POST",
26 method_endpoint="POST",
27 data=data,
28 )
29 self.user_url = "https://dashboard.snapcraft.io/dev/api/account"
31 @responses.activate
32 def test_post_no_data(self):
33 response = self.client.post(self.endpoint_url)
35 self.assert400(response)
36 self.assertEqual(len(response.json["errors"]), 1)
38 @responses.activate
39 def test_post_snap_name(self):
40 responses.add(responses.POST, self.api_url, json={}, status=200)
42 response = self.client.post(self.endpoint_url, data=self.data)
44 self.assertEqual(1, len(responses.calls))
45 called = responses.calls[0]
46 self.assertEqual(self.api_url, called.request.url)
47 self.assertEqual(
48 self.authorization, called.request.headers.get("Authorization")
49 )
50 self.assertEqual(b'{"snap_name": "test-snap"}', called.request.body)
52 self.assert200(response)
53 self.assertEqual(response.json["code"], "created")
55 @responses.activate
56 def test_name_already_registered(self):
57 payload = {"error_list": [{"code": "already_registered"}]}
58 responses.add(responses.POST, self.api_url, json=payload, status=409)
60 response = self.client.post(self.endpoint_url, data=self.data)
61 errors = response.json["errors"]
62 self.assertStatus(response, 409)
63 self.assertEqual(len(errors), 1)
64 self.assertEqual(errors[0]["code"], "already_registered")
66 @responses.activate
67 def test_name_already_owned(self):
68 payload = {"error_list": [{"code": "already_owned"}]}
69 responses.add(responses.POST, self.api_url, json=payload, status=409)
71 response = self.client.post(self.endpoint_url, data=self.data)
73 self.assert200(response)
74 self.assertEqual(response.json["code"], "already_owned")