Move DD code into its own directory (#6)

This commit is contained in:
Diego Hurtado
2020-04-08 11:39:44 -06:00
committed by GitHub
parent 72b40ba5f9
commit 5aee3ce32e
611 changed files with 0 additions and 0 deletions

View File

@ -0,0 +1,136 @@
import json
from unittest import TestCase
from ddtrace.span import Span
from ddtrace.compat import msgpack_type, string_type
from ddtrace.encoding import JSONEncoder, MsgpackEncoder
from ddtrace.vendor import msgpack
class TestEncoders(TestCase):
"""
Ensures that Encoders serialize the payload as expected.
"""
def test_encode_traces_json(self):
# test encoding for JSON 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 = JSONEncoder()
spans = encoder.encode_traces(traces)
items = json.loads(spans)
# test the encoded output that should be a string
# and the output must be flatten
assert isinstance(spans, string_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 'client.testing' == items[i][j]['name']
def test_join_encoded_json(self):
# test encoding for JSON 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 = JSONEncoder()
# Encode each 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 resulting data
items = json.loads(data)
# test the encoded output that should be a string
# and the output must be flatten
assert isinstance(data, string_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 'client.testing' == items[i][j]['name']
def test_encode_traces_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()
spans = encoder.encode_traces(traces)
items = msgpack.unpackb(spans)
# test the encoded output that should be a string
# and the output must be flatten
assert isinstance(spans, 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']
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']