Skip to content
Snippets Groups Projects
Commit 597f7c9d authored by Dominic Kempf's avatar Dominic Kempf
Browse files

Fix interplay of no_deco and context_tags

parent 8a136e8e
No related branches found
No related tags found
No related merge requests found
......@@ -110,7 +110,11 @@ class _RegisteredFunction(object):
return self._get_content(cache_key)
def __call__(self, *args, **kwargs):
with global_context(**self.kwargs):
additional_kw = {k: kwargs[k] for k in kwargs if k in self.context_tags}
for k, v in self.kwargs.items():
additional_kw[k] = v
kwargs = {k: kwargs[k] for k in kwargs if k not in self.context_tags}
with global_context(**additional_kw):
return self.call(*args, **kwargs)
......
......@@ -290,3 +290,40 @@ def test_multiple_kernels_3():
assert k4 == "bar"
delete_cache_items()
def test_multiple_kernels_4():
gen = generator_factory(item_tags=("tag",), context_tags=("kernel",), no_deco=True)
with global_context(kernel="k1"):
gen("foo")
with global_context(kernel="k2"):
gen("bar")
assert len([i for i in retrieve_cache_items("tag")]) == 2
k1, = retrieve_cache_items("k1")
assert k1 == "foo"
k2, = retrieve_cache_items("k2")
assert k2 == "bar"
delete_cache_items()
def test_multiple_kernels_5():
gen = generator_factory(item_tags=("tag",), context_tags=("kernel",), no_deco=True)
gen("foo", kernel="k1")
gen("bar", kernel="k2")
assert len([i for i in retrieve_cache_items("tag")]) == 2
k1, = retrieve_cache_items("k1")
assert k1 == "foo"
k2, = retrieve_cache_items("k2")
assert k2 == "bar"
delete_cache_items()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment