summaryrefslogtreecommitdiffstats
path: root/test/test_otultraeasy.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_otultraeasy.py')
-rw-r--r--test/test_otultraeasy.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/test/test_otultraeasy.py b/test/test_otultraeasy.py
new file mode 100644
index 0000000..326aeea
--- /dev/null
+++ b/test/test_otultraeasy.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+"""Tests for the LifeScan OneTouch Ultra Mini driver."""
+
+__author__ = 'Diego Elio Pettenò'
+__email__ = 'flameeyes@flameeyes.eu'
+__copyright__ = 'Copyright © 2013, Diego Elio Pettenò'
+__license__ = 'MIT'
+
+import array
+import os
+import sys
+import unittest
+
+import mock
+
+sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+from glucometerutils.drivers import lifescan_common
+from glucometerutils.drivers import otultraeasy
+from glucometerutils import exceptions
+
+class TestOTUltraMini(unittest.TestCase):
+ def setUp(self):
+ self.addCleanup(mock.patch.stopall)
+
+ mock_serial = mock.patch('serial.Serial').start()
+ self.mock_readline = mock_serial.return_value.readline
+
+ self.device = otultraeasy.Device('mockdevice')
+
+ def testCrc(self):
+ self.assertEqual(
+ 0x41cd,
+ otultraeasy._Packet._crc(b'\x02\x06\x06\x03'))
+
+ cmd_array = array.array('B', b'\x02\x06\x08\x03')
+ self.assertEqual(
+ 0x62C2,
+ otultraeasy._Packet._crc(cmd_array))
+
+ def testPacketUpdateChecksum(self):
+ packet = otultraeasy._Packet()
+
+ packet.build_command('')
+ packet.disconnect = True
+
+ packet.update_checksum()
+ self.assertEqual(
+ b'\x02\x06\x08\x03\xC2\x62',
+ packet.tobytes())
+
+ packet.validate_checksum()
+ packet.disconnect = False
+
+ with self.assertRaises(lifescan_common.InvalidChecksum):
+ packet.validate_checksum()
+
+
+if __name__ == '__main__':
+ unittest.main()