def test_with_classmethod_and_op(self): """Testing SpyOpMatchAny with classmethod and op""" self.agency.spy_on(MathClass.class_do_math, owner=MathClass, op=SpyOpMatchAny([ { 'kwargs': { 'a': 5, 'b': 3, }, 'op': SpyOpMatchInOrder([ { 'kwargs': { 'a': 5, 'b': 3, 'x': 1, }, 'op': SpyOpReturn(123), }, { 'kwargs': { 'a': 5, 'b': 3, 'x': 2, }, 'op': SpyOpReturn(456), }, ]), }, ])) self.assertEqual(MathClass.class_do_math(a=5, b=3, x=1), 123) self.assertEqual(MathClass.class_do_math(a=5, b=3, x=2), 456)
def test_with_classmethod(self): """Testing SpyOpRaise with classmethod""" self.agency.spy_on(MathClass.class_do_math, owner=MathClass, op=SpyOpRaise(ValueError('foo'))) with self.assertRaisesRegexp(ValueError, 'foo'): MathClass.class_do_math(5, 3)
def test_with_classmethod(self): """Testing SpyOpReturn with classmethod""" self.agency.spy_on(MathClass.class_do_math, owner=MathClass, op=SpyOpReturn('abc123')) self.assertEqual(MathClass.class_do_math(5, 3), 'abc123')
def test_call_with_original_true_and_classmethod(self): """Testing FunctionSpy calls with call_original=True and classmethod""" self.agency.spy_on(MathClass.class_do_math, call_original=True) result = MathClass.class_do_math() self.assertEqual(result, 10) self.assertEqual(len(MathClass.class_do_math.calls), 1) self.assertTrue(MathClass.class_do_math.last_called_with(a=2, b=5))
def test_with_classmethod(self): """Testing SpyOpReturnInOrder with classmethod""" self.agency.spy_on(MathClass.class_do_math, owner=MathClass, op=SpyOpReturnInOrder([ 'abc123', 'def456', 'ghi789', ])) self.assertEqual(MathClass.class_do_math(5, 3), 'abc123') self.assertEqual(MathClass.class_do_math(5, 3), 'def456') self.assertEqual(MathClass.class_do_math(5, 3), 'ghi789') message = re.escape( "class_do_math was called 4 time(s), but only 3 call(s) were " "expected. Latest call: <SpyCall(args=(), kwargs={'a': 5, " "'b': 3}, returned=None, raised=None)>") with self.assertRaisesRegexp(UnexpectedCallError, message): MathClass.class_do_math(5, 3)
def test_call_with_original_true_and_classmethod_kwargs(self): """Testing FunctionSpy calls with call_original=True and classmethod with all keyword arguments """ self.agency.spy_on(MathClass.class_do_math, call_original=True) result = MathClass.class_do_math(a=10, b=20) self.assertEqual(result, 200) self.assertEqual(len(MathClass.class_do_math.calls), 1) self.assertEqual(len(MathClass.class_do_math.calls[0].args), 0) self.assertEqual(MathClass.class_do_math.calls[0].kwargs, { 'a': 10, 'b': 20 })
def test_with_classmethod(self): """Testing SpyOpMatchInOrder with classmethod""" self.agency.spy_on(MathClass.class_do_math, owner=MathClass, op=SpyOpMatchInOrder([ { 'kwargs': { 'a': 5, 'b': 3, }, 'call_fake': lambda a, b: a - b }, ])) self.assertEqual(MathClass.class_do_math(a=5, b=3), 2)