Skip to content

Commit e88bef4

Browse files
committed
webob's multidict protocol does not support getlist.
1 parent cabe512 commit e88bef4

File tree

3 files changed

+28
-1
lines changed

3 files changed

+28
-1
lines changed

requirements_dev.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ pytest-flake8
44
pytest-cov==2.5.1
55
flask
66
django==2.2.6; python_version>="3.0"
7+
webob

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ tests_require =
3737
pytest-flake8
3838
pytest-cov
3939
flask
40+
webob
4041

4142
[options.packages.find]
4243
exclude =

tests/integration/validation/test_validators.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def test_missing_parameter(self, validator):
9494
def test_get_pets(self, validator):
9595
request = MockRequest(
9696
self.host_url, 'get', '/v1/pets',
97-
path_pattern='/v1/pets', args={'limit': '10'},
97+
path_pattern='/v1/pets', args={'limit': '10', 'ids': ['1', '2']},
9898
)
9999

100100
result = validator.validate(request)
@@ -106,6 +106,31 @@ def test_get_pets(self, validator):
106106
'limit': 10,
107107
'page': 1,
108108
'search': '',
109+
'ids': [1, 2],
110+
},
111+
)
112+
113+
def test_get_pets_webob(self, validator):
114+
from webob.multidict import GetDict
115+
request = MockRequest(
116+
self.host_url, 'get', '/v1/pets',
117+
path_pattern='/v1/pets',
118+
)
119+
request.parameters.query = GetDict(
120+
[('limit', '5'), ('ids', '1'), ('ids', '2')],
121+
{}
122+
)
123+
124+
result = validator.validate(request)
125+
126+
assert result.errors == []
127+
assert result.body is None
128+
assert result.parameters == RequestParameters(
129+
query={
130+
'limit': 5,
131+
'page': 1,
132+
'search': '',
133+
'ids': [1, 2],
109134
},
110135
)
111136

0 commit comments

Comments
 (0)