예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
 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)
예제 #6
0
 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)
예제 #7
0
 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)
예제 #8
0
 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)
예제 #9
0
 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)
예제 #10
0
 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)
예제 #11
0
 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)
예제 #12
0
 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)
예제 #13
0
 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")
예제 #14
0
 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)
예제 #15
0
 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"])
예제 #16
0
 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)
예제 #17
0
 def test_delete_parameter_base(self):
   n = Node("node")
   p = n.create_parameter("parameter")
   n.delete_parameter("parameter")
   self.assertFalse("parameter" in n.parameters)
예제 #18
0
 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)
예제 #19
0
 def test_create_parameter_twice(self):
   n = Node("node")
   p = n.create_parameter("parameter")
   self.assertRaises(DuplicateError, n.create_parameter, "parameter")