Added bus name injection to base message bus class and added testing for caller injection
Some checks failed
CI / lint (push) Has been cancelled
CI / Lint Commit Messages (push) Has been cancelled
CI / test (skip_cython, ubuntu-latest, 3.10) (push) Has been cancelled
CI / test (skip_cython, ubuntu-latest, 3.11) (push) Has been cancelled
CI / test (skip_cython, ubuntu-latest, 3.12) (push) Has been cancelled
CI / test (skip_cython, ubuntu-latest, 3.13) (push) Has been cancelled
CI / test (skip_cython, ubuntu-latest, 3.9) (push) Has been cancelled
CI / test (use_cython, ubuntu-latest, 3.10) (push) Has been cancelled
CI / test (use_cython, ubuntu-latest, 3.11) (push) Has been cancelled
CI / test (use_cython, ubuntu-latest, 3.12) (push) Has been cancelled
CI / test (use_cython, ubuntu-latest, 3.13) (push) Has been cancelled
CI / test (use_cython, ubuntu-latest, 3.9) (push) Has been cancelled
CI / Big-endian s390x tests (push) Has been cancelled
CI / benchmark (push) Has been cancelled
CI / release (push) Has been cancelled
CI / Build wheels on macos-latest with arch (push) Has been cancelled
CI / Build wheels on ubuntu-24.04-arm with arch (push) Has been cancelled
CI / Build wheels on ubuntu-latest with arch (push) Has been cancelled
CI / upload_pypi (push) Has been cancelled
Some checks failed
CI / lint (push) Has been cancelled
CI / Lint Commit Messages (push) Has been cancelled
CI / test (skip_cython, ubuntu-latest, 3.10) (push) Has been cancelled
CI / test (skip_cython, ubuntu-latest, 3.11) (push) Has been cancelled
CI / test (skip_cython, ubuntu-latest, 3.12) (push) Has been cancelled
CI / test (skip_cython, ubuntu-latest, 3.13) (push) Has been cancelled
CI / test (skip_cython, ubuntu-latest, 3.9) (push) Has been cancelled
CI / test (use_cython, ubuntu-latest, 3.10) (push) Has been cancelled
CI / test (use_cython, ubuntu-latest, 3.11) (push) Has been cancelled
CI / test (use_cython, ubuntu-latest, 3.12) (push) Has been cancelled
CI / test (use_cython, ubuntu-latest, 3.13) (push) Has been cancelled
CI / test (use_cython, ubuntu-latest, 3.9) (push) Has been cancelled
CI / Big-endian s390x tests (push) Has been cancelled
CI / benchmark (push) Has been cancelled
CI / release (push) Has been cancelled
CI / Build wheels on macos-latest with arch (push) Has been cancelled
CI / Build wheels on ubuntu-24.04-arm with arch (push) Has been cancelled
CI / Build wheels on ubuntu-latest with arch (push) Has been cancelled
CI / upload_pypi (push) Has been cancelled
This commit is contained in:
@@ -60,6 +60,16 @@ class ExampleInterface(ServiceInterface):
|
||||
assert type(self) is ExampleInterface
|
||||
raise DBusError("test.error", "an error occurred")
|
||||
|
||||
@method(inject_caller=True)
|
||||
def echo_caller(self, caller: str | None = None) -> "s":
|
||||
assert type(self) is ExampleInterface
|
||||
return caller
|
||||
|
||||
@method(inject_caller="source")
|
||||
def echo_source(self, source: str | None = None) -> "s":
|
||||
assert type(self) is ExampleInterface
|
||||
return source
|
||||
|
||||
|
||||
class AsyncInterface(ServiceInterface):
|
||||
def __init__(self, name):
|
||||
@@ -108,6 +118,16 @@ class AsyncInterface(ServiceInterface):
|
||||
assert type(self) is AsyncInterface
|
||||
raise DBusError("test.error", "an error occurred")
|
||||
|
||||
@method(inject_caller=True)
|
||||
async def echo_caller(self, caller: str | None = None) -> "s":
|
||||
assert type(self) is AsyncInterface
|
||||
return caller
|
||||
|
||||
@method(inject_caller="source")
|
||||
async def echo_source(self, source: str | None = None) -> "s":
|
||||
assert type(self) is AsyncInterface
|
||||
return source
|
||||
|
||||
|
||||
@pytest.mark.parametrize("interface_class", [ExampleInterface, AsyncInterface])
|
||||
@pytest.mark.asyncio
|
||||
@@ -216,6 +236,14 @@ async def test_methods(interface_class):
|
||||
'test.interface.does_not_exist with signature "" could not be found'
|
||||
]
|
||||
|
||||
reply = await call("echo_caller")
|
||||
assert reply.message_type == MessageType.METHOD_RETURN, reply.body[0]
|
||||
assert reply.body[0] == bus2.unique_name
|
||||
|
||||
reply = await call("echo_source")
|
||||
assert reply.message_type == MessageType.METHOD_RETURN, reply.body[0]
|
||||
assert reply.body[0] == bus2.unique_name
|
||||
|
||||
bus1.disconnect()
|
||||
bus2.disconnect()
|
||||
bus1._sock.close()
|
||||
|
||||
Reference in New Issue
Block a user