Skip to content

Commit 67c34a0

Browse files
authored
Respect kwargs when args_to_ignore is set in memoize (#558)
* Respect kwargs when args_to_ignore is set in memoize * Rename test method * Change test value of b to a different one
1 parent 6a2191a commit 67c34a0

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/flask_caching/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -650,7 +650,7 @@ def _memoize_kwargs_to_args(self, f: Callable, *args, **kwargs) -> Any:
650650

651651
# If the function uses VAR_KEYWORD type of parameters,
652652
# we need to pass these further
653-
kw_keys_remaining = list(kwargs.keys())
653+
kw_keys_remaining = [key for key in kwargs.keys() if key not in args_to_ignore]
654654
arg_names = get_arg_names(f)
655655
args_len = len(arg_names)
656656

tests/test_memoize.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,3 +834,12 @@ def big_foo(self, a, b):
834834
return a + b + random.randrange(0, 100000)
835835

836836
assert Foo().big_foo(5, 2) == Foo().big_foo(5, 2)
837+
838+
839+
def test_memoize_function_ignore_kwarg(app, cache):
840+
with app.test_request_context():
841+
@cache.memoize(50, args_to_ignore=["b"])
842+
def big_foo(a, b):
843+
return a + b + random.randrange(0, 100000)
844+
845+
assert big_foo(5, 2) == big_foo(5, b=3)

0 commit comments

Comments
 (0)