def test_keywords_with_context(self): methods = { "square": lambda foo=None, context=None: {"foo": foo, "context": context} } req = Request( {"jsonrpc": "2.0", "method": "square", "params": {"foo": FOO}, "id": 1}, context=BAR, ) self.assertEqual(FOO, req.call(methods)["result"]["foo"]) self.assertEqual(BAR, req.call(methods)["result"]["context"])
def test_methods_partials(self): multiply = lambda x, y: x * y double = partial(multiply, 2) methods = Methods() methods.add(double, 'double') req = Request({'jsonrpc': '2.0', 'method': 'double', 'params': [3], 'id': 1}) self.assertEqual(6, req.call(methods)['result'])
def test_methods_functions_with_decorator(self): methods = Methods() @methods.add def foo(): # pylint: disable=redefined-outer-name,unused-variable return 'bar' req = Request({'jsonrpc': '2.0', 'method': 'foo', 'id': 1}) self.assertEqual('bar', req.call(methods)['result'])
def test_positionals_with_context(self): methods = {"square": lambda x, context=None: context} req = Request( {"jsonrpc": "2.0", "method": "square", "params": [FOO], "id": 1}, context=BAR, ) self.assertEqual(BAR, req.call(methods)["result"])
def test_methods_functions_with_decorator(self): methods = Methods() @methods.add def foo(): return 'bar' req = Request({'jsonrpc': '2.0', 'method': 'foo', 'id': 1}) self.assertEqual('bar', req.call(methods)['result'])
def test_dict_partials(self): multiply = lambda x, y: x * y req = Request({ 'jsonrpc': '2.0', 'method': 'baz', 'params': [3], 'id': 1 }) self.assertEqual(6, req.call({'baz': partial(multiply, 2)})['result'])
def test_positionals(self): methods = {'square': lambda x: x * x} req = Request({ 'jsonrpc': '2.0', 'method': 'square', 'params': [3], 'id': 1 }) self.assertEqual(9, req.call(methods)['result'])
def test_noargs_with_context(self): methods = {'foo': lambda context=None: context} req = Request({ 'jsonrpc': '2.0', 'method': 'foo', 'id': 1 }, context=FOO) self.assertEqual(FOO, req.call(methods)['result'])
def test_methods_functions_with_decorator(self): methods = Methods() @methods.add def foo(): return "bar" req = Request({"jsonrpc": "2.0", "method": "foo", "id": 1}) self.assertEqual("bar", req.call(methods)["result"])
def test_keywords_with_context(self): methods = { 'square': lambda foo=None, context=None: { 'foo': foo, 'context': context } } req = Request( { 'jsonrpc': '2.0', 'method': 'square', 'params': { 'foo': FOO }, 'id': 1 }, context=BAR) self.assertEqual(FOO, req.call(methods)['result']['foo']) self.assertEqual(BAR, req.call(methods)['result']['context'])
def test_positionals_with_context(self): methods = {'square': lambda x, context=None: context} req = Request( { 'jsonrpc': '2.0', 'method': 'square', 'params': [FOO], 'id': 1 }, context=BAR) self.assertEqual(BAR, req.call(methods)['result'])
def test_list_partials(self): multiply = lambda x, y: x * y double = partial(multiply, 2) double.__name__ = 'double' req = Request({ 'jsonrpc': '2.0', 'method': 'double', 'params': [3], 'id': 1 }) self.assertEqual(6, req.call([double])['result'])
def test_object_method(self): methods = {'foo': Foo().foo} req = Request({ 'jsonrpc': '2.0', 'method': 'foo', 'params': [1, 2], 'id': 1 }) response = req.call(methods) self.assertIsInstance(response, RequestResponse) self.assertEqual('bar', response['result'])
def test_keywords(self): methods = {'get_name': lambda **kwargs: kwargs['name']} req = Request({ 'jsonrpc': '2.0', 'method': 'get_name', 'params': { 'name': 'foo' }, 'id': 1 }) self.assertEqual('foo', req.call(methods)['result'])
def test_keywords(self): def get_name(**kwargs): return kwargs['name'] req = Request({ 'jsonrpc': '2.0', 'method': 'get_name', 'params': { 'name': 'foo' }, 'id': 1 }) self.assertEqual('foo', req.call([get_name])['result'])
def test_object_method(self): methods = {"foo": Foo().foo} req = Request({"jsonrpc": "2.0", "method": "foo", "params": [1, 2], "id": 1}) response = req.call(methods) self.assertIsInstance(response, RequestResponse) self.assertEqual("bar", response["result"])
def test_list_partials(self): multiply = lambda x, y: x * y double = partial(multiply, 2) double.__name__ = 'double' req = Request({'jsonrpc': '2.0', 'method': 'double', 'params': [3], 'id': 1}) self.assertEqual(6, req.call([double])['result'])
def test_dict_functions(self): req = Request({'jsonrpc': '2.0', 'method': 'baz', 'id': 1}) self.assertEqual('bar', req.call({'baz': foo})['result'])
def test_list_functions(self): req = Request({'jsonrpc': '2.0', 'method': 'foo', 'id': 1}) self.assertEqual('bar', req.call([foo])['result'])
def test_list_functions(self): req = Request({"jsonrpc": "2.0", "method": "foo", "id": 1}) self.assertEqual("bar", req.call([foo])["result"])
def test_methods_lambdas(self): methods = Methods() methods.add(lambda: 'bar', 'foo') req = Request({'jsonrpc': '2.0', 'method': 'foo', 'id': 1}) self.assertEqual('bar', req.call(methods)['result'])
def test_positionals(self): methods = Methods() methods.add(lambda x: x * x, 'square') req = Request({'jsonrpc': '2.0', 'method': 'square', 'params': [3], 'id': 1}) self.assertEqual(9, req.call(methods)['result'])
def test_keywords(self): def get_name(**kwargs): return kwargs['name'] req = Request({'jsonrpc': '2.0', 'method': 'get_name', 'params': {'name': 'foo'}, 'id': 1}) self.assertEqual('foo', req.call([get_name])['result'])
def test_config_notification_errors_on(self): # Should return "method not found" error request = Request({'jsonrpc': '2.0', 'method': 'baz'}) config.notification_errors = True req = request.call([foo]) self.assertIsInstance(req, ErrorResponse)
def test_noargs_with_context(self): methods = {"foo": lambda context=None: context} req = Request({"jsonrpc": "2.0", "method": "foo", "id": 1}, context=FOO) self.assertEqual(FOO, req.call(methods)["result"])
def test_dict_lambdas(self): req = Request({'jsonrpc': '2.0', 'method': 'baz', 'id': 1}) self.assertEqual('bar', req.call({'baz': lambda: 'bar'})['result'])
def test_list_lambdas(self): foo = lambda: 'bar' # pylint: disable=redefined-outer-name foo.__name__ = 'foo' req = Request({'jsonrpc': '2.0', 'method': 'foo', 'id': 1}) self.assertEqual('bar', req.call([foo])['result'])
def test_config_notification_errors_on(self): # Should return "method not found" error request = Request({"jsonrpc": "2.0", "method": "baz"}, notification_errors=True) req = request.call([foo]) self.assertIsInstance(req, ErrorResponse)
def test_dict_partials(self): multiply = lambda x, y: x * y req = Request({'jsonrpc': '2.0', 'method': 'baz', 'params': [3], 'id': 1}) self.assertEqual(6, req.call({'baz': partial(multiply, 2)})['result'])
def test_list_lambdas(self): foo = lambda: "bar" foo.__name__ = "foo" req = Request({"jsonrpc": "2.0", "method": "foo", "id": 1}) self.assertEqual("bar", req.call([foo])["result"])
def test_methods_lambdas(self): methods = Methods() methods.add(lambda: "bar", "foo") req = Request({"jsonrpc": "2.0", "method": "foo", "id": 1}) self.assertEqual("bar", req.call(methods)["result"])
def test_list_lambdas(self): foo = lambda: 'bar' foo.__name__ = 'foo' req = Request({'jsonrpc': '2.0', 'method': 'foo', 'id': 1}) self.assertEqual('bar', req.call([foo])['result'])
def test_methods_partials(self): multiply = lambda x, y: x * y methods = {"double": partial(multiply, 2)} req = Request({"jsonrpc": "2.0", "method": "double", "params": [3], "id": 1}) self.assertEqual(6, req.call(methods)["result"])
def test_positionals(self): methods = {"square": lambda x: x * x} req = Request({"jsonrpc": "2.0", "method": "square", "params": [3], "id": 1}) self.assertEqual(9, req.call(methods)["result"])
def test_keywords(self): methods = {"get_name": lambda **kwargs: kwargs["name"]} req = Request( {"jsonrpc": "2.0", "method": "get_name", "params": {"name": "foo"}, "id": 1} ) self.assertEqual("foo", req.call(methods)["result"])