Esempio n. 1
0
 def _dispatch_message(self, msg):
     self._check_request(msg)
     method = self._name_to_method_info[msg["method"]].method
     params = msg.get("params", [])
     parameter_checker.validate_params_match(method, params)
     if isinstance(params, list):
         result = method(*params)
     elif isinstance(params, dict):
         result = method(**params)
     else:
         raise InvalidRequestError("Given params '{}' are neither a list nor a dict."
                                   .format(msg["params"]))
     return result
 def _dispatch_message(self, msg):
     self._check_request(msg)
     method = self._name_to_method_info[msg["method"]].method
     params = msg.get("params", [])
     parameter_checker.validate_params_match(method, params)
     if isinstance(params, list):
         result = method(*params)
     elif isinstance(params, dict):
         result = method(**params)
     else:
         raise InvalidRequestError(
             "Given params '{}' are neither a list nor a dict.".format(
                 msg["params"]))
     return result
Esempio n. 3
0
def test_kwargs():
    def foo(a, b, c="baz", **kwargs):
        pass

    with pytest.raises(InvalidParamsError):
        parameter_checker.validate_params_match(foo, {"a": "foo"})
    parameter_checker.validate_params_match(foo, {"a": "foo", "b": "bar"})

    parameter_checker.validate_params_match(foo, {"a": "foo", "b": "bar", "d": 42})

    with pytest.raises(InvalidParamsError):
        parameter_checker.validate_params_match(foo, {"a": "foo", "c": "bar"})
Esempio n. 4
0
def test_varargs():
    def foo(a, b="foo", *varargs):
        pass

    with pytest.raises(InvalidParamsError):
        parameter_checker.validate_params_match(foo, [])
    parameter_checker.validate_params_match(foo, ["foo", "bar"])
    parameter_checker.validate_params_match(foo, ["foo", "bar", 42])
Esempio n. 5
0
def test_list():
    def foo(a, b, c="baz"):
        pass

    with pytest.raises(InvalidParamsError):
        parameter_checker.validate_params_match(foo, ["foo"])
    parameter_checker.validate_params_match(foo, ["foo", "bar"])

    with pytest.raises(InvalidParamsError):
        parameter_checker.validate_params_match(foo, ["foo", "bar", "bop", 42])
Esempio n. 6
0
def test_no_defaults():
    def foo(a):
        pass
    with pytest.raises(InvalidParamsError):
        parameter_checker.validate_params_match(foo, [])
    parameter_checker.validate_params_match(foo, ["bar"])
    with pytest.raises(InvalidParamsError):
        parameter_checker.validate_params_match(foo, ["bar", "baz"])

    with pytest.raises(InvalidParamsError):
        parameter_checker.validate_params_match(foo, {})
    parameter_checker.validate_params_match(foo, {"a": "bar"})
    with pytest.raises(InvalidParamsError):
        parameter_checker.validate_params_match(foo, {"a": "bar", "b": "baz"})