示例#1
0
def test_loads_xml_multiple():
    assert loads_xml(
        '<properties><entry key="key">value</entry><entry key="foo">bar</entry></properties>'
    ) == {
        "key": "value",
        "foo": "bar"
    }
示例#2
0
def test_loads_xml_extra_whitespace():
    assert loads_xml('''
<properties>
    <entry key="key">value</entry>
</properties>
''') == {
        "key": "value"
    }
示例#3
0
def test_loads_xml_multiple_ordereddict_rev():
    assert loads_xml('''
<properties>
    <entry key="foo">bar</entry>
    <entry key="key">value</entry>
</properties>
''', object_pairs_hook=OrderedDict) == \
        OrderedDict([("foo", "bar"), ("key", "value")])
示例#4
0
def test_loads_xml_ignore_escapes():
    assert loads_xml('''
<properties>
    <entry key="escapes">\\n\\r\\t\\u2603\\f\\\\</entry>
</properties>
''') == {
        "escapes": "\\n\\r\\t\\u2603\\f\\\\"
    }
示例#5
0
def test_loads_xml_astral_plane():
    assert loads_xml('''
<properties>
    <entry key="goat">&#x1F410;</entry>
</properties>
''') == {
        "goat": "\U0001F410"
    }
示例#6
0
def test_loads_xml_reassign():
    assert loads_xml('''
<properties>
    <entry key="key">value1</entry>
    <entry key="key">value2</entry>
</properties>
''') == {
        "key": "value2"
    }
示例#7
0
def test_loads_xml_commented():
    assert loads_xml('''
<properties>
    <comment>This is a comment.</comment>
    <entry key="key">value</entry>
</properties>
''') == {
        "key": "value"
    }
示例#8
0
def test_loads_xml_unknown_tag():
    assert loads_xml('''
<properties>
    <entry key="key">value</entry>
    <something-else key="foo">bar</something-else>
</properties>
''') == {
        "key": "value"
    }
示例#9
0
def test_loads_xml_entities():
    assert loads_xml('''
<properties>
    <entry key="ampersand">&amp;</entry>
    <entry key="less than">&lt;</entry>
    <entry key="greater than">&gt;</entry>
    <entry key="&quot;">"</entry>
    <entry key="snowman">&#x2603;</entry>
</properties>
''') == {
        "ampersand": "&",
        "less than": "<",
        "greater than": ">",
        '"': '"',
        "snowman": "\u2603",
    }
示例#10
0
def test_loads_xml_simple():
    assert loads_xml(
        '<properties><entry key="key">value</entry></properties>') == {
            "key": "value"
        }
示例#11
0
def test_loads_xml_no_key():
    with pytest.raises(ValueError) as excinfo:
        loads_xml('<properties><entry>value</entry></properties>')
    assert '<entry> is missing "key" attribute' in str(excinfo.value)
示例#12
0
def test_loads_xml_bad_root():
    with pytest.raises(ValueError) as excinfo:
        loads_xml(
            '<not-properties><entry key="key">value</entry></not-properties>')
    assert 'not rooted at <properties>' in str(excinfo.value)
示例#13
0
def test_loads_xml(s, d):
    assert loads_xml(s) == d
示例#14
0
def test_loads_xml_nothing():
    assert loads_xml('<properties></properties>') == {}
示例#15
0
def test_loads_xml_nested_entry():
    assert loads_xml(
        '<properties><entry key="key">\n</entry><not-an-entry><entry key="foo">bar</entry></not-an-entry></properties>'
    ) == {
        "key": "\n"
    }
示例#16
0
def test_loads_xml_newline_value():
    assert loads_xml('<properties><entry key="key">\n</entry></properties>') \
        == {"key": "\n"}
示例#17
0
def test_loads_xml_whitespace_value():
    assert loads_xml('<properties><entry key="key">   </entry></properties>') \
        == {"key": "   "}