Files
2026-07-13 13:22:34 +08:00

43 lines
1.6 KiB
Python

import json
from mlflow.types.schema import Schema
from tests.resources.data.dataset import SampleDataset
from tests.resources.data.dataset_source import SampleDatasetSource
def test_conversion_to_json():
source_uri = "test:/my/test/uri"
source = SampleDatasetSource._resolve(source_uri)
dataset = SampleDataset(data_list=[1, 2, 3], source=source, name="testname")
dataset_json = dataset.to_json()
parsed_json = json.loads(dataset_json)
assert parsed_json.keys() <= {"name", "digest", "source", "source_type", "schema", "profile"}
assert parsed_json["name"] == dataset.name
assert parsed_json["digest"] == dataset.digest
assert parsed_json["source"] == dataset.source.to_json()
assert parsed_json["source_type"] == dataset.source._get_source_type()
assert parsed_json["profile"] == json.dumps(dataset.profile)
schema_json = json.dumps(json.loads(parsed_json["schema"])["mlflow_colspec"])
assert Schema.from_json(schema_json) == dataset.schema
def test_digest_property_has_expected_value():
source_uri = "test:/my/test/uri"
source = SampleDatasetSource._resolve(source_uri)
dataset = SampleDataset(data_list=[1, 2, 3], source=source, name="testname")
assert dataset.digest == dataset._compute_digest()
def test_expected_name_is_used():
source_uri = "test:/my/test/uri"
source = SampleDatasetSource._resolve(source_uri)
dataset_without_name = SampleDataset(data_list=[1, 2, 3], source=source)
assert dataset_without_name.name == "dataset"
dataset_with_name = SampleDataset(data_list=[1, 2, 3], source=source, name="testname")
assert dataset_with_name.name == "testname"