from builtins import bytes import unittest from chirp.drivers import yaesu_clone from chirp import memmap class TestYaesuChecksum(unittest.TestCase): def _test_checksum(self, mmap): cs = yaesu_clone.YaesuChecksum(0, 2, 3) self.assertEqual(42, cs.get_existing(mmap)) self.assertEqual(0x8A, cs.get_calculated(mmap)) try: mmap = mmap.get_byte_compatible() mmap[0] = 3 except AttributeError: # str or bytes try: # str mmap = memmap.MemoryMap('\x03' + mmap[1:]) except TypeError: # bytes mmap = memmap.MemoryMapBytes(b'\x03' + mmap[1:]) cs.update(mmap) self.assertEqual(95, cs.get_calculated(mmap)) def test_with_MemoryMap(self): mmap = memmap.MemoryMap('...\x2A') self._test_checksum(mmap) def test_with_MemoryMapBytes(self): mmap = memmap.MemoryMapBytes(bytes(b'...\x2A')) self._test_checksum(mmap) def test_with_bytes(self): self._test_checksum(b'...\x2A') def test_with_str(self): self._test_checksum('...\x2A')