2024-07-20 03:50:18 +00:00
|
|
|
import pytest
|
|
|
|
import yaml
|
|
|
|
|
|
|
|
from nwb_linkml.io.yaml import yaml_peek
|
|
|
|
|
2024-07-25 05:49:35 +00:00
|
|
|
|
2024-07-20 03:50:18 +00:00
|
|
|
@pytest.fixture()
|
|
|
|
def yaml_file(tmp_path):
|
2024-07-25 05:49:35 +00:00
|
|
|
data = {"key1": "val1", "key2": "val2", "key3": {"key1": "val3", "key4": "val4"}}
|
|
|
|
out_file = tmp_path / "test.yaml"
|
|
|
|
with open(out_file, "w") as yfile:
|
2024-07-20 03:50:18 +00:00
|
|
|
yaml.dump(data, yfile)
|
|
|
|
|
|
|
|
yield out_file
|
|
|
|
|
|
|
|
out_file.unlink()
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
2024-07-25 05:49:35 +00:00
|
|
|
"key,expected,root,first",
|
2024-07-20 03:50:18 +00:00
|
|
|
[
|
2024-07-25 05:49:35 +00:00
|
|
|
("key1", "val1", True, True),
|
|
|
|
("key1", "val1", False, True),
|
|
|
|
("key1", ["val1"], True, False),
|
|
|
|
("key1", ["val1", "val3"], False, False),
|
|
|
|
("key2", "val2", True, True),
|
|
|
|
("key3", False, True, True),
|
|
|
|
("key4", False, True, True),
|
|
|
|
("key4", "val4", False, True),
|
|
|
|
],
|
2024-07-20 03:50:18 +00:00
|
|
|
)
|
|
|
|
def test_peek_yaml(key, expected, root, first, yaml_file):
|
|
|
|
if not expected:
|
|
|
|
with pytest.raises(KeyError):
|
|
|
|
_ = yaml_peek(key, yaml_file, root=root, first=first)
|
|
|
|
else:
|
|
|
|
assert yaml_peek(key, yaml_file, root=root, first=first)
|