def test_explicit_field_override(self): field_proto = BitField(16, ULInt16(), b1=BitBool(), b2=BitBool(), remaining=BitNum(14)) inst = field_proto.create_instance(None) inst.b1 = True inst.b2 = False inst.remaining = 0x1EF sio = six.BytesIO() inst.pack(sio) # should be packed in little endian form self.assertEqual(sio.getvalue(), b"\xef\x81") inst2 = field_proto.create_instance(None) inst2.unpack(b"\xef\x81") self.assertEqual(inst.b1, inst2.b1) self.assertEqual(inst.b2, inst2.b2) self.assertEqual(inst.remaining, inst2.remaining)
def test_packing(self): field_proto = BitField(16, nib1=BitNum(4), nib2=BitNum(4), nib3=BitNum(4), nib4=BitNum(4), ) field = field_proto.create_instance(None) field.nib1 = 1 field.nib2 = 2 field.nib3 = 3 field.nib4 = 4 field2 = field_proto.create_instance(None) sio = six.BytesIO() field.pack(sio) field2.unpack(sio.getvalue()) self.assertEqual(field2.nib1, 1) self.assertEqual(field2.nib2, 2) self.assertEqual(field2.nib3, 3) self.assertEqual(field2.nib4, 4)
def test_packing(self): field_proto = BitField( 16, nib1=BitNum(4), nib2=BitNum(4), nib3=BitNum(4), nib4=BitNum(4), ) field = field_proto.create_instance(None) field.nib1 = 1 field.nib2 = 2 field.nib3 = 3 field.nib4 = 4 field2 = field_proto.create_instance(None) sio = six.BytesIO() field.pack(sio) field2.unpack(sio.getvalue()) self.assertEqual(field2.nib1, 1) self.assertEqual(field2.nib2, 2) self.assertEqual(field2.nib3, 3) self.assertEqual(field2.nib4, 4)