diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..d890aec --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,6 @@ +summary: Run CI tests +discover: + how: fmf +execute: + how: tmt + diff --git a/tests/main.fmf b/tests/main.fmf new file mode 100644 index 0000000..1cfafe2 --- /dev/null +++ b/tests/main.fmf @@ -0,0 +1 @@ +component: python-ruamel-yaml diff --git a/tests/sf534/main.fmf b/tests/sf534/main.fmf new file mode 100644 index 0000000..5480ac5 --- /dev/null +++ b/tests/sf534/main.fmf @@ -0,0 +1,5 @@ +summary: Regression test for upstream ticket 534 +require: python3-ruamel-yaml +link: + - verifies: https://sourceforge.net/p/ruamel-yaml/tickets/534/ +test: python3 test.py diff --git a/tests/sf534/test.py b/tests/sf534/test.py new file mode 100644 index 0000000..8302605 --- /dev/null +++ b/tests/sf534/test.py @@ -0,0 +1,32 @@ +# 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}"