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_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_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_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_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_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_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_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_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_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_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_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_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_expression(self):
   n = Node("node")
   n.create_parameter("p1", "$((1+1))")
   n.flatten()
   n.expand()
   self.assertEqual(n.get_parameter("p1").expanded_value, 2)