From 3cc57f89e691d5b5593b1e16c6e8f7190ec67bb3 Mon Sep 17 00:00:00 2001 From: Yann Lanthony Date: Mon, 28 Oct 2024 10:31:56 +0100 Subject: [PATCH] [tests] Attribute callback behavior on clearing upstream dynamic output --- tests/test_nodeAttributeChangedCallback.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/test_nodeAttributeChangedCallback.py b/tests/test_nodeAttributeChangedCallback.py index 170eb621..42d73e12 100644 --- a/tests/test_nodeAttributeChangedCallback.py +++ b/tests/test_nodeAttributeChangedCallback.py @@ -387,3 +387,23 @@ class TestAttributeCallbackBehaviorWithUpstreamDynamicOutputs: assert nodeB.input.value == 20 assert nodeB.affectedInput.value == 0 + + + def test_clearingDynamicOutputValueDoesNotTriggerDownstreamAttributeChangedCallback( + self, graphWithIsolatedCache + ): + graph: Graph = graphWithIsolatedCache + nodeA = graph.addNewNode(NodeWithDynamicOutputValue.__name__) + nodeB = graph.addNewNode(NodeWithAttributeChangedCallback.__name__) + + nodeA.input.value = 10 + executeGraph(graph) + + graph.addEdge(nodeA.output, nodeB.input) + + expectedPreClearValue = nodeA.input.value * 2 * 2 + assert nodeB.affectedInput.value == expectedPreClearValue + + nodeA.clearData() + assert nodeA.output.value == nodeB.input.value is None + assert nodeB.affectedInput.value == expectedPreClearValue