mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-10 02:36:29 +00:00
Fix gvariant bytes array (#2162)
This commit is contained in:
parent
6f26536d97
commit
35b626a1c5
@ -34,7 +34,7 @@ RE_GVARIANT_STRING: re.Pattern[Any] = re.compile(
|
|||||||
r"(?<=(?: |{|\[|\(|<))'(.*?)'(?=(?:|]|}|,|\)|>))"
|
r"(?<=(?: |{|\[|\(|<))'(.*?)'(?=(?:|]|}|,|\)|>))"
|
||||||
)
|
)
|
||||||
RE_GVARIANT_BINARY: re.Pattern[Any] = re.compile(
|
RE_GVARIANT_BINARY: re.Pattern[Any] = re.compile(
|
||||||
r"\"[^\"\\]*(?:\\.[^\"\\]*)*\"|\[byte (.*?)\]"
|
r"\"[^\"\\]*(?:\\.[^\"\\]*)*\"|\[byte (.*?)\]|\[(0x[0-9A-Za-z]{2}.*?)\]"
|
||||||
)
|
)
|
||||||
RE_GVARIANT_BINARY_STRING: re.Pattern[Any] = re.compile(
|
RE_GVARIANT_BINARY_STRING: re.Pattern[Any] = re.compile(
|
||||||
r"\"[^\"\\]*(?:\\.[^\"\\]*)*\"|<?b\'(.*?)\'>?"
|
r"\"[^\"\\]*(?:\\.[^\"\\]*)*\"|<?b\'(.*?)\'>?"
|
||||||
@ -45,7 +45,7 @@ RE_GVARIANT_TUPLE_C: re.Pattern[Any] = re.compile(
|
|||||||
)
|
)
|
||||||
|
|
||||||
RE_BIN_STRING_OCT: re.Pattern[Any] = re.compile(r"\\\\(\d{3})")
|
RE_BIN_STRING_OCT: re.Pattern[Any] = re.compile(r"\\\\(\d{3})")
|
||||||
RE_BIN_STRING_HEX: re.Pattern[Any] = re.compile(r"\\\\x(\d{2})")
|
RE_BIN_STRING_HEX: re.Pattern[Any] = re.compile(r"\\\\x([0-9A-Za-z]{2})")
|
||||||
|
|
||||||
RE_MONITOR_OUTPUT: re.Pattern[Any] = re.compile(r".+?: (?P<signal>[^ ].+) (?P<data>.*)")
|
RE_MONITOR_OUTPUT: re.Pattern[Any] = re.compile(r".+?: (?P<signal>[^ ].+) (?P<data>.*)")
|
||||||
|
|
||||||
@ -142,7 +142,9 @@ class DBus:
|
|||||||
|
|
||||||
# Handle Bytes
|
# Handle Bytes
|
||||||
json_raw = RE_GVARIANT_BINARY.sub(
|
json_raw = RE_GVARIANT_BINARY.sub(
|
||||||
lambda x: x.group(0) if not x.group(1) else _convert_bytes(x.group(1)),
|
lambda x: x.group(0)
|
||||||
|
if not (x.group(1) or x.group(2))
|
||||||
|
else _convert_bytes(x.group(1) or x.group(2)),
|
||||||
json_raw,
|
json_raw,
|
||||||
)
|
)
|
||||||
json_raw = RE_GVARIANT_BINARY_STRING.sub(
|
json_raw = RE_GVARIANT_BINARY_STRING.sub(
|
||||||
|
@ -454,7 +454,7 @@ def test_networkmanager_binary_string_data():
|
|||||||
|
|
||||||
def test_v6():
|
def test_v6():
|
||||||
"""Test IPv6 Property."""
|
"""Test IPv6 Property."""
|
||||||
raw = "({'addresses': <[([byte 0x20, 0x01, 0x04, 0x70, 0x79, 0x2d, 0x00, 0x01, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10], uint32 64, [byte 0x20, 0x01, 0x04, 0x70, 0x79, 0x2d, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01])]>, 'dns': <[[byte 0x20, 0x01, 0x04, 0x70, 0x79, 0x2d, 0x00, 0x01, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05]]>})"
|
raw = "({'addresses': <[([byte 0x20, 0x01, 0x04, 0x70, 0x79, 0x2d, 0x00, 0x01, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10], uint32 64, [byte 0x20, 0x01, 0x04, 0x70, 0x79, 0x2d, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01])]>, 'dns': <[[byte 0x20, 0x01, 0x04, 0x70, 0x79, 0x2d, 0x00, 0x01, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05], [0x20, 0x01, 0x04, 0x70, 0x79, 0x2d, 0x00, 0x01, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05]]>})"
|
||||||
|
|
||||||
data = DBus.parse_gvariant(raw)
|
data = DBus.parse_gvariant(raw)
|
||||||
|
|
||||||
@ -467,6 +467,9 @@ def test_v6():
|
|||||||
[32, 1, 4, 112, 121, 45, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1],
|
[32, 1, 4, 112, 121, 45, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1],
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"dns": [[32, 1, 4, 112, 121, 45, 0, 1, 0, 18, 0, 0, 0, 0, 0, 5]],
|
"dns": [
|
||||||
|
[32, 1, 4, 112, 121, 45, 0, 1, 0, 18, 0, 0, 0, 0, 0, 5],
|
||||||
|
[32, 1, 4, 112, 121, 45, 0, 1, 0, 18, 0, 0, 0, 0, 0, 5],
|
||||||
|
],
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user