From 54e5a6420072415f80bad272183b45b61f159675 Mon Sep 17 00:00:00 2001 From: Marcus Hoffmann Date: Mon, 29 Aug 2022 19:18:20 +0200 Subject: [PATCH] support/testing/tests/package/test_python_paho_mqtt: new runtime test This tests valdates that we can publish a message and read it back. Signed-off-by: Marcus Hoffmann Tested-by: Arnout Vandecappelle (Essensium/Mind) [yann.morin.1998@free.fr: - don't manually start mosquitto, there's a startup script for that - don't pass custom timeout ] Signed-off-by: Yann E. MORIN --- .../tests/package/sample_python_paho_mqtt.py | 12 ++++++++++ .../tests/package/test_python_paho_mqtt.py | 23 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 support/testing/tests/package/sample_python_paho_mqtt.py create mode 100644 support/testing/tests/package/test_python_paho_mqtt.py diff --git a/support/testing/tests/package/sample_python_paho_mqtt.py b/support/testing/tests/package/sample_python_paho_mqtt.py new file mode 100644 index 0000000000..769ad6250f --- /dev/null +++ b/support/testing/tests/package/sample_python_paho_mqtt.py @@ -0,0 +1,12 @@ +from paho.mqtt import publish, subscribe + +publish.single( + 'buildroot/test', + payload="Hello, World!", + qos=2, + retain=True, + hostname="localhost", + port=1883) + +message = subscribe.simple('buildroot/test') +print(message.payload.decode()) diff --git a/support/testing/tests/package/test_python_paho_mqtt.py b/support/testing/tests/package/test_python_paho_mqtt.py new file mode 100644 index 0000000000..0fe7fa5904 --- /dev/null +++ b/support/testing/tests/package/test_python_paho_mqtt.py @@ -0,0 +1,23 @@ +from tests.package.test_python import TestPythonPackageBase +import os + + +class TestPythonPahoMQTT(TestPythonPackageBase): + __test__ = True + config = TestPythonPackageBase.config + \ + """ + BR2_PACKAGE_MOSQUITTO=y + BR2_PACKAGE_MOSQUITTO_BROKER=y + BR2_PACKAGE_PYTHON3=y + BR2_PACKAGE_PYTHON_PAHO_MQTT=y + """ + sample_scripts = ["tests/package/sample_python_paho_mqtt.py"] + + def test_run(self): + self.login() + self.check_sample_scripts_exist() + + cmd = "%s %s" % (self.interpreter, os.path.basename(self.sample_scripts[0])) + output, exit_code = self.emulator.run(cmd) + self.assertEqual(exit_code, 0) + self.assertEqual(output[0], "Hello, World!")