Decode appearance template style rules

This commit is contained in:
2026-08-14 13:34:10 +03:00
parent 9d8dccc993
commit 1a3624f3e0
2 changed files with 18 additions and 2 deletions
+3 -2
View File
@@ -259,13 +259,14 @@ def test_scd_payload_decoder_reads_xml_after_platform_prefix() -> None:
def test_appearance_payload_decoder_reads_xml_rules() -> None:
xml = """<?xml version="1.0" encoding="UTF-8"?>
<AppearanceTemplate><item><parameter>Заголовок</parameter><value>style:Title</value></item><style><name>Title</name></style></AppearanceTemplate>"""
<AppearanceTemplate><item><parameter>Заголовок</parameter><value>style:Title</value></item><appearance><item><parameter>ЦветФона</parameter><value type="Color" ref="style:Blue">style:Blue</value></item></appearance><style><name>Title</name></style></AppearanceTemplate>"""
result = inspect_appearance_payload(compress_payload(b"\x00\x01" + xml.encode("utf-8"), "raw_deflate"))
assert result["status"] == "ok"
assert result["items"] == [{"ordinal": 1, "parameter": "Заголовок", "value": "style:Title"}]
assert result["outline"]["tag_counts"] == {"AppearanceTemplate": 1, "item": 1, "name": 1, "parameter": 1, "style": 1, "value": 1}
assert result["appearances"] == [{"ordinal": 1, "rules": [{"parameter": "ЦветФона", "value": "style:Blue", "value_type": "Color", "value_attributes": {"type": "Color", "ref": "style:Blue"}}]}]
assert result["outline"]["tag_counts"] == {"AppearanceTemplate": 1, "appearance": 1, "item": 2, "name": 1, "parameter": 2, "style": 1, "value": 2}
assert result["diagnostics"]["write"] == "unsupported_until_reverse_codec_fixture"