python-ruamel-yaml/tests/sf534/test.py
Ondrej Mosnáček 6399b356b8
Add TMT test for upstream ticket 534
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2025-01-05 19:04:57 +01:00

32 lines
776 B
Python

# Taken from https://sourceforge.net/p/ruamel-yaml/tickets/534/
from io import StringIO
from ruamel.yaml import YAML
original = '0: foo\n'
py_original = {0: 'foo'}
prefix = '%YAML 1.1\n---\n'
yaml = YAML()
yaml.version = (1, 1)
loaded = yaml.load(original)
assert loaded == py_original
print('Fresh')
stream = StringIO()
yaml.dump(py_original, stream)
fresh = stream.getvalue()
print(fresh)
assert fresh.startswith(prefix)
trimmed = fresh[len(prefix):]
assert trimmed == original, f"{trimmed!r} != {original!r}"
print('Round trip')
stream = StringIO()
yaml.dump(loaded, stream)
round_tripped = stream.getvalue()
print(round_tripped)
assert round_tripped.startswith(prefix)
trimmed = round_tripped[len(prefix):]
assert trimmed == original, f"{trimmed!r} != {original!r}"