Skip to content

Commit 132ac48

Browse files
mikewadstenPaul Osborne
authored andcommitted
tests: Test empty FieldArray with content after
1 parent 2ee6fba commit 132ac48

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

suitcase/test/test_fields.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1036,6 +1036,13 @@ class BasicMessageArray(Structure):
10361036
array = FieldArray(BasicMessage, count)
10371037

10381038

1039+
# Test empty FieldArray with content after the array
1040+
class BasicMessageArrayAfter(Structure):
1041+
count = LengthField(UBInt8(), multiplier=2)
1042+
array = FieldArray(BasicMessage, count)
1043+
after = UBInt8()
1044+
1045+
10391046
class TestFieldArray(unittest.TestCase):
10401047
def test_pack_valid(self):
10411048
m = BasicMessageArray()
@@ -1071,6 +1078,40 @@ def test_unpack_empty(self):
10711078
self.assertEqual(m.count, 0)
10721079
self.assertEqual(len(m.array), 0)
10731080

1081+
def test_pack_after_valid(self):
1082+
m = BasicMessageArrayAfter()
1083+
1084+
m.array = []
1085+
m.after = 1
1086+
1087+
self.assertEqual(m.pack(), b"\x00\x01")
1088+
1089+
# Populate the array.
1090+
m2 = BasicMessageArrayAfter()
1091+
first = BasicMessage()
1092+
first.b1 = 0x22
1093+
first.b2 = 0x33
1094+
m2.array = [first]
1095+
m2.after = 0
1096+
1097+
self.assertEquals(m2.pack(), b"\x01\x22\x33\x00")
1098+
1099+
def test_unpack_after_valid(self):
1100+
m = BasicMessageArrayAfter.from_data(b"\x00\x11")
1101+
1102+
self.assertEqual(m.count, 0)
1103+
self.assertEqual(len(m.array), 0)
1104+
self.assertEqual(m.after, 0x11)
1105+
1106+
m2 = BasicMessageArrayAfter.from_data(b"\x01\x11\x22\x00")
1107+
1108+
self.assertEqual(m2.count, 1)
1109+
self.assertEqual(len(m2.array), 1)
1110+
self.assertIsInstance(m2.array[0], BasicMessage)
1111+
self.assertEqual(m2.array[0].b1, 0x11)
1112+
self.assertEqual(m2.array[0].b2, 0x22)
1113+
self.assertEqual(m2.after, 0)
1114+
10741115

10751116
# Test SubstructureField
10761117
class PascalString16(Structure):

0 commit comments

Comments
 (0)