Skip to content

Commit ba0ab53

Browse files
committed
fixup! [MIG] endpoint_auth_api_key: Migration to 19.0
1 parent 5591eaa commit ba0ab53

6 files changed

Lines changed: 64 additions & 67 deletions

File tree

endpoint_auth_api_key/__manifest__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
"maintainers": ["simahawk"],
1212
"website": "https://github.com/OCA/web-api",
1313
"depends": ["endpoint", "auth_api_key_group"],
14+
"demo": ["demo/api_key_demo.xml", "demo/endpoint_demo.xml"],
1415
"data": ["views/endpoint_view.xml"],
1516
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<odoo noupdate="1">
3+
<record id="auth_api_key_demo" model="auth.api.key">
4+
<field name="name">Endpoint API key demo</field>
5+
<field name="key">cZ6dF2UQwNcm</field>
6+
<field name="user_id" ref="base.user_demo" />
7+
</record>
8+
9+
<record id="auth_api_key_demo2" model="auth.api.key">
10+
<field name="name">Endpoint API key demo 2</field>
11+
<field name="key">kV47QyOTC5mS</field>
12+
<field name="user_id" ref="base.user_demo" />
13+
</record>
14+
15+
<record id="auth_api_key_group_demo" model="auth.api.key.group">
16+
<field name="name">Demo Group 1</field>
17+
<field name="code">demo_group1</field>
18+
<field name="auth_api_key_ids" eval="[(4, ref('auth_api_key_demo'))]" />
19+
</record>
20+
</odoo>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<odoo noupdate="1">
3+
<record id="endpoint_demo_1" model="endpoint.endpoint">
4+
<field name="name">Demo Endpoint - auth api key</field>
5+
<field name="route">/demo/api/key</field>
6+
<field name="request_method">GET</field>
7+
<field name="auth_type">api_key</field>
8+
<field
9+
name="auth_api_key_group_ids"
10+
eval="[(4, ref('auth_api_key_group_demo'))]"
11+
/>
12+
<field name="exec_mode">code</field>
13+
<field name="code_snippet">
14+
result = {"response": Response("ok")}
15+
</field>
16+
</record>
17+
</odoo>
Lines changed: 22 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,49 @@
11
# Copyright 2026 Camptocamp SA
22
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
3-
import contextlib
43

54
from odoo import Command
6-
from odoo.tools import DotDict
75

8-
from odoo.addons.base.tests.common import TransactionCaseWithUserDemo
9-
from odoo.addons.http_routing.tests.common import MockRequest
6+
from odoo.addons.endpoint.tests.common import CommonEndpoint
107

118

12-
def _setup_demo_api_keys(env, demo_user):
13-
"""Create demo API keys for tests."""
9+
def _setup_test_api_keys(env, user):
10+
"""Create API keys for tests."""
1411
api_key_model = env["auth.api.key"]
1512

1613
api_key_1 = api_key_model.create(
1714
{
18-
"name": "Endpoint API key demo",
19-
"key": "cZ6dF2UQwNcm",
20-
"user_id": demo_user.id,
15+
"name": "Endpoint API key test",
16+
"key": "tcZ6dF2UQwNcm",
17+
"user_id": user.id,
2118
}
2219
)
2320
api_key_2 = api_key_model.create(
2421
{
25-
"name": "Endpoint API key demo 2",
26-
"key": "kV47QyOTC5mS",
27-
"user_id": demo_user.id,
22+
"name": "Endpoint API key test 2",
23+
"key": "tV47QyOTC5mS",
24+
"user_id": user.id,
2825
}
2926
)
3027
return api_key_1, api_key_2
3128

3229

33-
def _setup_demo_api_key_group(env, api_key_1):
34-
"""Create demo API key group for tests."""
30+
def _setup_test_api_key_group(env, api_key_1):
31+
"""Create API key group for tests."""
3532
return env["auth.api.key.group"].create(
3633
{
37-
"name": "Demo Group 1",
38-
"code": "demo_group1",
34+
"name": "Test Group 1",
35+
"code": "test_group1",
3936
"auth_api_key_ids": [Command.set(api_key_1.ids)],
4037
}
4138
)
4239

4340

44-
def _setup_demo_endpoint(env, api_key_group):
45-
"""Create demo endpoint for tests."""
41+
def _setup_test_endpoint(env, api_key_group):
42+
"""Create endpoint for tests."""
4643
return env["endpoint.endpoint"].create(
4744
{
48-
"name": "Demo Endpoint - auth api key",
49-
"route": "/demo/api/key",
45+
"name": "Test Endpoint - auth api key",
46+
"route": "/test/api/key",
5047
"request_method": "GET",
5148
"auth_type": "api_key",
5249
"auth_api_key_group_ids": [Command.set(api_key_group.ids)],
@@ -56,52 +53,18 @@ def _setup_demo_endpoint(env, api_key_group):
5653
)
5754

5855

59-
class CommonEndpointAuthAPIKey(TransactionCaseWithUserDemo):
60-
@classmethod
61-
def setUpClass(cls):
62-
super().setUpClass()
63-
cls._setup_env()
64-
cls._setup_records()
65-
66-
@classmethod
67-
def _setup_env(cls):
68-
cls.env = cls.env(context=cls._setup_context())
69-
70-
@classmethod
71-
def _setup_context(cls):
72-
return dict(
73-
cls.env.context,
74-
tracking_disable=True,
75-
)
76-
56+
class CommonEndpointAuthAPIKey(CommonEndpoint):
7757
@classmethod
7858
def _setup_records(cls):
79-
cls.api_key, cls.api_key2 = _setup_demo_api_keys(
59+
cls.api_key, cls.api_key2 = _setup_test_api_keys(
8060
cls.env,
81-
cls.user_demo,
61+
cls.env.user,
8262
)
83-
cls.key_group = _setup_demo_api_key_group(
63+
cls.key_group = _setup_test_api_key_group(
8464
cls.env,
8565
cls.api_key,
8666
)
87-
cls.endpoint = _setup_demo_endpoint(
67+
cls.endpoint = _setup_test_endpoint(
8868
cls.env,
8969
cls.key_group,
9070
)
91-
92-
@contextlib.contextmanager
93-
def _get_mocked_request(
94-
self, httprequest=None, extra_headers=None, request_attrs=None
95-
):
96-
with MockRequest(self.env) as mocked_request:
97-
mocked_request.httprequest = (
98-
DotDict(httprequest) if httprequest else mocked_request.httprequest
99-
)
100-
headers = {}
101-
headers.update(extra_headers or {})
102-
mocked_request.httprequest.headers = headers
103-
request_attrs = request_attrs or {}
104-
for k, v in request_attrs.items():
105-
setattr(mocked_request, k, v)
106-
mocked_request.make_response = lambda data, **kw: data
107-
yield mocked_request

endpoint_auth_api_key/tests/test_endpoint.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@
1111

1212

1313
class TestEndpoint(CommonEndpointAuthAPIKey):
14-
@classmethod
15-
def _setup_records(cls):
16-
return super()._setup_records()
17-
1814
@mute_logger("endpoint.endpoint")
1915
def test_endpoint_validate_request_no_key(self):
2016
endpoint = self.endpoint.copy(

endpoint_auth_api_key/tests/test_endpoint_controller.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class EndpointAuthApiKeyHttpCase(HttpCase, CommonEndpointAuthAPIKey):
1616
@classmethod
1717
def setUpClass(cls):
1818
super().setUpClass()
19-
# force sync for demo records
19+
# force sync for test records
2020
cls.env["endpoint.endpoint"].search([])._handle_registry_sync()
2121

2222
def tearDown(self):
@@ -32,15 +32,15 @@ def _make_request(self, route, api_key=None, headers=None):
3232

3333
@mute_logger("odoo.addons.auth_api_key.models.ir_http", "odoo.http")
3434
def test_call_no_key(self):
35-
response = self._make_request("/demo/api/key")
35+
response = self._make_request("/test/api/key")
3636
self.assertEqual(response.status_code, 401)
3737

3838
def test_call_good_key(self):
39-
response = self._make_request("/demo/api/key", api_key=self.api_key)
39+
response = self._make_request("/test/api/key", api_key=self.api_key)
4040
self.assertEqual(response.status_code, 200)
4141
self.assertEqual(response.content, b"ok")
4242

4343
@mute_logger("endpoint.endpoint")
4444
def test_call_bad_key(self):
45-
response = self._make_request("/demo/api/key", api_key=self.api_key2)
45+
response = self._make_request("/test/api/key", api_key=self.api_key2)
4646
self.assertEqual(response.status_code, 403)

0 commit comments

Comments
 (0)