import client_proto as cp def test_complete_parse(data, the_type): i_s, name, result = cp.parse_member(the_type, cp.AnnotatedString(data), 0, []) assert(i_s == len(data)) def test_parse_complex_member(data, member, the_type): i_s, name, result = cp.parse_complex_member(member, the_type, cp.AnnotatedString(data), 0) assert(i_s == len(data)) def tests(): six_rects = '\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00U\x01\x00\x00\x80\x02\x00\x00U\x01\x00\x00\x00\x00\x00\x00\xd1\x01\x00\x00R\x01\x00\x00U\x01\x00\x00K\x02\x00\x00\xd1\x01\x00\x00\x80\x02\x00\x00\xd1\x01\x00\x00\x00\x00\x00\x00\xd6\x01\x00\x00R\x01\x00\x00\xd1\x01\x00\x00K\x02\x00\x00\xd6\x01\x00\x00\x80\x02\x00\x00\xd6\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x80\x02\x00\x00' draw_text = '\x00\x00\x00\x00\xc7\x01\x00\x00#\x00\x00\x00\xdd\x01\x00\x00I\x00\x00\x00\x01\x01\x00\x00\x00\xc7\x01\x00\x00#\x00\x00\x00\xdd\x01\x00\x00I\x00\x00\x00G\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\x08\x00\x00\x00\x05\x00\x02#\x00\x00\x00\xd7\x01\x00\x00\xff\xff\xff\xff\xf6\xff\xff\xff\t\x00\n\x00\x03\xaf\xfdp\x00?\xff\xff\xf7\x00\xcf\x90\x03\xfe\x00\x15\x00\x06\xff\x00\x009\xef\xf8\x00\x07\xff\xe90\x00\x0e\xf6\x00\x06\x10\x0e\xf3\x01\xcf\xb0\x07\xff\xff\xfe \x00m\xff\xa2\x00,\x00\x00\x00\xd7\x01\x00\x00\x00\x00\x00\x00\xf4\xff\xff\xff\x05\x00\x0c\x00-\xfb\x00\xaf\xff\x00\xbf`\x00\xaf`\x00\x7f\x80\x00?\xb0\x00\x1f\xe0\x00\x0e\xf1\x00\xff\xff\xb0\xbf\xff\xf0\x05\xfa\x00\x02\xbc\x002\x00\x00\x00\xd7\x01\x00\x00\x00\x00\x00\x00\xf6\xff\xff\xff\x08\x00\n\x00-\xfb/\xf0\xbf\xff\xef\xf0\xff \x8f\xf3\xdfr\t\xf6_\xff\xff\xf9\x03\xae\xff\xfb\x00\x00\x00\xff\x0c\xf5\x05\xff\x03\xff\xff\xfb\x00L\xff\xa2<\x00\x00\x00\xd7\x01\x00\x00\xff\xff\xff\xff\xf6\xff\xff\xff\t\x00\n\x00/\xc0\x00\x00\x00\x0f\xf0\x00\x00\x00\x0b\xf3\x00\x00\x00\t\xf5\x00\x00\x00\x06\xf8\x00\x00\x00\x03\xfd\x00\x00\x00\x00\xff`\x00\x00\x00\xee\xf7\x10\x00\x00\xbf_\xfa\x00\x00\x7f#\xaf\x00C\x00\x00\x00\xd7\x01\x00\x00\x00\x00\x00\x00\xf4\xff\xff\xff\x05\x00\x0c\x00-\xfb\x00\xaf\xff\x00\xbf`\x00\xaf`\x00\x7f\x80\x00?\xb0\x00\x1f\xe0\x00\x0e\xf1\x00\xff\xff\xb0\xbf\xff\xf0\x05\xfa\x00\x02\xbc\x00' clip_rects = cp.proto.channels[1].server[304].message_type.members[0].member_type.members[2].member_type.members[1].cases[0].member assert(clip_rects.name == 'rects') test_complete_parse(six_rects, clip_rects) draw_text_message = cp.proto.channels[1].server[311] assert(draw_text_message.name == 'draw_text') test_parse_complex_member(draw_text, draw_text_message, draw_text_message.message_type) print '\n'.join(map(str,result[1][1])) if __name__ == '__main__': tests()