Esempio n. 1
0
 def test_default_tracer(self):
     tracer_provider = trace.DefaultTracerProvider()
     tracer = tracer_provider.get_tracer(__name__)
     with tracer.start_span("test") as span:
         self.assertEqual(span.get_context(), trace.INVALID_SPAN_CONTEXT)
         self.assertEqual(span, trace.INVALID_SPAN)
         self.assertIs(span.is_recording(), False)
         with tracer.start_span("test2") as span2:
             self.assertEqual(span2.get_context(),
                              trace.INVALID_SPAN_CONTEXT)
             self.assertEqual(span2, trace.INVALID_SPAN)
             self.assertIs(span2.is_recording(), False)
    def setUp(self):
        self.span_attrs = {}
        self.tracer_provider = trace.DefaultTracerProvider()
        self.tracer = trace.DefaultTracer()
        self.get_tracer_patcher = mock.patch.object(
            self.tracer_provider,
            "get_tracer",
            autospec=True,
            spec_set=True,
            return_value=self.tracer,
        )
        self.get_tracer = self.get_tracer_patcher.start()
        self.span_context_manager = mock.MagicMock()
        self.span = mock.create_autospec(trace.Span, spec_set=True)
        self.span.get_context.return_value = trace.INVALID_SPAN_CONTEXT
        self.span_context_manager.__enter__.return_value = self.span

        def setspanattr(key, value):
            self.assertIsInstance(key, str)
            self.span_attrs[key] = value

        self.span.set_attribute = setspanattr
        self.start_span_patcher = mock.patch.object(
            self.tracer,
            "start_as_current_span",
            autospec=True,
            spec_set=True,
            return_value=self.span_context_manager,
        )

        mocked_response = requests.models.Response()
        mocked_response.status_code = 200
        mocked_response.reason = "Roger that!"
        self.send_patcher = mock.patch.object(
            requests.Session,
            "send",
            autospec=True,
            spec_set=True,
            return_value=mocked_response,
        )

        self.start_as_current_span = self.start_span_patcher.start()
        self.send = self.send_patcher.start()

        opentelemetry.ext.http_requests.enable(self.tracer_provider)
        distver = pkg_resources.get_distribution(
            "opentelemetry-ext-http-requests").version
        self.get_tracer.assert_called_with(
            opentelemetry.ext.http_requests.__name__, distver)