测试Flask-Cache的缓存命中

use*_*199 0 python caching flask flask-cache

cache.memoize用来记忆Flask-Cache的功能。如何获取在修饰函数中设置的缓存键?如何在测试过程中测试该功能是否已缓存?

from flask import Flask
from flask.ext.cache import Cache

app = Flask(__name__)
cache = Cache(app, config={'CACHE_TYPE': 'simple'})

@cache.memoize(timeout=10)
def get_news(nid, lang=None):
    return nid, lang

@app.route('/news/<str:nid>')
def news(news_id):
    return 'News: ' + get_news(news_id)
Run Code Online (Sandbox Code Playgroud)

dav*_*ism 5

使用时memoize,缓存密钥是在后台生成的,永远不需要手动访问。Flask-Cache正在为您处理缓存并检索该函数的结果。但是,如果您对Flask-Cache的工作方式感兴趣,可以查看source。它是函数名称,参数和uuid的哈希。

您不需要测试缓存命中,因为Flask-Cache已经过测试。您应该测试自己的代码,而不是库代码。但是,如果您对Flask-Cache的工作方式感兴趣,可以查看测试。它记住一个返回当前时间的函数,然后检查睡眠后返回的值是否相同。