def test_get_or_create(self): acr = self._fixture() reg = CacheRegion(async_creation_runner=acr) reg.configure("mock", expiration_time=0.2) def some_value(): return "some value" def some_new_value(): return "some new value" eq_(reg.get_or_create("some key", some_value), "some value") time.sleep(0.5) eq_(reg.get_or_create("some key", some_new_value), "some value") eq_(reg.get_or_create("some key", some_new_value), "some new value") eq_( acr.mock_calls, [ mock.call(reg, "some key", some_new_value, reg._mutex("some key")) ], )