禁用缓存装饰器以测试dogpile.cache

sas*_*ker 0 python pylons caching beaker dogpile.cache

我最近从烧杯切换到dogpile.cache.它在实时代码中运行良好,但我遇到了测试问题.如何禁用缓存进行测试?

我目前正在使用

#caching.py
from dogpile.cache import make_region

region = make_region().configure(
    'dogpile.cache.redis',
    expiration_time = 3600,
    arguments = {
        'host': '127.0.0.1',
        'port': 6379
    }
)

#db.py
from .caching import region

@region.cache_on_arguments()
def fetch_from_db(item):
    return some_database.lookup(item)
Run Code Online (Sandbox Code Playgroud)

如何更换缓存或禁用它进行单元测试?

Jon*_*Jon 5

在测试期间配置dogpile使用a NullBackend,这是Null对象设计模式的一个例子.

from dogpile.cache import make_region

region = make_region().configure(
    'dogpile.cache.null'
)
Run Code Online (Sandbox Code Playgroud)