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_list(self):
   n = Node("node")
   n.create_parameter("p1", ["a", "b"])
   n.create_parameter("p2", "${p1}")
   n.flatten()
   n.expand()
   self.assertEqual(n.get_parameter("p1").expanded_value, n.get_parameter("p2").expanded_value)
 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_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_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_save_node_with_string_parameter(self):
   node = Node("node")
   node.create_parameter("p1", "v1")
   node.flatten()
   node.expand()
   node.save()
   retrieved = Node.objects.get(name="node")
   self.assertEqual(node, retrieved)
   self.assertEqual(node.get_parameter("p1").expanded_value, retrieved.get_parameter("p1").expanded_value)
 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)