import tempfile
import os
import pytest
import time
def test_export_single_trace():
import otlp_arrow_library
with tempfile.TemporaryDirectory() as tmpdir:
library = otlp_arrow_library.PyOtlpLibrary(
output_dir=tmpdir,
write_interval_secs=1
)
trace_id = bytes([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])
span_id = bytes([1, 2, 3, 4, 5, 6, 7, 8])
span_dict = {
"trace_id": trace_id,
"span_id": span_id,
"name": "test-span",
"kind": "server",
"attributes": {
"service.name": "test-service",
"http.method": "GET"
}
}
library.export_trace(span_dict)
library.flush()
traces_dir = os.path.join(tmpdir, "otlp", "traces")
files = os.listdir(traces_dir)
assert len(files) > 0, "Expected at least one trace file to be created"
library.shutdown()
def test_export_multiple_traces():
import otlp_arrow_library
with tempfile.TemporaryDirectory() as tmpdir:
library = otlp_arrow_library.PyOtlpLibrary(
output_dir=tmpdir,
write_interval_secs=1
)
spans = []
for i in range(3):
trace_id = bytes([i] * 16)
span_id = bytes([i] * 8)
span_dict = {
"trace_id": trace_id,
"span_id": span_id,
"name": f"test-span-{i}",
"kind": "internal",
}
spans.append(span_dict)
library.export_traces(spans)
library.flush()
traces_dir = os.path.join(tmpdir, "otlp", "traces")
files = os.listdir(traces_dir)
assert len(files) > 0, "Expected at least one trace file to be created"
library.shutdown()
if __name__ == "__main__":
pytest.main([__file__])