diff options
author | Diego Elio Pettenò <flameeyes@flameeyes.com> | 2020-03-16 19:51:27 +0100 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2020-03-16 20:06:33 +0100 |
commit | f5143327b243fc616f37252d76bd31f2690b088d (patch) | |
tree | 0c165ca6b5a6a0783d594b2beeb50295e52f6a5f /glucometerutils/drivers/tests/test_otultra2.py | |
parent | Mergify: configuration update (diff) | |
download | glucometerutils-f5143327b243fc616f37252d76bd31f2690b088d.tar glucometerutils-f5143327b243fc616f37252d76bd31f2690b088d.tar.gz glucometerutils-f5143327b243fc616f37252d76bd31f2690b088d.tar.bz2 glucometerutils-f5143327b243fc616f37252d76bd31f2690b088d.tar.lz glucometerutils-f5143327b243fc616f37252d76bd31f2690b088d.tar.xz glucometerutils-f5143327b243fc616f37252d76bd31f2690b088d.tar.zst glucometerutils-f5143327b243fc616f37252d76bd31f2690b088d.zip |
Diffstat (limited to 'glucometerutils/drivers/tests/test_otultra2.py')
-rw-r--r-- | glucometerutils/drivers/tests/test_otultra2.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/glucometerutils/drivers/tests/test_otultra2.py b/glucometerutils/drivers/tests/test_otultra2.py new file mode 100644 index 0000000..6b36602 --- /dev/null +++ b/glucometerutils/drivers/tests/test_otultra2.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# +# SPDX-License-Identifier: MIT +"""Tests for the LifeScan OneTouch Ultra 2 driver.""" + +# pylint: disable=protected-access,missing-docstring + +from unittest import mock + +from absl.testing import parameterized +from glucometerutils import exceptions +from glucometerutils.drivers import otultra2 +from glucometerutils.support import lifescan + + +class TestOTUltra2(parameterized.TestCase): + def test_checksum(self): + checksum = otultra2._calculate_checksum(b"T") + self.assertEqual(0x0054, checksum) + + def test_checksum_full(self): + checksum = otultra2._calculate_checksum(b'T "SAT","08/03/13","22:12:00 "') + self.assertEqual(0x0608, checksum) + + @parameterized.named_parameters( + ("_missing_checksum", b"INVALID", lifescan.MissingChecksum), + ("_short", b".\r", exceptions.InvalidResponse), + ("_generic", b"% 2500\r", exceptions.InvalidResponse), + ( + "_invalid_serial_number", + b'@ "12345678O" 0297\r', + lifescan.InvalidSerialNumber, + ), + ("_invalid_checksum", b"% 1337\r", exceptions.InvalidChecksum), + ("_broken_checksum", b"% 13AZ\r", lifescan.MissingChecksum), + ) + def test_invalid_response(self, returned_string, expected_exception): + with mock.patch("serial.Serial") as mock_serial: + mock_serial.return_value.readline.return_value = returned_string + + device = otultra2.Device("mockdevice") + with self.assertRaises(expected_exception): + device.get_serial_number() |