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

176 lines
4.2 KiB
Python

# coding: utf-8
import pytest # NOQA
from .roundtrip import dedent, round_trip, round_trip_load
def load(s, version=None):
import srsly.ruamel_yaml # NOQA
return srsly.ruamel_yaml.round_trip_load(dedent(s), version)
class TestVersions:
def test_explicit_1_2(self):
r = load(
"""\
%YAML 1.2
---
- 12:34:56
- 012
- 012345678
- 0o12
- on
- off
- yes
- no
- true
"""
)
assert r[0] == "12:34:56"
assert r[1] == 12
assert r[2] == 12345678
assert r[3] == 10
assert r[4] == "on"
assert r[5] == "off"
assert r[6] == "yes"
assert r[7] == "no"
assert r[8] is True
def test_explicit_1_1(self):
r = load(
"""\
%YAML 1.1
---
- 12:34:56
- 012
- 012345678
- 0o12
- on
- off
- yes
- no
- true
"""
)
assert r[0] == 45296
assert r[1] == 10
assert r[2] == "012345678"
assert r[3] == "0o12"
assert r[4] is True
assert r[5] is False
assert r[6] is True
assert r[7] is False
assert r[8] is True
def test_implicit_1_2(self):
r = load(
"""\
- 12:34:56
- 12:34:56.78
- 012
- 012345678
- 0o12
- on
- off
- yes
- no
- true
"""
)
assert r[0] == "12:34:56"
assert r[1] == "12:34:56.78"
assert r[2] == 12
assert r[3] == 12345678
assert r[4] == 10
assert r[5] == "on"
assert r[6] == "off"
assert r[7] == "yes"
assert r[8] == "no"
assert r[9] is True
def test_load_version_1_1(self):
inp = """\
- 12:34:56
- 12:34:56.78
- 012
- 012345678
- 0o12
- on
- off
- yes
- no
- true
"""
r = load(inp, version="1.1")
assert r[0] == 45296
assert r[1] == 45296.78
assert r[2] == 10
assert r[3] == "012345678"
assert r[4] == "0o12"
assert r[5] is True
assert r[6] is False
assert r[7] is True
assert r[8] is False
assert r[9] is True
class TestIssue62:
# bitbucket issue 62, issue_62
def test_00(self):
import srsly.ruamel_yaml # NOQA
s = dedent(
"""\
{}# Outside flow collection:
- ::vector
- ": - ()"
- Up, up, and away!
- -123
- http://example.com/foo#bar
# Inside flow collection:
- [::vector, ": - ()", "Down, down and away!", -456, http://example.com/foo#bar]
"""
)
with pytest.raises(srsly.ruamel_yaml.parser.ParserError):
round_trip(s.format("%YAML 1.1\n---\n"), preserve_quotes=True)
round_trip(s.format(""), preserve_quotes=True)
def test_00_single_comment(self):
import srsly.ruamel_yaml # NOQA
s = dedent(
"""\
{}# Outside flow collection:
- ::vector
- ": - ()"
- Up, up, and away!
- -123
- http://example.com/foo#bar
- [::vector, ": - ()", "Down, down and away!", -456, http://example.com/foo#bar]
"""
)
with pytest.raises(srsly.ruamel_yaml.parser.ParserError):
round_trip(s.format("%YAML 1.1\n---\n"), preserve_quotes=True)
round_trip(s.format(""), preserve_quotes=True)
# round_trip(s.format('%YAML 1.2\n---\n'), preserve_quotes=True, version=(1, 2))
def test_01(self):
import srsly.ruamel_yaml # NOQA
s = dedent(
"""\
{}[random plain value that contains a ? character]
"""
)
with pytest.raises(srsly.ruamel_yaml.parser.ParserError):
round_trip(s.format("%YAML 1.1\n---\n"), preserve_quotes=True)
round_trip(s.format(""), preserve_quotes=True)
# note the flow seq on the --- line!
round_trip(s.format("%YAML 1.2\n--- "), preserve_quotes=True, version="1.2")
def test_so_45681626(self):
# was not properly parsing
round_trip_load('{"in":{},"out":{}}')