Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion shopfloor_base/models/shopfloor_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,8 @@ def _prepare_endpoint_rules(self, options=None):

def _registered_endpoint_rule_keys(self):
# `endpoint.route.sync.mixin` api
return [x[0] for x in self._registered_routes()]
# TODO: add tests
return [x.key for x in self._registered_routes()]

def _register_hook(self):
super()._register_hook()
Expand Down Expand Up @@ -252,6 +253,12 @@ def _generate_endpoints_route(self, service, vals):
method_name = vals.pop("_method_name")
route_handler = self.env["endpoint.route.handler.tool"]
new_route = route_handler.new(vals)
# SF endpoints must use the ``restapi`` dispatcher provided by base_rest.
# NOTE: this ``route_type`` value
# is not declared on `endpoint.route.handler.route_type` field selection,
# but is not relevant in this case
# because the value is set only on a in memory recordset.
new_route.route_type = "restapi"
new_route._refresh_endpoint_data()
options = {
"handler": {
Expand Down
13 changes: 11 additions & 2 deletions shopfloor_base/tests/test_shopfloor_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ def _test_registered_routes(self, rec):
routes = rec._registered_routes()
_check = {}
for rule in routes:
self.assertEqual(rule.routing["type"], "restapi")
self.assertEqual(rule.route_group, rec._route_group())
self.assertTrue(rule.endpoint_hash)
service, endpoint = rule.route.split("/")[-2:]
Expand All @@ -65,7 +66,12 @@ def _test_registered_routes(self, rec):
),
"method_name": "_process_endpoint",
}
self.assertEqual(rule.handler_options, expected_handler_opts)
for k, v in expected_handler_opts.items():
self.assertEqual(
rule.handler_options[k],
v,
f"{k} differs: {rule.handler_options[k]} != {v}",
)
_check[rule.route] = set(rule.routing["methods"])
expected = {
# TODO: review methods
Expand Down Expand Up @@ -145,7 +151,10 @@ def test_make_app_info(self):
)

def test_make_app_manifest(self):
param = "http://localhost:8069"
self.env["ir.config_parameter"].sudo().set_param(
"web.base.url", "http://foo.com"
)
param = "http://foo.com"
manifest = self.shopfloor_app._make_app_manifest()
expected = {
"name": self.shopfloor_app.name,
Expand Down
Loading