# (c) Copyright 2020 by Coinkite Inc. This file is covered by license found in COPYING-CC. # from utils import HexStreamer, Base64Streamer from ubinascii import unhexlify as a2b_hex from ubinascii import hexlify as b2a_hex from ubinascii import a2b_base64, b2a_base64 msg = b'This is a test... 123kljdsf sdlkfjsldfj sdflkj' * 2 def check(decoder, msg, parts): tst = b'' for p in parts: for xx in decoder.more(p): tst += xx assert msg == tst, repr([msg,tst]) assert not decoder.runt for encoder, cls in [ (b2a_hex, HexStreamer), (b2a_base64, Base64Streamer) ]: hx = encoder(msg) check(cls(), msg, [hx]) for i in range(1, len(hx)-2): check(cls(), msg, [hx[0:i], hx[i:]]) check(cls(), msg, [hx[0:i], b' ', hx[i:]]) check(cls(), msg, [hx[0:i], b' \n ', hx[i:]])