Ejemplo n.º 1
0
 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()
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
 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()
Ejemplo n.º 4
0
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'}
    )
Ejemplo n.º 5
0
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'}
    )
Ejemplo n.º 6
0
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'), {
Ejemplo n.º 7
0
    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': {