def exec(self):
        """Create udf executor

        Calls the catalog to create udf metadata.
        """
        catalog_manager = CatalogManager()
        if (self.node.if_not_exists):
            # check catalog if it already has this udf entry
            if catalog_manager.get_udf_by_name(self.node.name):
                return
        io_list = []
        io_list.extend(self.node.inputs)
        io_list.extend(self.node.outputs)
        impl_path = self.node.impl_path.absolute().as_posix()
        catalog_manager.create_udf(
            self.node.name, impl_path, self.node.udf_type,
            io_list)
 def test_create_udf(self, udfio_mock, udf_mock):
     catalog = CatalogManager()
     udf_io_list = [MagicMock()]
     actual = catalog.create_udf('udf', 'sample.py', 'classification',
                                 udf_io_list)
     udfio_mock.return_value.add_udf_io.assert_called_with(udf_io_list)
     udf_mock.return_value.create_udf.assert_called_with(
         'udf', 'sample.py', 'classification')
     self.assertEqual(actual, udf_mock.return_value.create_udf.return_value)