This repository has been archived on 2023-01-29. You can view files and clone it, but cannot push or open issues or pull requests.
py-cayenne-lpp-decoder/test_decoder.py
2018-10-27 18:33:12 +02:00

67 lines
2.6 KiB
Python

# -*- coding: utf-8 -*-
import unittest
import cayennelpp
class DecoderTestCase(unittest.TestCase):
"""Unit tests for Cayenne LPP decoder."""
def test_two_temperature_sensors(self):
result = cayennelpp.lppdecode('A2cBEAVnAP8=')
self.assertEqual(result,
[{'channel': 3,
'type': 'Temperature Sensor',
'value': 27.2},
{'channel': 5,
'type': 'Temperature Sensor',
'value': 25.5}])
def test_temperature_and_acceleration_sensors(self):
result = cayennelpp.lppdecode('AWf/1wZxBNL7LgAA')
self.assertEqual(result,
[{'channel': 1,
'type': 'Temperature Sensor',
'value': -4.1},
{'channel': 6,
'type': 'Accelerometer',
'value': {'x': 1.234, 'y': -1.234, 'z': 0.0}}])
def test_decode_gps(self):
result = cayennelpp.lppdecode('AYgGdl/ylgoAA+g=')
self.assertEqual(result,
[{'channel': 1,
'type': 'GPS Location',
'value': {'lat': 42.3519,
'lon': -87.9094,
'alt': 10.0}}])
def test_decode_all_previous_tests_combined(self):
result = cayennelpp.lppdecode(
'AWcBEAVnAP8CZ//XA3EE0vsuAAAEiAZ2X/KWCgAD6A==')
self.assertEqual(result,
[{'channel': 1,
'type': 'Temperature Sensor',
'value': 27.2},
{'channel': 5,
'type': 'Temperature Sensor',
'value': 25.5},
{'channel': 2,
'type': 'Temperature Sensor',
'value': -4.1},
{'channel': 3,
'type': 'Accelerometer',
'value': {'x': 1.234, 'y': -1.234, 'z': 0.0}},
{'channel': 4,
'type': 'GPS Location',
'value': {'lat': 42.3519,
'lon': -87.9094,
'alt': 10.0}}])
def test_decode_unknown_lpp_data_type(self):
result = cayennelpp.lppdecode('AQQBEA==')
self.assertEqual(result, None)
if __name__ == '__main__':
unittest.main()