mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-30 22:19:12 +03:00
tests_files.py: Reduce code duplication
Change-Id: Ib84a0ae35262a19fce3e688afe8e1678a4c59eba
This commit is contained in:
@@ -39,6 +39,20 @@ class LinFixed_Test(unittest.TestCase):
|
|||||||
classes = all_subclasses(LinFixedEF)
|
classes = all_subclasses(LinFixedEF)
|
||||||
maxDiff = None
|
maxDiff = None
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _parse_t(t):
|
||||||
|
"""Parse a test description which can either be a 2-tuple of (enc, dec) or
|
||||||
|
a 3-tuple of (enc, rec_nr, dec)."""
|
||||||
|
if len(t) == 2:
|
||||||
|
encoded = t[0]
|
||||||
|
rec_num = 1
|
||||||
|
decoded = t[1]
|
||||||
|
else:
|
||||||
|
encoded = t[0]
|
||||||
|
rec_num = t[1]
|
||||||
|
decoded = t[2]
|
||||||
|
return encoded, rec_num, decoded
|
||||||
|
|
||||||
def test_decode_record(self):
|
def test_decode_record(self):
|
||||||
"""Test the decoder for a linear-fixed EF. Requires the given LinFixedEF subclass
|
"""Test the decoder for a linear-fixed EF. Requires the given LinFixedEF subclass
|
||||||
to have an '_test_decode' attribute, containing a list of tuples. Each tuple can
|
to have an '_test_decode' attribute, containing a list of tuples. Each tuple can
|
||||||
@@ -52,14 +66,7 @@ class LinFixed_Test(unittest.TestCase):
|
|||||||
for t in c._test_decode:
|
for t in c._test_decode:
|
||||||
with self.subTest(name, test_decode=t):
|
with self.subTest(name, test_decode=t):
|
||||||
inst = c()
|
inst = c()
|
||||||
if len(t) == 2:
|
encoded, rec_num, decoded = self._parse_t(t)
|
||||||
encoded = t[0]
|
|
||||||
rec_num = 1
|
|
||||||
decoded = t[1]
|
|
||||||
else:
|
|
||||||
encoded = t[0]
|
|
||||||
rec_num = t[1]
|
|
||||||
decoded = t[2]
|
|
||||||
logging.debug("Testing decode of %s", name)
|
logging.debug("Testing decode of %s", name)
|
||||||
re_dec = inst.decode_record_hex(encoded, rec_num)
|
re_dec = inst.decode_record_hex(encoded, rec_num)
|
||||||
self.assertEqual(decoded, re_dec)
|
self.assertEqual(decoded, re_dec)
|
||||||
@@ -77,14 +84,7 @@ class LinFixed_Test(unittest.TestCase):
|
|||||||
for t in c._test_encode:
|
for t in c._test_encode:
|
||||||
with self.subTest(name, test_encode=t):
|
with self.subTest(name, test_encode=t):
|
||||||
inst = c()
|
inst = c()
|
||||||
if len(t) == 2:
|
encoded, rec_num, decoded = self._parse_t(t)
|
||||||
encoded = t[0]
|
|
||||||
rec_num = 1
|
|
||||||
decoded = t[1]
|
|
||||||
else:
|
|
||||||
encoded = t[0]
|
|
||||||
rec_num = t[1]
|
|
||||||
decoded = t[2]
|
|
||||||
logging.debug("Testing encode of %s", name)
|
logging.debug("Testing encode of %s", name)
|
||||||
re_enc = inst.encode_record_hex(decoded, rec_num)
|
re_enc = inst.encode_record_hex(decoded, rec_num)
|
||||||
self.assertEqual(encoded.upper(), re_enc.upper())
|
self.assertEqual(encoded.upper(), re_enc.upper())
|
||||||
@@ -106,14 +106,7 @@ class LinFixed_Test(unittest.TestCase):
|
|||||||
for t in c._test_de_encode:
|
for t in c._test_de_encode:
|
||||||
with self.subTest(name, test_de_encode=t):
|
with self.subTest(name, test_de_encode=t):
|
||||||
inst = c()
|
inst = c()
|
||||||
if len(t) == 2:
|
encoded, rec_num, decoded = self._parse_t(t)
|
||||||
encoded = t[0]
|
|
||||||
rec_num = 1
|
|
||||||
decoded = t[1]
|
|
||||||
else:
|
|
||||||
encoded = t[0]
|
|
||||||
rec_num = t[1]
|
|
||||||
decoded = t[2]
|
|
||||||
logging.debug("Testing decode of %s", name)
|
logging.debug("Testing decode of %s", name)
|
||||||
re_dec = inst.decode_record_hex(encoded, rec_num)
|
re_dec = inst.decode_record_hex(encoded, rec_num)
|
||||||
self.assertEqual(decoded, re_dec)
|
self.assertEqual(decoded, re_dec)
|
||||||
|
|||||||
Reference in New Issue
Block a user