File tree Expand file tree Collapse file tree 3 files changed +31
-2
lines changed Expand file tree Collapse file tree 3 files changed +31
-2
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ Version 2.0.2
55-------------
66
77- migrate ``flask_caching.backends.RedisCluster `` dependency from redis-py-cluster to redis-py
8+ - bug fix: make the ``make_cache_key `` attributed of decorated view functions writeable. :pr: `431 `, issue `#97 `
89
910Version 2.0.1
1011-------------
Original file line number Diff line number Diff line change @@ -363,7 +363,7 @@ def decorated_function(*args, **kwargs):
363363 if make_cache_key is not None and callable (make_cache_key ):
364364 cache_key = make_cache_key (* args , ** kwargs )
365365 else :
366- cache_key = _make_cache_key ( args , kwargs , use_request = True )
366+ cache_key = decorated_function . make_cache_key ( * args , use_request = True , ** kwargs )
367367
368368 if (
369369 callable (forced_update )
@@ -430,7 +430,8 @@ def default_make_cache_key(*args, **kwargs):
430430 for arg_name , arg in zip (argspec_args , args ):
431431 kwargs [arg_name ] = arg
432432
433- return _make_cache_key (args , kwargs , use_request = False )
433+ use_request = kwargs .pop ('use_request' , False )
434+ return _make_cache_key (args , kwargs , use_request = use_request )
434435
435436 def _make_cache_key_query_string ():
436437 """Create consistent keys for query string arguments.
Original file line number Diff line number Diff line change @@ -211,6 +211,33 @@ def cached_view():
211211 assert the_time == cache_data
212212
213213
214+ def test_set_make_cache_key_property (app , cache ):
215+ @app .route ("/" )
216+ @cache .cached (5 )
217+ def cached_view ():
218+ return str (time .time ())
219+
220+ cached_view .make_cache_key = lambda * args , ** kwargs : request .args ['foo' ]
221+
222+ tc = app .test_client ()
223+
224+ rv = tc .get ("/?foo=a" )
225+ a = rv .data .decode ("utf-8" )
226+
227+ rv = tc .get ("/?foo=b" )
228+ b = rv .data .decode ("utf-8" )
229+ assert a != b
230+
231+ tc = app .test_client ()
232+ rv = tc .get ("/?foo=a" )
233+ a_2 = rv .data .decode ("utf-8" )
234+ assert a == a_2
235+
236+ rv = tc .get ("/?foo=b" )
237+ b_2 = rv .data .decode ("utf-8" )
238+ assert b == b_2
239+
240+
214241def test_make_cache_key_function_property (app , cache ):
215242 @app .route ("/<foo>/<bar>" )
216243 @cache .memoize (5 )
You can’t perform that action at this time.
0 commit comments