fix: introspection bogus child paths (#280)

This commit is contained in:
mriemensberger 2024-05-08 21:56:13 +02:00 committed by GitHub
parent f0fc6668b9
commit 7da5d44caa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 1 deletions

View File

@ -664,6 +664,9 @@ class BaseMessageBus:
continue
child_path = export_path.split(path, maxsplit=1)[1]
if path != "/" and child_path and child_path[0] != "/":
continue
child_path = child_path.lstrip("/")
child_name = child_path.split("/", maxsplit=1)[0]

View File

@ -91,6 +91,7 @@ async def test_introspect_matching_sub_paths():
interface = ExampleInterface("test.interface1")
bus1.export("/a/test/path1", interface)
bus1.export("/a/test/path10", interface)
bus1.export("/a/subpath/a/test/path2", interface)
async def introspect_subpath(path, expected_subnodes):
@ -108,8 +109,9 @@ async def test_introspect_matching_sub_paths():
await introspect_subpath("/", {"a"})
await introspect_subpath("/a", {"test", "subpath"})
await introspect_subpath("/a/test", {"path1"})
await introspect_subpath("/a/test", {"path1", "path10"})
await introspect_subpath("/a/test/path1", set())
await introspect_subpath("/a/test/path10", set())
await introspect_subpath("/a/subpath/a/test", {"path2"})
await introspect_subpath("/a/subpath/a/test/path2", set())