pytest-play
support for MQTT support.
Thanks to play_mqtt
you can test the integration between a mocked IoT
device that sends commands on MQTT and a reactive web application with UI checks.
You can also build a simulator that generates messages for you.
More info and examples on:
- pytest-play, documentation
- cookiecutter-qa, see
pytest-play
in action with a working example if you want to start hacking
This project defines a new pytest-play command:
- provider: mqtt type: publish host: "$mqtt_host" port: $mqtt_port endpoint: "$mqtt_endpoint" payload: '{ "endpoint": "$mqtt_endpoint", "payload": { "obj_id_L": [0], "bin_value": [77251432], "measure_id": [100], "measureType": ["float"], "start_time": 1514911926114 }, "host": "$mqtt_host", "provider": "mqtt", "type": "publish", "port": "$mqtt_port"}'
Subscribe command:
test_data: - data: ciao1 --- - provider: mqtt type: subscribe host: iot.eclipse.org port: 1883 topic: "home/bedroom/light" name: "messages" - provider: mqtt type: publish host: iot.eclipse.org port: 1883 endpoint: "home/bedroom/light" payload: $data - provider: python type: wait_until timeout: 6 expression: 'len(variables["messages"]) == 1' poll: 0.1 sub_commands: [] - provider: python type: assert expression: 'len(variables["messages"]) == 1' - provider: python type: assert expression: 'variables["messages"][0] == "$data"'
pytest-play
tweets happens here:
This package was created with Cookiecutter and the cookiecutter-play-plugin (based on audreyr/cookiecutter-pypackage project template).