Skip to content

Commit 6b2828c

Browse files
committed
Merge pull request flask-restful#210 from devunt/master
reqparse.RequestParser.add_argument() now does accept reqparse.Argument object
2 parents 43585b6 + 256106a commit 6b2828c

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

flask_restful/reqparse.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,10 @@ def add_argument(self, *args, **kwargs):
198198
"""Adds an argument to be parsed. See :class:`Argument`'s constructor
199199
for documentation on the available options.
200200
"""
201-
202-
self.args.append(self.argument_class(*args, **kwargs))
201+
if len(args) == 1 and isinstance(args[0], self.argument_class):
202+
self.args.append(args[0])
203+
else:
204+
self.args.append(self.argument_class(*args, **kwargs))
203205
return self
204206

205207
def parse_args(self, req=None):

tests/test_reqparse.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,5 +588,13 @@ def test_type_filestorage(self):
588588
self.assertEquals(args['foo'].filename, 'baz.txt')
589589
self.assertEquals(args['foo'].read(), fdata)
590590

591+
def test_passing_arguments_object(self):
592+
req = Request.from_values("/bubble?foo=bar")
593+
parser = RequestParser()
594+
parser.add_argument(Argument("foo", type=str))
595+
596+
args = parser.parse_args(req)
597+
self.assertEquals(args['foo'], u"bar")
598+
591599
if __name__ == '__main__':
592600
unittest.main()

0 commit comments

Comments
 (0)