我有一个使用Redis进行缓存的Django应用程序。它依赖于缓存锁定(cache.lock()
)来可靠地访问和修改异步任务中的缓存值。
我的目标是在测试环境中禁用锁定(使cache.lock()
无效),因为异步任务在测试时变得同步,这导致测试陷入死锁。但是,即使使用Django' DummyCache
,锁定行为似乎仍然存在。
我能否在Django的缓存设置中禁用锁定行为?无法在文档中找到任何相关内容。
编辑 - 实际问题
抱歉,我实际上是以错误的方式替换DummyCache
的Redis缓存,因此它没有任何效果。不过,我现在的问题是,我需要为lock
假冒DummyCache
方法,因为它会在我的所有测试中提升AttributeError: 'DummyCache' object has no attribute 'lock'
。
我知道我可以通过模拟这个方法来实现这个目标,但我必须在项目的每个测试类中都这样做。有没有更简洁的方法呢?