A clone of: https://github.com/nutechsoftware/alarmdecoder This is requires as they dropped support for older firmware releases w/o building in backward compatibility code, and they had previously hardcoded pyserial to a python2 only version.

49 lines
1.4 KiB

  1. from unittest import TestCase
  2. from alarmdecoder.messages import Message, ExpanderMessage, RFMessage, LRRMessage
  3. from alarmdecoder.util import InvalidMessageError
  4. class TestMessages(TestCase):
  5. def setUp(self):
  6. pass
  7. def tearDown(self):
  8. pass
  9. def test_message_parse(self):
  10. msg = Message('[0000000000000000----],001,[f707000600e5800c0c020000],"FAULT 1 "')
  11. self.assertEqual(msg.numeric_code, '001')
  12. def test_message_parse_fail(self):
  13. with self.assertRaises(InvalidMessageError):
  14. msg = Message('')
  15. def test_expander_message_parse(self):
  16. msg = ExpanderMessage('!EXP:07,01,01')
  17. self.assertEqual(msg.address, 7)
  18. def test_expander_message_parse_fail(self):
  19. with self.assertRaises(InvalidMessageError):
  20. msg = ExpanderMessage('')
  21. def test_rf_message_parse(self):
  22. msg = RFMessage('!RFX:0180036,80')
  23. self.assertEqual(msg.serial_number, '0180036')
  24. def test_rf_message_parse_fail(self):
  25. with self.assertRaises(InvalidMessageError):
  26. msg = RFMessage('')
  27. def test_lrr_message_parse(self):
  28. msg = LRRMessage('!LRR:012,1,ARM_STAY')
  29. self.assertEqual(msg.event_type, 'ARM_STAY')
  30. def test_lrr_message_parse_fail(self):
  31. with self.assertRaises(InvalidMessageError):
  32. msg = LRRMessage('')