def test_custom_msgpack_join_encoded(): encoder = MsgpackEncoder() refencoder = RefMsgpackEncoder() trace = gen_trace(nspans=50) ref = refencoder.join_encoded([refencoder.encode_trace(trace) for _ in range(10)]) custom = encoder.join_encoded([encoder.encode_trace(trace) for _ in range(10)]) assert decode(ref) == decode(custom) ref = refencoder.join_encoded([refencoder.encode_trace(trace) for _ in range(1)]) custom = encoder.join_encoded([encoder.encode_trace(trace) for _ in range(1)]) assert decode(ref) == decode(custom)
def test_join_encoded_msgpack(self): # test encoding for MsgPack format traces = [] traces.append([ Span(name='client.testing', tracer=None), Span(name='client.testing', tracer=None), ]) traces.append([ Span(name='client.testing', tracer=None), Span(name='client.testing', tracer=None), ]) encoder = MsgpackEncoder() # Encode each individual trace on it's own encoded_traces = [encoder.encode_trace(trace) for trace in traces] # Join the encoded traces together data = encoder.join_encoded(encoded_traces) # Parse the encoded data items = msgpack.unpackb(data) # test the encoded output that should be a string # and the output must be flatten assert isinstance(data, msgpack_type) assert len(items) == 2 assert len(items[0]) == 2 assert len(items[1]) == 2 for i in range(2): for j in range(2): assert b'client.testing' == items[i][j][b'name']