예제 #1
0
    def test_files_and_body_location(self):
        parser = reqparse.RequestParser()
        parser.add_argument('default', type=int)
        parser.add_argument('in_files', type=FileStorage, location='files')
        parser.add_argument('in_json', type=str, location='json')
        with self.assertRaises(SpecsError) as cm:
            parser_to_params(parser)

        self.assertEqual(cm.exception.msg, "Can't use formData and body at the same time")
    def test_form_and_body_location(self):
        parser = reqparse.RequestParser()
        parser.add_argument("default", type=int)
        parser.add_argument("in_form", type=int, location="form")
        parser.add_argument("in_json", type=str, location="json")
        with self.assertRaises(SpecsError) as cm:
            parser_to_params(parser)

        self.assertEqual(cm.exception.msg, "Can't use formData and body at the same time")
 def test_models(self):
     app = Flask(__name__)
     api = Api(app)
     todo_fields = api.model("Todo", {"task": fields.String(required=True, description="The task details")})
     parser = reqparse.RequestParser()
     parser.add_argument("todo", type=todo_fields)
     self.assertEqual(parser_to_params(parser), {"todo": {"type": "Todo", "in": "body"}})
예제 #4
0
 def test_location(self):
     parser = reqparse.RequestParser()
     parser.add_argument('default', type=int)
     parser.add_argument('in_values', type=int, location='values')
     parser.add_argument('in_query', type=int, location='args')
     parser.add_argument('in_headers', type=int, location='headers')
     parser.add_argument('in_cookie', type=int, location='cookie')
     self.assertEqual(parser_to_params(parser), {
         'default': {
             'type': 'integer',
             'in': 'query',
         },
         'in_values': {
             'type': 'integer',
             'in': 'query',
         },
         'in_query': {
             'type': 'integer',
             'in': 'query',
         },
         'in_headers': {
             'type': 'integer',
             'in': 'header',
         },
     })
 def test_choices(self):
     parser = reqparse.RequestParser()
     parser.add_argument("string", type=str, choices=["a", "b"])
     self.assertEqual(
         parser_to_params(parser),
         {"string": {"type": "string", "in": "query", "enum": ["a", "b"], "collectionFormat": "multi"}},
     )
 def test_lists(self):
     parser = reqparse.RequestParser()
     parser.add_argument("int", type=int, action="append")
     self.assertEqual(
         parser_to_params(parser),
         {"int": {"in": "query", "items": True, "type": "array", "items": {"type": "integer"}}},
     )
예제 #7
0
 def test_location_json(self):
     parser = reqparse.RequestParser()
     parser.add_argument('in_json', type=str, location='json')
     self.assertEqual(parser_to_params(parser), {
         'in_json': {
             'type': 'string',
             'in': 'body',
         },
     })
예제 #8
0
 def test_location_form(self):
     parser = reqparse.RequestParser()
     parser.add_argument('in_form', type=int, location='form')
     self.assertEqual(parser_to_params(parser), {
         'in_form': {
             'type': 'integer',
             'in': 'formData',
         },
     })
예제 #9
0
 def test_location_files(self):
     parser = reqparse.RequestParser()
     parser.add_argument('in_files', type=FileStorage, location='files')
     self.assertEqual(parser_to_params(parser), {
         'in_files': {
             'type': 'file',
             'in': 'formData',
         },
     })
예제 #10
0
 def test_lists(self):
     parser = reqparse.RequestParser()
     parser.add_argument('int', type=int, action='append')
     self.assertEqual(parser_to_params(parser), {
         'int': {
             'type': 'integer',
             'in': 'query',
             'allowMultiple': True,
         }
     })
예제 #11
0
 def test_default(self):
     parser = reqparse.RequestParser()
     parser.add_argument('int', type=int, default=5)
     self.assertEqual(
         parser_to_params(parser),
         {'int': {
             'type': 'integer',
             'in': 'query',
             'default': 5,
         }})
예제 #12
0
 def test_choices(self):
     parser = reqparse.RequestParser()
     parser.add_argument('string', type=str, choices=['a', 'b'])
     self.assertEqual(parser_to_params(parser), {
         'string': {
             'type': 'string',
             'in': 'query',
             'enum': ['a', 'b'],
         }
     })
예제 #13
0
 def test_required(self):
     parser = reqparse.RequestParser()
     parser.add_argument('int', type=int, required=True)
     self.assertEqual(parser_to_params(parser), {
         'int': {
             'type': 'integer',
             'in': 'query',
             'required': True,
         }
     })
예제 #14
0
 def test_required(self):
     parser = reqparse.RequestParser()
     parser.add_argument('int', type=int, required=True)
     self.assertEqual(
         parser_to_params(parser),
         {'int': {
             'type': 'integer',
             'in': 'query',
             'required': True,
         }})
예제 #15
0
 def test_choices(self):
     parser = reqparse.RequestParser()
     parser.add_argument('string', type=str, choices=['a', 'b'])
     self.assertEqual(parser_to_params(parser), {
         'string': {
             'type': 'string',
             'in': 'query',
             'enum': ['a', 'b'],
         }
     })
예제 #16
0
 def test_lists(self):
     parser = reqparse.RequestParser()
     parser.add_argument('int', type=int, action='append')
     self.assertEqual(parser_to_params(parser), {
         'int': {
             'type': 'integer',
             'in': 'query',
             'allowMultiple': True,
         }
     })
예제 #17
0
 def test_unknown_type(self):
     parser = reqparse.RequestParser()
     unknown = lambda v: v
     parser.add_argument('unknown', type=unknown)
     self.assertEqual(parser_to_params(parser), {
         'unknown': {
             'type': 'string',
             'in': 'query',
         }
     })
예제 #18
0
 def test_default(self):
     parser = reqparse.RequestParser()
     parser.add_argument('int', type=int, default=5)
     self.assertEqual(parser_to_params(parser), {
         'int': {
             'type': 'integer',
             'in': 'query',
             'default': 5,
         }
     })
 def test_primitive_types(self):
     parser = reqparse.RequestParser()
     parser.add_argument("int", type=int, help="Some integer")
     parser.add_argument("str", type=str, help="Some string")
     self.assertEqual(
         parser_to_params(parser),
         {
             "int": {"type": "integer", "in": "query", "description": "Some integer"},
             "str": {"type": "string", "in": "query", "description": "Some string"},
         },
     )
예제 #20
0
 def test_lists(self):
     parser = reqparse.RequestParser()
     parser.add_argument('int', type=int, action='append')
     self.assertEqual(parser_to_params(parser), {
         'int': {
             'in': 'query',
             'items': True,
             'type': 'array',
             'collectionFormat': 'multi',
             'items': {'type': 'integer'}
         }
     })
예제 #21
0
 def test_models(self):
     app = Flask(__name__)
     api = Api(app)
     todo_fields = api.model('Todo', {
         'task': fields.String(required=True, description='The task details')
     })
     parser = reqparse.RequestParser()
     parser.add_argument('todo', type=todo_fields)
     self.assertEqual(parser_to_params(parser), {
         'todo': {
             'type': 'Todo',
             'in': 'body',
         },
     })
 def test_location(self):
     parser = reqparse.RequestParser()
     parser.add_argument("default", type=int)
     parser.add_argument("in_values", type=int, location="values")
     parser.add_argument("in_query", type=int, location="args")
     parser.add_argument("in_headers", type=int, location="headers")
     parser.add_argument("in_cookie", type=int, location="cookie")
     self.assertEqual(
         parser_to_params(parser),
         {
             "default": {"type": "integer", "in": "query"},
             "in_values": {"type": "integer", "in": "query"},
             "in_query": {"type": "integer", "in": "query"},
             "in_headers": {"type": "integer", "in": "header"},
         },
     )
예제 #23
0
 def test_primitive_types(self):
     parser = reqparse.RequestParser()
     parser.add_argument('int', type=int, help='Some integer')
     parser.add_argument('str', type=str, help='Some string')
     self.assertEqual(parser_to_params(parser), {
         'int': {
             'type': 'integer',
             'in': 'query',
             'description': 'Some integer',
         },
         'str': {
             'type': 'string',
             'in': 'query',
             'description': 'Some string',
         }
     })
예제 #24
0
    def test_schema_interface(self):
        def custom(value):
            pass

        custom.__schema__ = {
            'type': 'string',
            'format': 'custom-format',
        }

        parser = reqparse.RequestParser()
        parser.add_argument('custom', type=custom)

        self.assertDataEqual(parser_to_params(parser), {
            'custom': {
                'in': 'query',
                'type': 'string',
                'format': 'custom-format',
            }
        })
예제 #25
0
 def test_empty_parser(self):
     parser = reqparse.RequestParser()
     self.assertEqual(parser_to_params(parser), {})
 def test_default(self):
     parser = reqparse.RequestParser()
     parser.add_argument("int", type=int, default=5)
     self.assertEqual(parser_to_params(parser), {"int": {"type": "integer", "in": "query", "default": 5}})
 def test_location_json(self):
     parser = reqparse.RequestParser()
     parser.add_argument("in_json", type=str, location="json")
     self.assertEqual(parser_to_params(parser), {"in_json": {"type": "string", "in": "body"}})
 def test_location_form(self):
     parser = reqparse.RequestParser()
     parser.add_argument("in_form", type=int, location="form")
     self.assertEqual(parser_to_params(parser), {"in_form": {"type": "integer", "in": "formData"}})
 def test_location_files(self):
     parser = reqparse.RequestParser()
     parser.add_argument("in_files", type=FileStorage, location="files")
     self.assertEqual(parser_to_params(parser), {"in_files": {"type": "file", "in": "formData"}})
 def test_required(self):
     parser = reqparse.RequestParser()
     parser.add_argument("int", type=int, required=True)
     self.assertEqual(parser_to_params(parser), {"int": {"type": "integer", "in": "query", "required": True}})
예제 #31
0
 def test_empty_parser(self):
     parser = reqparse.RequestParser()
     self.assertEqual(parser_to_params(parser), {})
 def test_unknown_type(self):
     parser = reqparse.RequestParser()
     unknown = lambda v: v
     parser.add_argument("unknown", type=unknown)
     self.assertEqual(parser_to_params(parser), {"unknown": {"type": "string", "in": "query"}})