def test_source(self, mocker): req = mocker.Mock(['args', 'headers', 'values']) req.args = {'foo': 'bar'} req.headers = {'baz': 'bat'} arg = Argument('foo', location=['args']) assert arg.source(req) == MultiDict(req.args) arg = Argument('foo', location=['headers']) assert arg.source(req) == MultiDict(req.headers)
def test_option_case_sensitive(self): arg = Argument('foo', choices=['bar', 'baz'], case_sensitive=True) assert arg.case_sensitive is True # Insensitive arg = Argument('foo', choices=['bar', 'baz'], case_sensitive=False) assert arg.case_sensitive is False # Default arg = Argument('foo', choices=['bar', 'baz']) assert arg.case_sensitive is True
def test_option_case_sensitive(self): arg = Argument('foo', choices=['bar', 'baz'], case_sensitive=True) self.assertEqual(True, arg.case_sensitive) # Insensitive arg = Argument('foo', choices=['bar', 'baz'], case_sensitive=False) self.assertEqual(False, arg.case_sensitive) # Default arg = Argument('foo', choices=['bar', 'baz']) self.assertEqual(True, arg.case_sensitive)
def test_passing_arguments_object(self, app): req = Request.from_values('/bubble?foo=bar') parser = RequestParser() parser.add_argument(Argument('foo')) args = parser.parse_args(req) assert args['foo'] == 'bar'
def test_passing_arguments_object(self): req = Request.from_values('/bubble?foo=bar') parser = RequestParser() parser.add_argument(Argument('foo')) args = parser.parse_args(req) self.assertEqual(args['foo'], 'bar')
def test_request_parser_copy(self, app): req = Request.from_values('/bubble?foo=101&bar=baz') parser = RequestParser() foo_arg = Argument('foo', type=int) parser.args.append(foo_arg) parser_copy = parser.copy() # Deepcopy should create a clone of the argument object instead of # copying a reference to the new args list assert foo_arg not in parser_copy.args # Args added to new parser should not be added to the original bar_arg = Argument('bar') parser_copy.args.append(bar_arg) assert bar_arg not in parser.args args = parser_copy.parse_args(req) assert args['foo'] == 101 assert args['bar'] == 'baz'
def test_request_parser_copy(self): req = Request.from_values('/bubble?foo=101&bar=baz') parser = RequestParser() foo_arg = Argument('foo', type=int) parser.args.append(foo_arg) parser_copy = parser.copy() # Deepcopy should create a clone of the argument object instead of # copying a reference to the new args list self.assertFalse(foo_arg in parser_copy.args) # Args added to new parser should not be added to the original bar_arg = Argument('bar') parser_copy.args.append(bar_arg) self.assertFalse(bar_arg in parser.args) args = parser_copy.parse_args(req) self.assertEqual(args['foo'], 101) self.assertEqual(args['bar'], 'baz')
def test_source(self): req = Mock(['args', 'headers', 'values']) req.args = {'foo': 'bar'} req.headers = {'baz': 'bat'} arg = Argument('foo', location=['args']) self.assertEqual(arg.source(req), MultiDict(req.args)) arg = Argument('foo', location=['headers']) self.assertEqual(arg.source(req), MultiDict(req.headers))
def test_action(self): arg = Argument('foo', action='append') self.assertEqual(arg.action, 'append')
def test_action_filter(self): arg = Argument('foo', action='filter') self.assertEqual(arg.action, 'filter')
def test_operator(self): arg = Argument('foo', operators=['>=', '<=', '=']) self.assertEqual(arg.operators, ['>=', '<=', '='])
def test_convert_default_type_with_null_input(self): arg = Argument('foo') assert arg.convert(None, None) is None
def test_source_default_location(self): req = Mock(['values']) req._get_child_mock = lambda **kwargs: MultiDict() arg = Argument('foo') self.assertEqual(arg.source(req), req.values)
def test_convert_with_null_input_when_not_nullable(self): arg = Argument('foo', nullable=False) self.assertRaises(ValueError, lambda: arg.convert(None, None))
def test_action_default(self): arg = Argument('foo') self.assertEqual(arg.action, 'store')
def test_required_default(self): arg = Argument('foo') self.assertEqual(arg.required, False)
def test_default_type(self, mock_six): arg = Argument('foo') sentinel = object() arg.type(sentinel) mock_six.text_type.assert_called_with(sentinel)
def test_choices(self): arg = Argument('foo', choices=[1, 2]) self.assertEqual(arg.choices, [1, 2])
def test_source_bad_location(self, mocker): req = mocker.Mock(['values']) arg = Argument('foo', location=['foo']) assert len(arg.source(req)) == 0 # yes, basically you don't find it
def test_source_default_location(self, mocker): req = mocker.Mock(['values']) req._get_child_mock = lambda **kwargs: MultiDict() arg = Argument('foo') assert arg.source(req) == req.values
def test_default_operators(self): arg = Argument('foo') self.assertEqual(arg.operators[0], '=') self.assertEqual(len(arg.operators), 1)
def test_location_get_json(self): arg = Argument('foo', location='get_json') self.assertEqual(arg.location, 'get_json')
def test_default_default(self): arg = Argument('foo') self.assertEqual(arg.default, None)
def test_location_header_list(self): arg = Argument('foo', location=['headers']) self.assertEqual(arg.location, ['headers'])
def test_ignore_default(self): arg = Argument('foo') self.assertEqual(arg.ignore, False)
def test_type(self): arg = Argument('foo', type=int) self.assertEqual(arg.type, int)
def test_choices_default(self): arg = Argument('foo') self.assertEqual(len(arg.choices), 0)
def test_default(self): arg = Argument('foo', default=True) self.assertEqual(arg.default, True)
def test_convert_default_type_with_null_input(self): arg = Argument('foo') self.assertEqual(arg.convert(None, None), None)
def test_default_help(self): arg = Argument('foo') self.assertEqual(arg.help, None)
def test_source_bad_location(self): req = Mock(['values']) arg = Argument('foo', location=['foo']) self.assertTrue(len(arg.source(req)) == 0) # yes, basically you don't find it
def test_required(self): arg = Argument('foo', required=True) self.assertEqual(arg.required, True)
def test_ignore(self): arg = Argument('foo', ignore=True) self.assertEqual(arg.ignore, True)
def test_default_type(self, mocker): mock_six = mocker.patch('flask_restplus.reqparse.six') arg = Argument('foo') sentinel = object() arg.type(sentinel) mock_six.text_type.assert_called_with(sentinel)