Skip to content

Commit 3718c14

Browse files
committed
Add test for nested function
1 parent dde1452 commit 3718c14

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

dogpile/cache/util.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from hashlib import sha1
22

3-
from ..util import compat, langhelpers
3+
from ..util import compat
4+
from ..util import langhelpers
45

56

67
def function_key_generator(namespace, fn, to_str=str, use_qual_name=False):

tests/cache/test_util.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ def static_method():
1313
def instance_method(self):
1414
pass
1515

16+
def nested_method(self):
17+
def nested():
18+
pass
19+
20+
return nested
21+
1622

1723
def test_function_key_generator_qualname():
1824
key_generator = util.function_key_generator(
@@ -35,6 +41,15 @@ def test_function_key_generator_qualname():
3541
)
3642
assert key_generator() == "tests.cache.test_util:A.class_method|namespace|"
3743

44+
nested = A().nested_method()
45+
key_generator = util.function_key_generator(
46+
None, nested, use_qual_name=True
47+
)
48+
assert (
49+
key_generator()
50+
== "tests.cache.test_util:A.nested_method.<locals>.nested|"
51+
)
52+
3853

3954
def test_function_key_generator():
4055
key_generator = util.function_key_generator(None, A.class_method)
@@ -48,3 +63,7 @@ def test_function_key_generator():
4863

4964
key_generator = util.function_key_generator("namespace", A.class_method)
5065
assert key_generator() == "tests.cache.test_util:class_method|namespace|"
66+
67+
nested = A().nested_method()
68+
key_generator = util.function_key_generator(None, nested)
69+
assert key_generator() == "tests.cache.test_util:nested|"

0 commit comments

Comments
 (0)