async def control(): await looper.config_queue.put( ConfigMessage('invalid', {'foo': 'bar'}) ) await asyncio.sleep(0.001) answers.append(await looper.send_queue.get()) looper.stop()
def test_apply_config_message_no_device(looper, mock_sensor_set): sensors = Sensors(mock_sensor_set) message = ConfigMessage('invalid', {'foo': 'bar'}) result = list(sensors.apply_config_message(looper, message)) assert result == [LogMessage.error('Unknown device in config invalid')] assert_no_update_config_called(mock_sensor_set)
async def control(): await looper.config_queue.put( ConfigMessage('sensor1', {'foo': 'bar'}) ) await looper.config_queue.put( CommandMessage('sensor1', 1, 'new', None) ) answers.append(await looper.send_queue.get()) looper.stop()
def test_apply_config_message_ok(looper, mock_sensor_set): sensors = Sensors(mock_sensor_set) message = ConfigMessage('sensor1', {'foo': 'bar'}) results = list(sensors.apply_config_message(looper, message)) assert results == [] assert_update_config_called_once( mock_sensor_set, 'sensor1', {'foo': 'bar'} )
def test_apply_config_message_error(looper, mock_sensor_set): sensors = Sensors(mock_sensor_set) message = ConfigMessage('sensor1', {'foo': 'bar'}) mock_sensor_set['sensor1'].update_config.return_value = (False, 'fail') result = list(sensors.apply_config_message(looper, message)) assert result == [LogMessage.error('Config error on sensor1: fail')] assert_update_config_called_once( mock_sensor_set, 'sensor1', {'foo': 'bar'} )
from datetime import datetime, timedelta import pytest from conftest import roughly from bobnet_sensors.models import (ConfigMessage, CommandMessage, CommandResponseMessage, DataMessage, LogMessage) @pytest.mark.parametrize('message,expected_type', [ (ConfigMessage('d', {'f': 1}), 'config'), (CommandMessage('d', 1, 'new', None), 'command'), (DataMessage('d', {}), 'data'), (CommandResponseMessage('d', 1, 'new'), 'command_response'), (LogMessage.error('hi'), 'log'), ]) def test_message_type(message, expected_type): assert message.type == expected_type @pytest.mark.parametrize('message,expected_json', [(DataMessage('mydevice', {'foo': 'bar'}), { 'type': 'data', 'device': 'mydevice', 'data': { 'foo': 'bar' } }), (CommandResponseMessage('mydevice', 1, 'new'), {
with pytest.raises(RuntimeError): conn.on_subscribe(None, None, None, (128, )) Message = namedtuple('Message', 'payload') @pytest.mark.parametrize( 'payload,expected_messages', [({ 'devices': { 'mydevice': { 'foo': 'bar' } } }, [ConfigMessage('mydevice', {'foo': 'bar'}), None]), ({ 'commands': { 'mydevice': { 'id': 1, 'state': 'new' } } }, [CommandMessage('mydevice', 1, 'new', None), None]), ({ 'devices': { 'mydevice': { 'foo': 'bar' } }, 'commands': {