def test_missing_ground_node_target(self):
     expression = Expression()
     expression.add_node(1, Node(NodeType.START))
     expression.add_node(2, Node(NodeType.FINISH))
     expression.add_node(3, Node(NodeType.GROUND))
     expression.add_edge(1, 2)
     with self.assertRaises(RuntimeError):
         validator.check_invalid_connections(expression)
 def test_missing_finish_node_source(self):
     expression = Expression()
     expression.add_node(1, Node(NodeType.START))
     expression.add_node(2, Node(NodeType.FINISH))
     expression.add_node(3, Node(NodeType.ERROR, 'error'))
     expression.add_edge(1, 3)
     with self.assertRaises(RuntimeError):
         validator.check_invalid_connections(expression)
 def test_missing_token_node_source(self):
     expression = Expression()
     expression.add_node(1, Node(NodeType.START))
     expression.add_node(2, Node(NodeType.FINISH))
     expression.add_node(3, Node(NodeType.TOKEN, 'token'))
     expression.add_edge(1, 2)
     expression.add_edge(3, 2)
     with self.assertRaises(RuntimeError):
         validator.check_invalid_connections(expression)
 def test_missing_operation_node_target(self):
     expression = Expression()
     expression.add_node(1, Node(NodeType.START))
     expression.add_node(2, Node(NodeType.FINISH))
     expression.add_node(3, Node(NodeType.OPERATION, 'operation'))
     expression.add_edge(1, 2)
     expression.add_edge(1, 3)
     with self.assertRaises(RuntimeError):
         validator.check_invalid_connections(expression)
 def test_invalid_start_node_source(self):
     expression = Expression()
     expression.add_node(1, Node(NodeType.START))
     expression.add_node(2, Node(NodeType.FINISH))
     expression.add_node(3, Node(NodeType.GROUND))
     expression.add_edge(1, 2)
     expression.add_edge(3, 1)
     with self.assertRaises(RuntimeError):
         validator.check_invalid_connections(expression)