for nested datasets
|
# TODO: make sure to_json and to_json_schema also work and make sense |
dataset['a'], dataset['b'] = dataset['b'], dataset['a']
def test_nested_datasets():
nested_data = {'a': {'x': 123}, 'b': {'y': 234}}
nested_dataset = Dataset[Dataset[Model[int]]](nested_data)
assert isinstance(nested_dataset['a'], Dataset)
assert isinstance(nested_dataset['a']['x'], Model)
assert nested_dataset['a']['x'].content == 123
assert nested_dataset.to_data() == nested_data
assert nested_dataset.get_type() == Dataset[Model[int]]
nested_str_dataset = Dataset[Dataset[Model[str]]](nested_dataset)
assert nested_str_dataset['a']['x'].content == '123'
assert nested_str_dataset.get_type() == Dataset[Model[str]]
deep_nested_data = {'first': {'a': {'x': 123}}, 'second': {'b': {'y': 234}}}
deep_nested_dataset = Dataset[Dataset[Dataset[Model[int]]]](deep_nested_data)
assert isinstance(deep_nested_dataset['first'], Dataset)
assert isinstance(deep_nested_dataset['first']['a'], Dataset)
assert isinstance(deep_nested_dataset['first']['a']['x'], Model)
assert deep_nested_dataset['first']['a']['x'].content == 123
assert deep_nested_dataset.to_data() == deep_nested_data
assert deep_nested_dataset.get_type() == Dataset[Dataset[Model[int]]]
deep_nested_str_dataset = Dataset[Dataset[Dataset[Model[str]]]](deep_nested_dataset)
assert deep_nested_str_dataset['first']['a']['x'].content == '123'
assert deep_nested_str_dataset.get_type() == Dataset[Dataset[Model[str]]]
# TODO: make sure to_json and to_json_schema also work and make sense
# for nested datasets
def _assert_no_access_data_exceptions(dataset: Dataset,
model_cls: type,
keys: list[str],
for nested datasets
omnipy/tests/data/test_dataset.py
Line 1350 in 3cfacf6