class NodeDependentTestCase(TestCase): """Test case for triggered dependent Nodes""" def setUp(self): self.root = Input('root') self.dependent = ConstantNode('dependent', triggered=False) self.root._connect(self.dependent) self.triggered = ConstantNode('triggered', triggered=True) self.root._connect(self.triggered) def test_keep_dirty(self): """Setting a dirty Node as dirty doesn't trigger dependents""" triggered_nodes = self.root.set_value(DIRTY) self.assertEqual(set(), triggered_nodes) def test_set_value_triggers_dependents(self): """Setting a value to a dirty Node triggers dependents""" triggered_nodes = self.root.set_value(0) self.assertEqual({self.triggered}, triggered_nodes) def test_set_value_triggers_dependents(self): """Setting the previous value to an Input doesn't trigger dependents""" self.root.set_value(0) triggered_nodes = self.root.set_value(0) self.assertEqual(set(), triggered_nodes) def test_get_triggered_dependents(self): """Setting a value to a dirty Node triggers dependents""" triggered_nodes = self.root._get_triggered_dependents() self.assertEqual({self.triggered}, triggered_nodes) def test_get_deep_triggered_dependents(self): """Setting a value to a dirty Node triggers dependents tree""" child1 = ConstantNode('child1', triggered=True) child2 = ConstantNode('child2', triggered=True) self.triggered._connect(child1) self.triggered._connect(child2) triggered_nodes = self.root._get_triggered_dependents() self.assertEqual({self.triggered, child1, child2}, triggered_nodes)
def test_set_value(self): """A value set to a dirty Node is stored in the object""" node = Input('name') node.set_value(0) self.assertEqual(0, node._value)
def test_set_value(self): """A value set to a dirty Node is stored in the object""" node = Input('name') node.set_value(0) self.assertEqual(0, node._value)