def test_simple(self): m = mock.Mock(return_value=10) func = cached_function(lambda: m()) self.assertEqual(func(), 10) self.assertEqual(m.call_count, 1) self.assertEqual(func(), 10) self.assertEqual(m.call_count, 1)
def test_params(self): m = mock.Mock(return_value=10) func = cached_function(lambda x=1: m() * x) self.assertEqual(func(x=1), 10) self.assertEqual(m.call_count, 1) self.assertEqual(func(x=1), 10) self.assertEqual(func(x=1), 10) self.assertEqual(m.call_count, 1) self.assertEqual(func(2), 20) self.assertEqual(m.call_count, 2) self.assertEqual(func(x=1), 10) self.assertEqual(m.call_count, 2) self.assertEqual(func(10), 100) self.assertEqual(m.call_count, 3)