Skip to content

Commit 7539581

Browse files
committed
Support callable default
1 parent f276075 commit 7539581

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

flask_restful/reqparse.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,10 @@ def parse(self, request):
164164
self.handle_validation_error(ValueError(error_msg))
165165

166166
if not results:
167-
return self.default
167+
if callable(self.default):
168+
return self.default()
169+
else:
170+
return self.default
168171

169172
if self.action == 'append':
170173
return results

tests/test_reqparse.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,16 @@ def test_parse_default(self):
441441
self.assertEquals(args['foo'], "bar")
442442

443443

444+
def test_parse_callable_default(self):
445+
req = Request.from_values("/bubble")
446+
447+
parser = RequestParser()
448+
parser.add_argument("foo", default=lambda: "bar")
449+
450+
args = parser.parse_args(req)
451+
self.assertEquals(args['foo'], "bar")
452+
453+
444454
def test_parse(self):
445455
req = Request.from_values("/bubble?foo=bar")
446456

0 commit comments

Comments
 (0)