# 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 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 assert ( round_trip_dump( round_trip_load( """ # the beginning !!set # or this one? ? a # next one is B (lowercase) ? b # You see? Promised you. ? c # this is the end """ ) ) == 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): assert ( round_trip_dump( round_trip_load( """ 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 """ ), 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): round_trip( """ - a: - b """, 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): assert ( round_trip_dump( round_trip_load( """ !!map name: Anthon location: Germany language: python """ ) ) == dedent( """ name: Anthon location: Germany language: python """ ) ) class TestFlowValues: def test_flow_value_with_colon(self): round_trip( """\ {a: bcd:efg} """ ) # @pytest.mark.xfail(strict=True) def test_flow_value_with_colon_quoted(self): round_trip( """\ {a: 'bcd:efg'} """, preserve_quotes=True, )