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 <marcus.hoffmann@othermo.de>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[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 <yann.morin.1998@free.fr>
This commit is contained in:
Marcus Hoffmann 2022-08-29 19:18:20 +02:00 committed by Yann E. MORIN
parent 2526a2f51f
commit 54e5a64200
2 changed files with 35 additions and 0 deletions

View File

@ -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())

View File

@ -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!")