def test_fetch(self, mock_set, mock_get, mock_cached, mock_index): cache = Cache('test') mock_cached.return_value = True cache.fetch('cached_key', 'source') self.assertTrue(mock_get.called) self.assertFalse(mock_set.called) mock_get.reset_mock() mock_set.reset_mock() mock_cached.return_value = False def source(): return 'value' cache.fetch('uncached_key', source) self.assertTrue(mock_get.called) mock_set.assert_called_once_with(cache, 'uncached_key', source())