2016-06-09 59 views
0

我使用cache.memoize來記憶Flask-Cache的功能。如何獲取裝飾函數中設置的緩存鍵?我如何測試函數在測試期間被緩存?測試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) 
+0

我知道緩存鍵是不透明的,但應該有一個格式來獲取相同的 – user1841199

回答

3

當使用memoize,是幕後產生的緩存鍵和不應該需要手動訪問。 Flask-Cache正在處理緩存併爲您檢索函數的結果。但是如果你對Flask-Cache如何操作感興趣,你可以使用look at the source。它是函數名稱,參數和uuid的散列。

您應該不需要測試緩存命中,因爲Flask-Cache已經過測試。你應該測試你自己的代碼,而不是庫代碼。但是如果你對Flask-Cache如何操作感興趣,你可以使用look at the tests。它記憶一個返回當前時間的函數,然後檢查睡眠後返回是否相同。