Esempio n. 1
0
    def test_urllib_request_object(self):
        """
        When making a request via urllib.request.urlopen
           with a urllib.request.Request object
               we return the original response
               we capture a span for the request
        """
        req = Request(URL_200)
        with override_global_tracer(self.tracer):
            resp = urlopen(req)

        self.assertEqual(self.to_str(resp.read()), "")
        self.assertEqual(resp.getcode(), 200)

        spans = self.pop_spans()
        self.assertEqual(len(spans), 1)
        span = spans[0]
        self.assert_is_not_measured(span)
        self.assertEqual(span.span_type, "http")
        self.assertIsNone(span.service)
        self.assertEqual(span.name, self.SPAN_NAME)
        self.assertEqual(span.error, 0)
        self.assertEqual(span.get_tag("http.method"), "GET")
        assert_span_http_status_code(span, 200)
        self.assertEqual(span.get_tag("http.url"), URL_200)
Esempio n. 2
0
        def test_urllib_request_https(self):
            """
            When making a request via urllib.urlopen
               when making an HTTPS connection
                   we return the original response
                   we capture a span for the request
            """
            with override_global_tracer(self.tracer):
                resp = urllib.urlopen("https://httpbin.org/status/200")

            self.assertEqual(resp.read(), "")
            self.assertEqual(resp.getcode(), 200)

            spans = self.pop_spans()
            self.assertEqual(len(spans), 1)
            span = spans[0]
            self.assert_is_not_measured(span)
            self.assertEqual(span.span_type, "http")
            self.assertIsNone(span.service)
            self.assertEqual(span.name, "httplib.request")
            self.assertEqual(span.error, 0)
            self.assertEqual(span.get_tag("http.method"), "GET")
            assert_span_http_status_code(span, 200)
            self.assertEqual(span.get_tag("http.url"),
                             "https://httpbin.org/status/200")
Esempio n. 3
0
    def test_correlation_identifiers_without_trace(self):
        # ensures `None` is returned if no Traces are active
        with override_global_tracer(self.tracer):
            trace_id, span_id = helpers.get_correlation_ids()

        self.assertIsNone(trace_id)
        self.assertIsNone(span_id)
Esempio n. 4
0
    def test_correlation_identifiers_missing_context(self):
        # ensures we return `None` if there is no current context
        self.tracer.current_trace_context = mock.MagicMock(return_value=None)

        with override_global_tracer(self.tracer):
            trace_id, span_id = helpers.get_correlation_ids()

        self.assertIsNone(trace_id)
        self.assertIsNone(span_id)
Esempio n. 5
0
    def test_correlation_identifiers_with_disabled_trace(self):
        # ensures `None` is returned if tracer is disabled
        with override_global_tracer(self.tracer):
            self.tracer.enabled = False
            self.tracer.trace("MockSpan")
            trace_id, span_id = helpers.get_correlation_ids()

        self.assertIsNone(trace_id)
        self.assertIsNone(span_id)
Esempio n. 6
0
    def test_correlation_identifiers(self):
        # ensures the right correlation identifiers are
        # returned when a Trace is active
        with override_global_tracer(self.tracer):
            span = self.tracer.trace("MockSpan")
            active_trace_id, active_span_id = span.trace_id, span.span_id
            trace_id, span_id = helpers.get_correlation_ids()

        self.assertEqual(trace_id, active_trace_id)
        self.assertEqual(span_id, active_span_id)
Esempio n. 7
0
    def test_requests_module_200(self):
        # ensure the requests API is instrumented even without
        # using a `Session` directly
        with override_global_tracer(self.tracer):
            out = requests.get(URL_200)
            assert out.status_code == 200
            # validation
            spans = self.pop_spans()
            assert len(spans) == 1
            s = spans[0]

            assert_is_measured(s)
            assert s.get_tag(http.METHOD) == "GET"
            assert_span_http_status_code(s, 200)
            assert s.error == 0
            assert s.span_type == "http"