Merge "Use cyaml when reading/writing Ansible"

This commit is contained in:
Zuul 2023-09-15 08:03:13 +00:00 committed by Gerrit Code Review
commit 502b178ad9
2 changed files with 14 additions and 6 deletions

View File

@ -64,24 +64,32 @@ class TestYamlDumper(BaseTestCase):
def test_ansible_dumper(self):
data = {'foo': 'bar'}
data = yamlutil.mark_strings_unsafe(data)
expected = "foo: !unsafe 'bar'\n"
expected = "foo: !unsafe bar\n"
yaml_out = yamlutil.ansible_unsafe_dump(data, default_flow_style=False)
# Assert the serialized string looks good
self.assertEqual(yaml_out, expected)
# Check the round trip
data_in = yamlutil.ansible_unsafe_load(yaml_out)
self.assertEqual(data, data_in)
data = {'foo': {'bar': 'baz'}, 'list': ['bar', 1, 3.0, True, None]}
data = yamlutil.mark_strings_unsafe(data)
expected = """\
foo:
bar: !unsafe 'baz'
bar: !unsafe baz
list:
- !unsafe 'bar'
- !unsafe bar
- 1
- 3.0
- true
- null
"""
yaml_out = yamlutil.ansible_unsafe_dump(data, default_flow_style=False)
# Assert the serialized string looks good
self.assertEqual(yaml_out, expected)
data_in = yamlutil.ansible_unsafe_load(yaml_out)
# Check the round trip
self.assertEqual(data, data_in)
def test_ansible_dumper_with_aliases(self):
foo = {'bar': 'baz'}

View File

@ -138,16 +138,16 @@ class AnsibleUnsafeStr:
return yaml.ScalarNode(tag=cls.yaml_tag, value=data.value)
class AnsibleUnsafeDumper(yaml.SafeDumper):
class AnsibleUnsafeDumper(SafeDumper):
pass
class AnsibleUnsafeDumperWithoutAliases(yaml.SafeDumper):
class AnsibleUnsafeDumperWithoutAliases(SafeDumper):
def ignore_aliases(self, data):
return True
class AnsibleUnsafeLoader(yaml.SafeLoader):
class AnsibleUnsafeLoader(SafeLoader):
pass