def gen_segment(name, method_suffix, arg=None, append_arg_to_name=True): packer = Packer() if arg is None: getattr(packer, 'pack' + method_suffix)() else: getattr(packer, 'pack' + method_suffix)(arg) if append_arg_to_name: name = name + ' (' + str(arg) + ')' return OrderedDict( [('name', name), ('method_suffix', method_suffix), ('b64', packer.get_bytes().encode('base64', 'strict').replace('\n', ''))])
def test_basic_segment(key): method_suffix = test_segment['suffix'] read_bytes = test_segment['b64'].decode('base64', 'strict') unpacker = Unpacker(read_bytes) read_value = getattr(unpacker, 'unpack' + method_suffix)() logging.debug('[%s] read %s', key, read_value) packer = Packer() if read_value is None: getattr(packer, 'pack' + method_suffix)() else: getattr(packer, 'pack' + method_suffix)(read_value) write_bytes = packer.get_bytes() out_b64 = write_bytes.encode('base64', 'strict').replace('\n', '') if out_b64 != test_segment['b64']: compare_bytes(convert_bytes(write_bytes), convert_bytes(read_bytes)) assert out_b64 == test_segment['b64']