Skip to content

Commit d425479

Browse files
committed
Add test for multiple float path parameters
1 parent 71f67a4 commit d425479

File tree

4 files changed

+49
-0
lines changed

4 files changed

+49
-0
lines changed

tests/api/test_parameters.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,16 @@ def test_path_parameter_somefloat(simple_app, arg, result):
175175
assert resp.data.decode('utf-8', 'replace') == f'"{result}"\n'
176176

177177

178+
@pytest.mark.parametrize('arg, arg2, result', [
179+
['-0.000000001', '0.3', 'float -1e-09, 0.3'],
180+
])
181+
def test_path_parameter_doublefloat(simple_app, arg, arg2, result):
182+
assert isinstance(arg, str) # sanity check
183+
app_client = simple_app.app.test_client()
184+
resp = app_client.get(f'/v1.0/test-float-path/{arg}/{arg2}') # type: flask.Response
185+
assert resp.data.decode('utf-8', 'replace') == f'"{result}"\n'
186+
187+
178188
def test_path_parameter_somefloat__bad(simple_app):
179189
# non-float values will not match Flask route
180190
app_client = simple_app.app.test_client()

tests/fakeapi/hello/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,10 @@ def test_get_somefloat(somefloat):
274274
return f'{type(somefloat).__name__} {somefloat:g}'
275275

276276

277+
def test_get_doublefloat(somefloat, someotherfloat):
278+
return f'{type(somefloat).__name__} {somefloat:g}, {someotherfloat}'
279+
280+
277281
def test_default_param(name):
278282
return {"app_name": name}
279283

tests/fixtures/simple/openapi.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,6 +528,24 @@ paths:
528528
responses:
529529
'200':
530530
description: OK
531+
'/test-float-path/{somefloat}/{someotherfloat}':
532+
get:
533+
summary: Test type casting of path parameter
534+
operationId: fakeapi.hello.test_get_doublefloat
535+
parameters:
536+
- name: somefloat
537+
in: path
538+
required: true
539+
schema:
540+
type: number
541+
- name: someotherfloat
542+
in: path
543+
required: true
544+
schema:
545+
type: number
546+
responses:
547+
'200':
548+
description: OK
531549
/test-default-query-parameter:
532550
get:
533551
summary: Test if default parameter is passed to function

tests/fixtures/simple/swagger.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,23 @@ paths:
394394
200:
395395
description: OK
396396

397+
/test-float-path/{somefloat}/{someotherfloat}:
398+
get:
399+
summary: Test type casting of path parameter
400+
operationId: fakeapi.hello.test_get_doublefloat
401+
parameters:
402+
- name: somefloat
403+
in: path
404+
type: number
405+
required: true
406+
- name: someotherfloat
407+
in: path
408+
type: number
409+
required: true
410+
responses:
411+
200:
412+
description: O
413+
397414
/test-default-query-parameter:
398415
get:
399416
summary: Test if default parameter is passed to function

0 commit comments

Comments
 (0)