def test_recipe_input_conn_successful(self): """Tests calling RecipeDefinition.add_recipe_input_connection() successfully""" input_interface = Interface() input_interface.parameters = {'recipe_input_1': MagicMock()} definition = RecipeDefinition(input_interface) definition.add_job_node('node_1', 'job_type_1', '1.0', 1) definition.add_recipe_input_connection('node_1', 'input_1', 'recipe_input_1')
def test_recipe_input_conn_missing_input_node(self): """Tests calling RecipeDefinition.add_recipe_input_connection() with an unknown input node""" input_interface = Interface() input_interface.parameters = {'recipe_input_1': MagicMock()} definition = RecipeDefinition(input_interface) definition.add_job_node('node_1', 'job_type_1', '1.0', 1) with self.assertRaises(InvalidDefinition) as context: definition.add_recipe_input_connection('missing_node', 'input_1', 'recipe_input_1') self.assertEqual(context.exception.error.name, 'UNKNOWN_NODE')
def test_recipe_input_conn_duplicate_input(self): """Tests calling RecipeDefinition.add_recipe_input_connection() to connect to a duplicate input""" input_interface = Interface() input_interface.parameters = {'recipe_input_1': MagicMock()} definition = RecipeDefinition(input_interface) definition.add_job_node('node_1', 'job_type_1', '1.0', 1) definition.add_job_node('node_2', 'job_type_2', '1.0', 1) definition.add_recipe_input_connection('node_1', 'input_1', 'recipe_input_1') with self.assertRaises(InvalidDefinition) as context: definition.add_recipe_input_connection('node_1', 'input_1', 'recipe_input_1') self.assertEqual(context.exception.error.name, 'NODE_INTERFACE')
def test_validate_missing_dependency(self): """Tests calling RecipeDefinition.validate() with a connection that has a missing dependency""" input_interface = Interface() input_interface.parameters = {'recipe_input_1': MagicMock()} definition = RecipeDefinition(input_interface) definition.add_job_node('A', 'job_type_1', '1.0', 1) definition.add_recipe_node('B', 'recipe_type_1', 1) definition.add_job_node('C', 'job_type_2', '1.0', 1) definition.add_dependency('B', 'C') definition.add_dependency_input_connection('B', 'input_1', 'A', 'output_1') mocked_interfaces = { 'A': MagicMock(), 'B': MagicMock(), 'C': MagicMock() } with self.assertRaises(InvalidDefinition) as context: definition.validate(mocked_interfaces, mocked_interfaces) self.assertEqual(context.exception.error.name, 'NODE_INTERFACE')