def test_read_scheme_non_convertible_value(): """Test that the read scheme matches the expected when the read value is non-convertible. In this case, it doesn't raise the error but log a warning. The error value is still processed and left for the plugin level to handle. """ dev = make_metainfo_response() rr = api.ReadResponse(timestamp='november', type='temperature', value='101a') response_scheme = ReadResponse(dev, [rr]) assert response_scheme.data == { 'type': 'thermistor', 'data': { 'temperature': { 'value': '101a', 'timestamp': 'november', 'unit': { 'name': 'celsius', 'symbol': 'C' } } } }
def test_read_scheme_no_precision(): """Test that the read scheme matches the expected when no precision is given for the device """ dev = make_metainfo_response() dev.output[0].precision = 0 rr = api.ReadResponse(timestamp='november', type='temperature', value='10.98765432') response_scheme = ReadResponse(dev, [rr]) assert response_scheme.data == { 'type': 'thermistor', 'data': { 'temperature': { 'value': 10.98765432, 'timestamp': 'november', 'unit': { 'name': 'celsius', 'symbol': 'C' } } } }
def test_read_scheme_null_value(): """Test that the read scheme matches the expected when there is no read value. """ dev = make_device_response() reading = api.Reading( timestamp='november', type='temperature', ) response_scheme = ReadResponse(dev, [reading]) assert response_scheme.data == { 'kind': 'thermistor', 'data': [ { 'info': '', 'type': 'temperature', 'value': None, 'timestamp': 'november', 'unit': { 'name': 'celsius', 'symbol': 'C' } } ] }
def test_read_scheme_with_precision_rounding_2(): """Test that the read scheme matches the expected when the read value must be rounded to the specified precision. """ dev = make_metainfo_response() rr = api.ReadResponse(timestamp='november', type='temperature', value='10.98765432') response_scheme = ReadResponse(dev, [rr]) assert response_scheme.data == { 'type': 'thermistor', 'data': { 'temperature': { 'value': 10.988, 'timestamp': 'november', 'unit': { 'name': 'celsius', 'symbol': 'C' } } } }
def test_read_scheme_no_precision(): """Test that the read scheme matches the expected when no precision is given for the device """ dev = make_device_response() dev.output[0].precision = 0 reading = api.Reading( timestamp='november', type='temperature', float64_value=10.98765432 ) response_scheme = ReadResponse(dev, [reading]) assert response_scheme.data == { 'kind': 'thermistor', 'data': [ { 'info': '', 'type': 'temperature', 'value': 10.98765432, 'timestamp': 'november', 'unit': { 'name': 'celsius', 'symbol': 'C' } } ] }
def test_read_scheme_no_unit(): """Test that the read scheme matches the expected when no unit is given for the device """ dev = make_device_response() dev.output[0].unit.name = '' dev.output[0].unit.symbol = '' reading = api.Reading( timestamp='november', type='temperature', float64_value=10.98765432 ) response_scheme = ReadResponse(dev, [reading]) assert response_scheme.data == { 'kind': 'thermistor', 'data': [ { 'info': '', 'type': 'temperature', 'value': 10.988, 'timestamp': 'november', 'unit': None } ] }
def test_read_scheme_with_precision_rounding_2(): """Test that the read scheme matches the expected when the read value must be rounded to the specified precision. """ dev = make_device_response() reading = api.Reading( timestamp='november', type='temperature', float64_value=10.98765432 ) response_scheme = ReadResponse(dev, [reading]) assert response_scheme.data == { 'kind': 'thermistor', 'data': [ { 'info': '', 'type': 'temperature', 'value': 10.988, 'timestamp': 'november', 'unit': { 'name': 'celsius', 'symbol': 'C' } } ] }
def test_read_scheme_with_no_matching_readings(): """Test that the read scheme matches the expected when no matching readings are provided. """ dev = make_metainfo_response() rr = api.ReadResponse(timestamp='november', type='humidity', value='5') response_scheme = ReadResponse(dev, [rr]) assert response_scheme.data == {'type': 'thermistor', 'data': {}}
def test_read_scheme_with_no_matching_readings(): """Test that the read scheme matches the expected when no matching readings are provided. """ dev = make_device_response() reading = api.Reading( timestamp='november', type='humidity', int32_value=5 ) response_scheme = ReadResponse(dev, [reading]) assert response_scheme.data == { 'kind': 'thermistor', 'data': [] }
def __init__(self, device, device_reading): self.device = device self.readings = ReadResponse(device, [device_reading.reading]) read_data = self.readings.data['data'] if len(read_data) != 1: raise ValueError( 'Expected a single reading for the cache read, but got {}'. format(len(read_data))) reading = read_data[0] self.data = { 'location': { 'rack': device_reading.rack, 'board': device_reading.board, 'device': device_reading.device, }, 'kind': self.readings.data['kind'], **reading, }
def test_read_scheme(): """Test that the read scheme matches the expected.""" dev = make_metainfo_response() rr = api.ReadResponse(timestamp='november', type='temperature', value='10') response_scheme = ReadResponse(dev, [rr]) assert response_scheme.data == { 'type': 'thermistor', 'data': { 'temperature': { 'value': 10.0, 'timestamp': 'november', 'unit': { 'name': 'celsius', 'symbol': 'C' } } } }
def test_read_scheme_no_unit(): """Test that the read scheme matches the expected when no unit is given for the device """ dev = make_metainfo_response() dev.output[0].unit.name = '' dev.output[0].unit.symbol = '' rr = api.ReadResponse(timestamp='november', type='temperature', value='10.98765432') response_scheme = ReadResponse(dev, [rr]) assert response_scheme.data == { 'type': 'thermistor', 'data': { 'temperature': { 'value': 10.988, 'timestamp': 'november', 'unit': None } } }