def test_enum_endianness(): assert Tal.u.type.endianness_format == h.Endianness.Default.value assert Yuval.u.type.endianness_format == h.Endianness.BigEndian.value assert bytes(h.Enum(h.UInt16, Lia, Lia.A)) == bytes(h.UInt16(1)) assert bytes(h.Enum(h.UInt16(endianness=h.BigEndian), Lia, Lia.A)) == bytes(h.UInt16(1, endianness=h.BigEndian)) assert Yuval().u.type.endianness_format == h.BigEndian.value assert bytes(Yuval(u=1))[-2:] == bytes(h.UInt16(1, endianness=h.BigEndian))
def test_enum_validation_without_struct(): class TEnum(enum.IntEnum): a = 1 b = h.Enum(h.UInt8, TEnum) with pytest.raises(ValueError): b.value = 2
class Tal(h.Struct): x = h.UInt64(endianness=h.BigEndian) z = h.UInt64 t = h.UInt8 u = h.Enum(h.UInt16, Lia)
class Dar(h.Struct): d = h.Enum(h.UInt32, Guy)