Files
2020-04-08 10:39:44 -07:00

62 lines
1.5 KiB
Python

"""
pytest local plugin used to automatically make the following fixtures
available for all tests in this directory
https://docs.pytest.org/en/latest/writing_plugins.html#testing-plugins
"""
import pytest
from ddtrace.opentracer import Tracer, set_global_tracer
from tests.test_tracer import get_dummy_tracer
@pytest.fixture()
def ot_tracer_factory():
"""Fixture which returns an opentracer ready to use for testing."""
def make_ot_tracer(
service_name='my_svc', config=None, scope_manager=None, context_provider=None
):
config = config or {}
tracer = Tracer(
service_name=service_name, config=config, scope_manager=scope_manager
)
# similar to how we test the ddtracer, use a dummy tracer
dd_tracer = get_dummy_tracer()
if context_provider:
dd_tracer.configure(context_provider=context_provider)
# attach the dummy tracer to the opentracer
tracer._dd_tracer = dd_tracer
return tracer
return make_ot_tracer
@pytest.fixture()
def ot_tracer(ot_tracer_factory):
"""Fixture for a default opentracer."""
return ot_tracer_factory()
@pytest.fixture()
def global_tracer(ot_tracer):
"""A function similar to one OpenTracing users would write to initialize
their OpenTracing tracer.
"""
set_global_tracer(ot_tracer)
return ot_tracer
@pytest.fixture()
def writer(ot_tracer):
return ot_tracer._dd_tracer.writer
@pytest.fixture()
def dd_tracer(ot_tracer):
return ot_tracer._dd_tracer