Files
dvc/tests/unit/utils/serialize/test_yaml.py
T
Laurens Duijvesteijn 9a7b6d2a1a serialize: Wrap UnicodeDecodeErrors (#6193)
Also expose `encoding` and `path` as attributes, so programmatic
consumers can access it easily.
2021-06-19 11:35:50 +05:45

26 lines
619 B
Python

import pytest
from dvc.utils.serialize import EncodingError, YAMLError, load_yaml, parse_yaml
def test_parse_yaml_duplicate_key_error():
text = """\
mykey:
- foo
mykey:
- bar
"""
with pytest.raises(YAMLError, match='found duplicate key "mykey"'):
parse_yaml(text, "mypath")
def test_parse_yaml_invalid_unicode(tmp_dir):
filename = "invalid_utf8.yaml"
tmp_dir.gen(filename, b"\x80some: stuff")
with pytest.raises(EncodingError) as excinfo:
load_yaml(tmp_dir / filename)
assert filename in excinfo.value.path
assert excinfo.value.encoding == "utf-8"