def test_ignore_request_parameter(): @annotate({"x": int, "y": int}) def handle_request(request, x, y): pass argspec = getfullargspec(handle_request) signature = FunctionSignature.from_argspec(argspec) params = get_parameters(signature, TransmuteAttributes(), arguments_to_ignore=["request"]) for typ in ["query", "body", "header", "path"]: assert "request" not in getattr(params, typ)
def test_get_argument_set(): @describe(paths="/{x}", body_parameters=["y"]) @annotate({"x": int, "y": float, "z": int, "width": int, "height": float}) def make_square(x, y, z, width=None, height=12): pass argspec = getfullargspec(make_square) signature = FunctionSignature.from_argspec(argspec) argument_sets = get_parameters(signature, make_square.transmute) assert ["y"] == list(argument_sets.body.keys()) assert set(["x"]) == set(argument_sets.path.keys()) assert set(["z", "width", "height"]) == set(argument_sets.query.keys())