mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-07-29 21:23:55 +08:00
Use HTTP mock server for tornado tests (#1855)
* Use HTTP mock server for tornado tests Fixes #1681 * Fix lint
This commit is contained in:
@ -15,7 +15,11 @@
|
|||||||
import pyramid.httpexceptions as exc
|
import pyramid.httpexceptions as exc
|
||||||
from pyramid.response import Response
|
from pyramid.response import Response
|
||||||
from werkzeug.test import Client
|
from werkzeug.test import Client
|
||||||
from werkzeug.wrappers import BaseResponse
|
|
||||||
|
# opentelemetry-instrumentation-pyramid uses werkzeug==0.16.1 which has
|
||||||
|
# werkzeug.wrappers.BaseResponse. This is not the case for newer versions of
|
||||||
|
# werkzeug like the one lint uses.
|
||||||
|
from werkzeug.wrappers import BaseResponse # pylint: disable=no-name-in-module
|
||||||
|
|
||||||
|
|
||||||
class InstrumentationTest:
|
class InstrumentationTest:
|
||||||
|
@ -37,6 +37,7 @@ instruments = [
|
|||||||
test = [
|
test = [
|
||||||
"opentelemetry-instrumentation-tornado[instruments]",
|
"opentelemetry-instrumentation-tornado[instruments]",
|
||||||
"opentelemetry-test-utils == 0.40b0.dev",
|
"opentelemetry-test-utils == 0.40b0.dev",
|
||||||
|
"http-server-mock"
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.entry-points.opentelemetry_instrumentor]
|
[project.entry-points.opentelemetry_instrumentor]
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
from unittest.mock import Mock, patch
|
from unittest.mock import Mock, patch
|
||||||
|
|
||||||
|
from http_server_mock import HttpServerMock
|
||||||
from tornado.testing import AsyncHTTPTestCase
|
from tornado.testing import AsyncHTTPTestCase
|
||||||
|
|
||||||
from opentelemetry import trace
|
from opentelemetry import trace
|
||||||
@ -494,32 +495,35 @@ class TestTornadoInstrumentation(TornadoTest, WsgiTestBase):
|
|||||||
self.memory_exporter.clear()
|
self.memory_exporter.clear()
|
||||||
set_global_response_propagator(orig)
|
set_global_response_propagator(orig)
|
||||||
|
|
||||||
# todo(srikanthccv): fix this test
|
def test_credential_removal(self):
|
||||||
# this test is making request to real httpbin.org/status/200 which
|
app = HttpServerMock("test_credential_removal")
|
||||||
# is not a good idea as it can fail due to availability of the
|
|
||||||
# service.
|
|
||||||
# def test_credential_removal(self):
|
|
||||||
# response = self.fetch(
|
|
||||||
# "http://username:password@httpbin.org/status/200"
|
|
||||||
# )
|
|
||||||
# self.assertEqual(response.code, 200)
|
|
||||||
|
|
||||||
# spans = self.sorted_spans(self.memory_exporter.get_finished_spans())
|
@app.route("/status/200")
|
||||||
# self.assertEqual(len(spans), 1)
|
def index():
|
||||||
# client = spans[0]
|
return "hello"
|
||||||
|
|
||||||
# self.assertEqual(client.name, "GET")
|
with app.run("localhost", 5000):
|
||||||
# self.assertEqual(client.kind, SpanKind.CLIENT)
|
response = self.fetch(
|
||||||
# self.assertSpanHasAttributes(
|
"http://username:password@localhost:5000/status/200"
|
||||||
# client,
|
)
|
||||||
# {
|
self.assertEqual(response.code, 200)
|
||||||
# SpanAttributes.HTTP_URL: "http://httpbin.org/status/200",
|
|
||||||
# SpanAttributes.HTTP_METHOD: "GET",
|
|
||||||
# SpanAttributes.HTTP_STATUS_CODE: 200,
|
|
||||||
# },
|
|
||||||
# )
|
|
||||||
|
|
||||||
# self.memory_exporter.clear()
|
spans = self.sorted_spans(self.memory_exporter.get_finished_spans())
|
||||||
|
self.assertEqual(len(spans), 1)
|
||||||
|
client = spans[0]
|
||||||
|
|
||||||
|
self.assertEqual(client.name, "GET")
|
||||||
|
self.assertEqual(client.kind, SpanKind.CLIENT)
|
||||||
|
self.assertSpanHasAttributes(
|
||||||
|
client,
|
||||||
|
{
|
||||||
|
SpanAttributes.HTTP_URL: "http://localhost:5000/status/200",
|
||||||
|
SpanAttributes.HTTP_METHOD: "GET",
|
||||||
|
SpanAttributes.HTTP_STATUS_CODE: 200,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
self.memory_exporter.clear()
|
||||||
|
|
||||||
|
|
||||||
class TestTornadoInstrumentationWithXHeaders(TornadoTest):
|
class TestTornadoInstrumentationWithXHeaders(TornadoTest):
|
||||||
|
Reference in New Issue
Block a user