def bind_dataset(video_info: TableInfo) -> DataFrameMetadata: """ Uses catalog to bind the dataset information for given video string. Arguments: video_info (TableInfo): video information obtained in SQL query Returns: DataFrameMetadata - corresponding metadata for the input table info """ catalog = CatalogManager() return catalog.get_dataset_metadata(video_info.database_name, video_info.table_name)
def test_table_binding_without_columns_returns_no_column_ids( self, dcs_mock, ds_mock, initdb_mock): catalog = CatalogManager() dataset_name = "name" database_name = "database" actual = catalog.get_dataset_metadata(database_name, dataset_name) ds_mock.return_value.dataset_object_by_name.assert_called_with( database_name, dataset_name) self.assertEqual( actual, ds_mock.return_value.dataset_object_by_name.return_value)
def test_get_dataset_metadata_when_table_doesnot_exists( self, dcs_mock, ds_mock, initdb_mock): catalog = CatalogManager() dataset_name = "name" database_name = "database" metadata_obj = None ds_mock.return_value.dataset_object_by_name.return_value = metadata_obj actual = catalog.get_dataset_metadata(database_name, dataset_name) ds_mock.return_value.dataset_object_by_name.assert_called_with( database_name, dataset_name) dcs_mock.return_value.columns_by_id_and_dataset_id.assert_not_called() self.assertEqual(actual, metadata_obj)
def test_get_dataset_metadata_when_table_exists(self, dcs_mock, ds_mock, initdb_mock): catalog = CatalogManager() dataset_name = "name" database_name = "database" schema = [1, 2, 3] id = 1 metadata_obj = MagicMock(id=id, schema=None) ds_mock.return_value.dataset_object_by_name.return_value = metadata_obj dcs_mock.return_value. \ columns_by_id_and_dataset_id.return_value = schema actual = catalog.get_dataset_metadata(database_name, dataset_name) ds_mock.return_value.dataset_object_by_name.assert_called_with( database_name, dataset_name) dcs_mock.return_value.columns_by_id_and_dataset_id.assert_called_with( id, None) self.assertEqual(actual.id, id) self.assertEqual(actual.schema, schema)