ai-content-maker/.venv/Lib/site-packages/srsly/tests/ruamel_yaml/test_fail.py

256 lines
6.1 KiB
Python

# coding: utf-8
# there is some work to do
# provide a failing test xyz and a non-failing xyz_no_fail ( to see
# what the current failing output is.
# on fix of srsly.ruamel_yaml, move the marked test to the appropriate test (without mark)
# and remove remove the xyz_no_fail
import pytest
from .roundtrip import round_trip, dedent, round_trip_load, round_trip_dump
class TestCommentFailures:
@pytest.mark.xfail(strict=True)
def test_set_comment_before_tag(self):
# no comments before tags
round_trip(
"""
# the beginning
!!set
# or this one?
? a
# next one is B (lowercase)
? b # You see? Promised you.
? c
# this is the end
"""
)
def test_set_comment_before_tag_no_fail(self):
# no comments before tags
inp = """
# the beginning
!!set
# or this one?
? a
# next one is B (lowercase)
? b # You see? Promised you.
? c
# this is the end
"""
assert round_trip_dump(round_trip_load(inp)) == dedent(
"""
!!set
# or this one?
? a
# next one is B (lowercase)
? b # You see? Promised you.
? c
# this is the end
"""
)
@pytest.mark.xfail(strict=True)
def test_comment_dash_line(self):
round_trip(
"""
- # abc
a: 1
b: 2
"""
)
def test_comment_dash_line_fail(self):
x = """
- # abc
a: 1
b: 2
"""
data = round_trip_load(x)
# this is not nice
assert round_trip_dump(data) == dedent(
"""
# abc
- a: 1
b: 2
"""
)
class TestIndentFailures:
@pytest.mark.xfail(strict=True)
def test_indent_not_retained(self):
round_trip(
"""
verbosity: 1 # 0 is minimal output, -1 none
base_url: http://gopher.net
special_indices: [1, 5, 8]
also_special:
- a
- 19
- 32
asia and europe: &asia_europe
Turkey: Ankara
Russia: Moscow
countries:
Asia:
<<: *asia_europe
Japan: Tokyo # 東京
Europe:
<<: *asia_europe
Spain: Madrid
Italy: Rome
Antarctica:
- too cold
"""
)
def test_indent_not_retained_no_fail(self):
inp = """
verbosity: 1 # 0 is minimal output, -1 none
base_url: http://gopher.net
special_indices: [1, 5, 8]
also_special:
- a
- 19
- 32
asia and europe: &asia_europe
Turkey: Ankara
Russia: Moscow
countries:
Asia:
<<: *asia_europe
Japan: Tokyo # 東京
Europe:
<<: *asia_europe
Spain: Madrid
Italy: Rome
Antarctica:
- too cold
"""
assert round_trip_dump(round_trip_load(inp), indent=4) == dedent(
"""
verbosity: 1 # 0 is minimal output, -1 none
base_url: http://gopher.net
special_indices: [1, 5, 8]
also_special:
- a
- 19
- 32
asia and europe: &asia_europe
Turkey: Ankara
Russia: Moscow
countries:
Asia:
<<: *asia_europe
Japan: Tokyo # 東京
Europe:
<<: *asia_europe
Spain: Madrid
Italy: Rome
Antarctica:
- too cold
"""
)
def Xtest_indent_top_level_no_fail(self):
inp = """
- a:
- b
"""
round_trip(inp, indent=4)
class TestTagFailures:
@pytest.mark.xfail(strict=True)
def test_standard_short_tag(self):
round_trip(
"""\
!!map
name: Anthon
location: Germany
language: python
"""
)
def test_standard_short_tag_no_fail(self):
inp = """
!!map
name: Anthon
location: Germany
language: python
"""
exp = """
name: Anthon
location: Germany
language: python
"""
assert round_trip_dump(round_trip_load(inp)) == dedent(exp)
class TestFlowValues:
def test_flow_value_with_colon(self):
inp = """\
{a: bcd:efg}
"""
round_trip(inp)
def test_flow_value_with_colon_quoted(self):
inp = """\
{a: 'bcd:efg'}
"""
round_trip(inp, preserve_quotes=True)
class TestMappingKey:
def test_simple_mapping_key(self):
inp = """\
{a: 1, b: 2}: hello world
"""
round_trip(inp, preserve_quotes=True, dump_data=False)
def test_set_simple_mapping_key(self):
from srsly.ruamel_yaml.comments import CommentedKeyMap
d = {CommentedKeyMap([("a", 1), ("b", 2)]): "hello world"}
exp = dedent(
"""\
{a: 1, b: 2}: hello world
"""
)
assert round_trip_dump(d) == exp
def test_change_key_simple_mapping_key(self):
from srsly.ruamel_yaml.comments import CommentedKeyMap
inp = """\
{a: 1, b: 2}: hello world
"""
d = round_trip_load(inp, preserve_quotes=True)
d[CommentedKeyMap([("b", 1), ("a", 2)])] = d.pop(
CommentedKeyMap([("a", 1), ("b", 2)])
)
exp = dedent(
"""\
{b: 1, a: 2}: hello world
"""
)
assert round_trip_dump(d) == exp
def test_change_value_simple_mapping_key(self):
from srsly.ruamel_yaml.comments import CommentedKeyMap
inp = """\
{a: 1, b: 2}: hello world
"""
d = round_trip_load(inp, preserve_quotes=True)
d = {CommentedKeyMap([("a", 1), ("b", 2)]): "goodbye"}
exp = dedent(
"""\
{a: 1, b: 2}: goodbye
"""
)
assert round_trip_dump(d) == exp