mirror of https://github.com/arendst/Tasmota.git
67 lines
1.6 KiB
Python
67 lines
1.6 KiB
Python
|
#- test for bytes with fixed sizes -#
|
||
|
def assert_attribute_error(f)
|
||
|
try
|
||
|
f()
|
||
|
assert(false, 'unexpected execution flow')
|
||
|
except .. as e, m
|
||
|
assert(e == 'attribute_error')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
#- simple initialization -#
|
||
|
b=bytes(-1)
|
||
|
assert(str(b) == "bytes('00')")
|
||
|
b=bytes(-5)
|
||
|
assert(str(b) == "bytes('0000000000')")
|
||
|
|
||
|
#- initialization with hex -#
|
||
|
b=bytes("11", -1)
|
||
|
assert(str(b) == "bytes('11')")
|
||
|
b=bytes("11", -5)
|
||
|
assert(str(b) == "bytes('1100000000')")
|
||
|
b=bytes("11223344", -4)
|
||
|
assert(str(b) == "bytes('11223344')")
|
||
|
assert(str(bytes(-3).fromb64('RFVm')) == "bytes('445566')")
|
||
|
|
||
|
#- check that get and set still works -#
|
||
|
b=bytes("11223344",-4)
|
||
|
assert(b.get(0,2) == 0x2211)
|
||
|
b.set(0,0x5566,2)
|
||
|
assert(b.get(0,2) == 0x5566)
|
||
|
assert(b[0] == 0x66)
|
||
|
b[0]=12
|
||
|
assert(b[0] == 12)
|
||
|
|
||
|
#- resize -#
|
||
|
b=bytes("11223344",-4)
|
||
|
assert(b.resize(4) == bytes('11223344'))
|
||
|
|
||
|
#- check that changing size raises an exception -#
|
||
|
b=bytes("112233", -3)
|
||
|
assert_attribute_error(/-> b.add(1))
|
||
|
assert_attribute_error(/-> b.add(2,2))
|
||
|
assert_attribute_error(/-> b.resize(4))
|
||
|
assert_attribute_error(/-> b.fromstring("aaaaa"))
|
||
|
assert_attribute_error(/-> b.fromb64('RFVmdw=='))
|
||
|
assert_attribute_error(/-> b.clear())
|
||
|
assert_attribute_error(/-> b.bytes())
|
||
|
|
||
|
#- add -#
|
||
|
b=bytes("112233", -3)
|
||
|
assert(b+b == bytes("112233112233"))
|
||
|
|
||
|
#- bytes mapped -#
|
||
|
b1=bytes("112233445566")
|
||
|
ptr=b1._buffer()
|
||
|
b2=bytes(ptr, -4)
|
||
|
assert(b2 == bytes("11223344"))
|
||
|
b2=bytes(ptr, 4)
|
||
|
assert(b2 == bytes("11223344"))
|
||
|
b2=bytes(ptr, 6)
|
||
|
assert(b2 == bytes("112233445566"))
|
||
|
assert(b1 == b2)
|
||
|
|
||
|
b2.set(0,0xAABB,2)
|
||
|
assert(b2 == bytes("BBAA33445566"))
|
||
|
assert(b1 == bytes("BBAA33445566"))
|
||
|
assert(b1 == b2)
|