mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-07-30 05:32:30 +08:00
62 lines
1.5 KiB
Python
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
|