import pytest import yaml from nwb_linkml.io.yaml import yaml_peek @pytest.fixture() def yaml_file(tmp_path): data = {"key1": "val1", "key2": "val2", "key3": {"key1": "val3", "key4": "val4"}} out_file = tmp_path / "test.yaml" with open(out_file, "w") as yfile: yaml.dump(data, yfile) yield out_file out_file.unlink() @pytest.mark.parametrize( "key,expected,root,first", [ ("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), ], ) 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)