summaryrefslogtreecommitdiffstats
path: root/_test/test_fail.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 20:19:53 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 20:19:53 +0000
commite7ee850d46d54789979bf0c5244bae1825fb7149 (patch)
tree6e94ed55df9ec749682a3c792ce752d07892b968 /_test/test_fail.py
parentInitial commit. (diff)
downloadpython-ruyaml-e7ee850d46d54789979bf0c5244bae1825fb7149.tar.xz
python-ruyaml-e7ee850d46d54789979bf0c5244bae1825fb7149.zip
Adding upstream version 0.91.0.upstream/0.91.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '_test/test_fail.py')
-rw-r--r--_test/test_fail.py255
1 files changed, 255 insertions, 0 deletions
diff --git a/_test/test_fail.py b/_test/test_fail.py
new file mode 100644
index 0000000..4970c5e
--- /dev/null
+++ b/_test/test_fail.py
@@ -0,0 +1,255 @@
+# 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 ruyaml, move the marked test to the appropriate test (without mark)
+# and remove remove the xyz_no_fail
+
+import pytest
+
+from .roundtrip import dedent, round_trip, round_trip_dump, round_trip_load
+
+
+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 ruyaml.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 ruyaml.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 ruyaml.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