@ -42,6 +42,14 @@ class TargetClass:
def add_numbers_with_offset ( cls , x , y ) :
def add_numbers_with_offset ( cls , x , y ) :
return cls . offset + 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 ) :
class CallFunctionTest ( testlib . RouterMixin , testlib . TestCase ) :
@ -58,6 +66,18 @@ class CallFunctionTest(testlib.RouterMixin, testlib.TestCase):
103 ,
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 ) :
def test_crashes ( self ) :
exc = self . assertRaises ( mitogen . core . CallError ,
exc = self . assertRaises ( mitogen . core . CallError ,
lambda : self . local . call ( function_that_fails ) )
lambda : self . local . call ( function_that_fails ) )