support/testing: add python-dbus-next test
Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
parent
b273326368
commit
f40219ff69
@ -1660,9 +1660,11 @@ F: package/python-typing-extensions/
|
||||
F: package/python-xmodem/
|
||||
F: package/rs485conf/
|
||||
F: package/turbolua/
|
||||
F: support/testing/tests/package/sample_python_dbus_next.py
|
||||
F: support/testing/tests/package/sample_python_pytest.py
|
||||
F: support/testing/tests/package/sample_python_pytest_asyncio.py
|
||||
F: support/testing/tests/package/test_netdata.py
|
||||
F: support/testing/tests/package/test_python_dbus_next.py
|
||||
F: support/testing/tests/package/test_python_pytest.py
|
||||
F: support/testing/tests/package/test_python_pytest_asyncio.py
|
||||
|
||||
|
44
support/testing/tests/package/sample_python_dbus_next.py
Normal file
44
support/testing/tests/package/sample_python_dbus_next.py
Normal file
@ -0,0 +1,44 @@
|
||||
import asyncio
|
||||
from dbus_next.aio import MessageBus
|
||||
from dbus_next.service import ServiceInterface, method
|
||||
import dbus_next.introspection as intr
|
||||
from dbus_next import BusType
|
||||
|
||||
|
||||
class SampleInterface(ServiceInterface):
|
||||
def __init__(self):
|
||||
super().__init__('test.interface')
|
||||
|
||||
@method()
|
||||
def Ping(self):
|
||||
pass
|
||||
|
||||
@method()
|
||||
def ConcatStrings(self, what1: 's', what2: 's') -> 's':
|
||||
return what1 + what2
|
||||
|
||||
|
||||
async def main():
|
||||
bus_name = 'dbus.next.sample'
|
||||
|
||||
bus = await MessageBus(bus_type=BusType.SYSTEM).connect()
|
||||
bus2 = await MessageBus(bus_type=BusType.SYSTEM).connect()
|
||||
|
||||
await bus.request_name(bus_name)
|
||||
|
||||
service_interface = SampleInterface()
|
||||
bus.export('/test/path', service_interface)
|
||||
|
||||
introspection = await bus2.introspect(bus_name, '/test/path')
|
||||
assert type(introspection) is intr.Node
|
||||
obj = bus2.get_proxy_object(bus_name, '/test/path', introspection)
|
||||
interface = obj.get_interface(service_interface.name)
|
||||
|
||||
result = await interface.call_ping()
|
||||
assert result is None
|
||||
|
||||
result = await interface.call_concat_strings('hello ', 'world')
|
||||
assert result == 'hello world'
|
||||
|
||||
|
||||
asyncio.run(main())
|
40
support/testing/tests/package/test_python_dbus_next.py
Normal file
40
support/testing/tests/package/test_python_dbus_next.py
Normal file
@ -0,0 +1,40 @@
|
||||
import textwrap
|
||||
|
||||
|
||||
from tests.package.test_python import TestPythonPackageBase
|
||||
|
||||
|
||||
class TestPythonPy3DBusNext(TestPythonPackageBase):
|
||||
__test__ = True
|
||||
config = TestPythonPackageBase.config + \
|
||||
"""
|
||||
BR2_PACKAGE_DBUS=y
|
||||
BR2_PACKAGE_PYTHON3=y
|
||||
BR2_PACKAGE_PYTHON_DBUS_NEXT=y
|
||||
"""
|
||||
sample_scripts = ["tests/package/sample_python_dbus_next.py"]
|
||||
|
||||
def run_sample_scripts(self):
|
||||
config = \
|
||||
"""
|
||||
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
|
||||
<busconfig>
|
||||
<policy user="root">
|
||||
<allow own="dbus.next.sample"/>
|
||||
<allow send_destination="dbus.next.sample"/>
|
||||
</policy>
|
||||
</busconfig>
|
||||
"""
|
||||
config = textwrap.dedent(config)
|
||||
config_dir = "/etc/dbus-1/system.d"
|
||||
config_fn = "dbus.next.sample.conf"
|
||||
|
||||
# Setup and reload D-Bus configuration
|
||||
self.emulator.run("mkdir -p " + config_dir)
|
||||
self.emulator.run("cat > " + config_dir + "/" + config_fn +
|
||||
" <<EOF" + config + "EOF")
|
||||
self.emulator.run("killall -SIGHUP dbus-daemon")
|
||||
|
||||
# Run test scripts
|
||||
super().run_sample_scripts()
|
Loading…
Reference in New Issue
Block a user