def testaddnodechange(self): """ Here we test the add_node_change method of the Chnage class. We will do this by trying a simple name, node pair, a name non-node pair (which should raise a ValueError), a list of names and a single node (which should raise a ValueError), a list of names and a list of nodes, a single name and a list of nodes. """ change = Change() node1 = JCD({"Changes": [{"parameters/Run_Number": 5}]}) node2 = JCD({"Changes": [{"parameters/param2": 0.01}]}) # ------ Test invalid name type, valid node type self.assertRaises(ValueError, change.add_node_change, 5, node1) # ------ Test valid name type, invalid node type self.assertRaises(ValueError, change.add_node_change, "change1", 5) # ------ Test valid name and node change.add_node_change("change1", node1) self.assertEqual(len(change.change_list), 1, msg="More than one change added during single add node") self.assertEqual(change.change_list[0], "change1", msg="Failed to add node change") self.assertEqual(change.jcd_objects[0], node1, msg="Failed to add jcd object") # ------- Test single name, list of nodes del change change = Change() change.add_node_change("change1+change2", [node1, node2]) self.assertEqual(change.jcd_objects, [node1, node2], msg="Failed to set list of nodes with single name") self.assertEqual(change.change_list[0], "change1+change2", msg="Failed to set single name with list of nodes") # -------- Test list of names and list of nodes del change change = Change() change.add_node_change(["change1", "change2"], [node1, node2]) self.assertEqual( change.change_list[0], ["change1", "change2"], msg="Failed to set list of names with list of nodes" ) self.assertEqual(change.jcd_objects, [node1, node2], msg="Failed to set list of nodes with list of names")