import mock import pytest import unittest import opentracing from flask import Flask from flask_opentracing import FlaskTracing class TestValues(unittest.TestCase): def test_tracer(self): tracer = opentracing.Tracer() tracing = FlaskTracing(tracer) assert tracing.tracer is tracer assert tracing.tracer is tracing._tracer assert tracing._trace_all_requests is False def test_global_tracer(self): tracing = FlaskTracing() with mock.patch('opentracing.tracer'): assert tracing.tracer is opentracing.tracer opentracing.tracer = object() assert tracing.tracer is opentracing.tracer def test_trace_all_requests(self): app = Flask('dummy_app') tracing = FlaskTracing(app=app) assert tracing._trace_all_requests is True tracing = FlaskTracing(app=app, trace_all_requests=False) assert tracing._trace_all_requests is False def test_trace_all_requests_no_app(self): # when trace_all_requests is True, an app object is *required* with pytest.raises(ValueError): FlaskTracing(trace_all_requests=True) def test_start_span_invalid(self): with pytest.raises(ValueError): FlaskTracing(start_span_cb=0)