mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-10-18 04:05:42 +00:00

* Update test data for `tests.integration.trino` This is to create tables with complex data types. Using raw SQL because creating tables with pandas didn't get the right types for the structs * Update tests to reproduce the issue Also included the new tables in the other tests to make sure complex data types do not break anything else Reference: [issue 16983](https://github.com/open-metadata/OpenMetadata/issues/16983) * Added `TypeDecorator`s handle `trino.types.NamedRowTuple` This is because pydantic couldn't figure out how to create python objects when receiving `NamedRowTuple`s, which broke the sampling process. This makes sure the data we receive from the trino interface is compatible with Pydantic
30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
import pytest
|
|
|
|
from metadata.generated.schema.entity.data.table import Table
|
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
from metadata.workflow.metadata import MetadataWorkflow
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def run_workflow(run_workflow, ingestion_config, create_test_data):
|
|
run_workflow(MetadataWorkflow, ingestion_config)
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"table_name",
|
|
[
|
|
"{database_service}.minio.my_schema.table",
|
|
"{database_service}.minio.my_schema.titanic",
|
|
"{database_service}.minio.my_schema.iris",
|
|
"{database_service}.minio.my_schema.userdata",
|
|
"{database_service}.minio.my_schema.empty",
|
|
"{database_service}.minio.my_schema.complex_and_simple",
|
|
"{database_service}.minio.my_schema.only_complex",
|
|
],
|
|
ids=lambda x: x.split(".")[-1],
|
|
)
|
|
def test_metadata(run_workflow, db_service, metadata: OpenMetadata, table_name):
|
|
metadata.get_by_name(
|
|
Table, table_name.format(database_service=db_service.fullyQualifiedName.root)
|
|
)
|