def test_macro_expansion_to_int(self): n = Node("node") n.create_parameter("p1", 1) n.create_parameter("p2", "${p1}") n.flatten() n.expand() self.assertEqual(n.get_parameter("p2").expanded_value, 1)
def test_macro_generating_expression(self): n = Node("node") n.create_parameter("p1", "${p2}") n.create_parameter("p2", "$((1+1))") n.flatten() n.expand() self.assertEqual(n.get_parameter("p1").expanded_value, n.get_parameter("p2").expanded_value)
def test_macro_used_in_expression(self): n = Node("node") n.create_parameter("p1", "2") n.create_parameter("p2", "$((1+${p1}))") n.flatten() n.expand() self.assertEqual(n.get_parameter("p2").expanded_value, 3)
def test_macro_in_list(self): n = Node("node") n.create_parameter("p1", "v1") n.create_parameter("p2", ["${p1}"]) n.flatten() n.expand() self.assertEqual(n.get_parameter("p2").expanded_value[0], n.get_parameter("p1").expanded_value)
def test_simple_expansion(self): n = Node("node") n.create_parameter("p1", "v1") n.create_parameter("p2", "${p1}") n.flatten() n.expand() self.assertEqual(n.get_parameter("p2").expanded_value, n.get_parameter("p1").expanded_value)
def test_macro_cycle3(self): n = Node("node") n.create_parameter("p1", "${p2}") n.create_parameter("p2", "${p3}") n.create_parameter("p3", "${p1}") n.flatten() self.assertRaises(MacroExpansionError, n.expand)
def test_macro_in_dict(self): n = Node("node") n.create_parameter("p1", "v1") n.create_parameter("p2", {"a": "${p1}"}) n.flatten() n.expand() self.assertEqual(n.get_parameter("p2").expanded_value["a"], n.get_parameter("p1").expanded_value)
def test_macro_expanding_to_macro(self): n = Node("node") n.create_parameter("p1", "${p2}") n.create_parameter("p2", "${p3}") n.create_parameter("p3", "v3") n.flatten() n.expand() self.assertEqual(n.get_parameter("p1").expanded_value, n.get_parameter("p3").expanded_value)
def test_save_node_with_dict_parameter(self): node = Node("node") d = {"a": 1, "b": 2, "c": 3} node.create_parameter("dict", d) node.flatten() node.expand() node.save() retrieved = Node.objects.get(name="node") self.assertEqual(retrieved.get_parameter("dict").expanded_value, d)
def test_save_node_with_list_parameter2(self): node = Node("node") l = [1, "b", 3] node.create_parameter("list", l) node.flatten() node.expand() node.save() retrieved = Node.objects.get(name="node") self.assertEqual(retrieved.get_parameter("list").expanded_value, l)
def test_concatenated_macros(self): n = Node("node") n.create_parameter("p1", "v1") n.create_parameter("p2", "v2") n.create_parameter("p3", "${p1}${p2}") n.flatten() n.expand() self.assertEqual(n.get_parameter("p3").expanded_value, n.get_parameter("p1").expanded_value + n.get_parameter("p2").expanded_value)
def test_save_node_with_string_macro(self): node = Node("node") node.create_parameter("p1", "v1") node.create_parameter("p2", "${p1}") node.flatten() node.expand() node.save() retrieved = Node.objects.get(name="node") self.assertEqual(retrieved.get_parameter("p1").expanded_value, retrieved.get_parameter("p2").expanded_value)
def test_save_node_with_macro_in_list(self): node = Node("node") l = [1, "b", "${p1}"] node.create_parameter("list", l) node.create_parameter("p1", 3) node.flatten() node.expand() node.save() retrieved = Node.objects.get(name="node") self.assertEqual(retrieved.get_parameter("list").expanded_value[2], "3")
def test_macro_expansion_nested(self): n = Node("node") n.create_parameter("p1", "${ab${p2}d}") n.create_parameter("p2", "c") n.create_parameter("abcd", "v1") n.flatten() n.expand() self.assertEqual(n.get_parameter("p1").expanded_value, n.get_parameter("abcd").expanded_value)
def test_create_parameter_base(self): n = Node("node") p = n.create_parameter("parameter") self.assertEqual(p.name, "parameter") self.assertTrue(p is n.parameters["parameter"])
def test_undefined_macro2(self): n = Node("node") n.create_parameter("p1", "${p2}${p2}") n.flatten() n.expand() self.assertEqual(n.get_parameter("p1").expanded_value, n.get_parameter("p1").value)
def test_delete_parameter_base(self): n = Node("node") p = n.create_parameter("parameter") n.delete_parameter("parameter") self.assertFalse("parameter" in n.parameters)
def test_expression(self): n = Node("node") n.create_parameter("p1", "$((1+1))") n.flatten() n.expand() self.assertEqual(n.get_parameter("p1").expanded_value, 2)
def test_create_parameter_twice(self): n = Node("node") p = n.create_parameter("parameter") self.assertRaises(DuplicateError, n.create_parameter, "parameter")