Пример #1
0
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))
Пример #2
0
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
Пример #3
0
class Tal(h.Struct):
    x = h.UInt64(endianness=h.BigEndian)
    z = h.UInt64
    t = h.UInt8
    u = h.Enum(h.UInt16, Lia)
Пример #4
0
class Dar(h.Struct):
    d = h.Enum(h.UInt32, Guy)