Skip to content

Commit 3d0a469

Browse files
author
Edvard Majakari
committed
Fix type doc issue when map_params is used
1 parent 2dc96fd commit 3d0a469

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

hug/interface.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ def documentation(self, add_to=None):
324324
inputs = doc.setdefault("inputs", OrderedDict())
325325
types = self.interface.spec.__annotations__
326326
for argument in parameters:
327-
kind = types.get(argument, text)
327+
kind = types.get(self._remap_entry(argument), text)
328328
if getattr(kind, "directive", None) is True:
329329
continue
330330

@@ -341,6 +341,9 @@ def _rewrite_params(self, params):
341341
if interface_name in params:
342342
params[internal_name] = params.pop(interface_name)
343343

344+
def _remap_entry(self, interface_name):
345+
return self.map_params.get(interface_name, interface_name)
346+
344347
@staticmethod
345348
def cleanup_parameters(parameters, exception=None):
346349
for _parameter, directive in parameters.items():

tests/test_documentation.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,11 @@ def marshtest() -> Returns():
185185
doc = api.http.documentation()
186186

187187
assert doc["handlers"]["/marshtest"]["POST"]["outputs"]["type"] == "Return docs"
188+
189+
def test_map_params_documentation_preserves_type():
190+
@hug.get(map_params={"from": "from_mapped"})
191+
def map_params_test(from_mapped: hug.types.number):
192+
pass
193+
194+
doc = api.http.documentation()
195+
assert doc["handlers"]["/map_params_test"]["GET"]["inputs"]["from"]["type"] == "A whole number"

0 commit comments

Comments
 (0)