Fail closed on nested mutable env aliases
This commit is contained in:
@@ -1484,6 +1484,35 @@ NODE_CLASS_MAPPINGS = {
|
|||||||
self.assertEqual({}, result["nodes"])
|
self.assertEqual({}, result["nodes"])
|
||||||
self.assertEqual("no_static_nodes", result["pack"]["status"])
|
self.assertEqual("no_static_nodes", result["pack"]["status"])
|
||||||
|
|
||||||
|
def test_tuple_wrapped_mutable_env_subscript_alias_skips_static_node(self):
|
||||||
|
source = '''
|
||||||
|
TYPES = (["ok"],)
|
||||||
|
|
||||||
|
|
||||||
|
class TupleWrappedMutableInputNode:
|
||||||
|
RETURN_TYPES = ("IMAGE",)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def INPUT_TYPES(cls):
|
||||||
|
return {
|
||||||
|
"required": {
|
||||||
|
"mode": TYPES,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NODE_CLASS_MAPPINGS = {
|
||||||
|
"TupleWrappedMutableInputNode": TupleWrappedMutableInputNode,
|
||||||
|
}
|
||||||
|
|
||||||
|
alias = TYPES[0]
|
||||||
|
alias.append(1)
|
||||||
|
'''
|
||||||
|
result = self._extract_source(source, "tuple-wrapped-mutable-input-pack")
|
||||||
|
|
||||||
|
self.assertEqual({}, result["nodes"])
|
||||||
|
self.assertEqual("no_static_nodes", result["pack"]["status"])
|
||||||
|
|
||||||
def test_unhashable_literal_input_key_skips_repo_without_raising(self):
|
def test_unhashable_literal_input_key_skips_repo_without_raising(self):
|
||||||
source = '''
|
source = '''
|
||||||
INPUTS = {
|
INPUTS = {
|
||||||
|
|||||||
@@ -84,7 +84,11 @@ def _invalidate_env_names(env, names):
|
|||||||
|
|
||||||
|
|
||||||
def _is_mutable_static_value(value):
|
def _is_mutable_static_value(value):
|
||||||
return isinstance(value, (dict, list, set))
|
if isinstance(value, (dict, list, set)):
|
||||||
|
return True
|
||||||
|
if isinstance(value, tuple):
|
||||||
|
return any(_is_mutable_static_value(item) for item in value)
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def _namespace_call_function_name(node):
|
def _namespace_call_function_name(node):
|
||||||
|
|||||||
Reference in New Issue
Block a user