tests: add test for passing user defined classes and instances from parent -> child

It's well known that unpickling data received from an untrusted source is not
secure. But since children trust their parents and ancestors, unpickling data
received from a parent or ancestor should be supported. Add a test for this use
case.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
pull/1342/head
Marc Hartmayer 3 months ago
parent 3338a651a6
commit 5490cd74b4

@ -42,6 +42,14 @@ class TargetClass:
def add_numbers_with_offset(cls, x, y):
return cls.offset + x + y
@classmethod
def passing_crazy_type(cls, crazy_cls):
return crazy_cls.__name__
@classmethod
def passing_crazy_type_instance(cls, crazy):
return crazy.__class__.__name__
class CallFunctionTest(testlib.RouterMixin, testlib.TestCase):
@ -58,6 +66,18 @@ class CallFunctionTest(testlib.RouterMixin, testlib.TestCase):
103,
)
def test_succeeds_passing_class(self):
self.assertEqual(
self.local.call(TargetClass.passing_crazy_type, CrazyType),
'CrazyType'
)
def test_succeeds_passing_class_instance(self):
self.assertEqual(
self.local.call(TargetClass.passing_crazy_type_instance, CrazyType()),
'CrazyType'
)
def test_crashes(self):
exc = self.assertRaises(mitogen.core.CallError,
lambda: self.local.call(function_that_fails))

Loading…
Cancel
Save