Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
asgiref==3.8.1
Deprecated==1.2.14
httpretty==1.1.4
pook==2.1.6
iniconfig==2.0.0
packaging==24.0
pluggy==1.5.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from urllib import request
from urllib.parse import urlencode

import httpretty
import pook
from pytest import mark

from opentelemetry.instrumentation._semconv import (
Expand Down Expand Up @@ -67,16 +67,16 @@ def setUp(self):
_OpenTelemetrySemanticConventionStability._initialized = False
self.env_patch.start()
URLLibInstrumentor().instrument()
httpretty.enable()
httpretty.register_uri(httpretty.GET, self.URL, body=b"Hello!")
httpretty.register_uri(
httpretty.POST, self.URL_POST, body=b"Hello World!"
)
pook.on()
pook.get(self.URL, reply=200, response_body=b"Hello!").persist()
pook.post(
self.URL_POST, reply=200, response_body=b"Hello World!"
).persist()

def tearDown(self):
super().tearDown()
URLLibInstrumentor().uninstrument()
httpretty.disable()
pook.off()

# Return Sequence with one histogram
def create_histogram_data_points(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from urllib.error import HTTPError
from urllib.request import OpenerDirector

import httpretty
import pook

import opentelemetry.instrumentation.urllib # pylint: disable=no-name-in-module,import-error
from opentelemetry import trace
Expand Down Expand Up @@ -96,37 +96,21 @@ def setUp(self):
self.exclude_patch.start()

URLLibInstrumentor().instrument()
httpretty.enable()
httpretty.register_uri(httpretty.GET, self.URL, body=b"Hello!")
httpretty.register_uri(
httpretty.GET,
self.URL_TIMEOUT,
body=self.timeout_exception_callback,
)
httpretty.register_uri(
httpretty.GET,
self.URL_EXCEPTION,
body=self.base_exception_callback,
)
httpretty.register_uri(
httpretty.GET,
"http://mock/status/500",
status=500,
pook.on()
self.main_mock = pook.get(
self.URL, reply=200, response_body=b"Hello!"
).persist()
pook.get(self.URL_TIMEOUT).persist().error(socket.timeout())
pook.get(self.URL_EXCEPTION).persist().error(
Exception("test") # pylint: disable=broad-exception-raised
)
pook.get("http://mock/status/500", reply=500).persist()

# pylint: disable=invalid-name
def tearDown(self):
super().tearDown()
URLLibInstrumentor().uninstrument()
httpretty.disable()

@staticmethod
def timeout_exception_callback(*_, **__):
raise socket.timeout

@staticmethod
def base_exception_callback(*_, **__):
raise Exception("test") # pylint: disable=broad-exception-raised
pook.off()

def assert_span(self, exporter=None, num_spans=1):
if exporter is None:
Expand Down Expand Up @@ -225,11 +209,7 @@ def test_basic_both_semconv(self):

def test_excluded_urls_explicit(self):
url_201 = "http://mock/status/201"
httpretty.register_uri(
httpretty.GET,
url_201,
status=201,
)
pook.get(url_201, reply=201)

URLLibInstrumentor().uninstrument()
URLLibInstrumentor().instrument(excluded_urls=".*/201")
Expand All @@ -240,11 +220,7 @@ def test_excluded_urls_explicit(self):

def test_excluded_urls_from_env(self):
url = "http://localhost/env_excluded_arg/123"
httpretty.register_uri(
httpretty.GET,
url,
status=200,
)
pook.get(url, reply=200)

URLLibInstrumentor().uninstrument()
URLLibInstrumentor().instrument()
Expand All @@ -255,11 +231,7 @@ def test_excluded_urls_from_env(self):

def test_not_foundbasic(self):
url_404 = "http://mock/status/404/"
httpretty.register_uri(
httpretty.GET,
url_404,
status=404,
)
pook.get(url_404, reply=404)
exception = None
try:
self.perform_request(url_404)
Expand All @@ -279,11 +251,7 @@ def test_not_foundbasic(self):

def test_not_foundbasic_new_semconv(self):
url_404 = "http://mock/status/404/"
httpretty.register_uri(
httpretty.GET,
url_404,
status=404,
)
pook.get(url_404, reply=404)
exception = None
try:
self.perform_request(url_404)
Expand All @@ -303,11 +271,7 @@ def test_not_foundbasic_new_semconv(self):

def test_not_foundbasic_both_semconv(self):
url_404 = "http://mock/status/404/"
httpretty.register_uri(
httpretty.GET,
url_404,
status=404,
)
pook.get(url_404, reply=404)
exception = None
try:
self.perform_request(url_404)
Expand Down Expand Up @@ -416,12 +380,18 @@ def test_distributed_context(self):
previous_propagator = get_global_textmap()
try:
set_global_textmap(MockTextMapPropagator())
captured_headers = {}

def capture_request_headers(req, _):
captured_headers.update(dict(req.headers))

self.main_mock.callback(capture_request_headers)
result = self.perform_request(self.URL)
self.assertEqual(result.read(), b"Hello!")

span = self.assert_span()

headers_ = dict(httpretty.last_request().headers)
headers_ = dict(captured_headers)
headers = {}
for k, v in headers_.items():
headers[k.lower()] = v
Expand Down Expand Up @@ -570,8 +540,11 @@ def test_custom_response_headers_captured(self):
"X-Another-Header": "another-value",
}
url = "http://mock//capture_headers"
httpretty.register_uri(
httpretty.GET, url, body="Hello!", adding_headers=response_headers
pook.get(
url,
reply=200,
response_body="Hello!",
response_headers=response_headers,
)
self.perform_request(url)

Expand Down Expand Up @@ -625,8 +598,11 @@ def test_sensitive_headers_sanitized(self):
"X-Secret": "secret",
}
url = "http://mock//capture_headers"
httpretty.register_uri(
httpretty.GET, url, body="Hello!", adding_headers=response_headers
pook.get(
url,
reply=200,
response_body="Hello!",
response_headers=response_headers,
)
self.perform_request(
url,
Expand Down Expand Up @@ -668,8 +644,11 @@ def test_custom_headers_with_regex(self):
"X-Other-Response-Header": "other-value",
}
url = "http://mock//capture_headers"
httpretty.register_uri(
httpretty.GET, url, body="Hello!", adding_headers=response_headers
pook.get(
url,
reply=200,
response_body="Hello!",
response_headers=response_headers,
)
self.perform_request(
url,
Expand Down Expand Up @@ -714,8 +693,11 @@ def test_custom_headers_case_insensitive(self):

response_headers = {"X-ReSPoNse-HeaDER": "custom-value"}
url = "http://mock//capture_headers"
httpretty.register_uri(
httpretty.GET, url, body="Hello!", adding_headers=response_headers
pook.get(
url,
reply=200,
response_body="Hello!",
response_headers=response_headers,
)
self.perform_request(
url,
Expand Down Expand Up @@ -745,8 +727,11 @@ def test_standard_http_headers_captured(self):
"Server": "TestServer/1.0",
}
url = "http://mock//capture_headers"
httpretty.register_uri(
httpretty.GET, url, body="Hello!", adding_headers=response_headers
pook.get(
url,
reply=200,
response_body="Hello!",
response_headers=response_headers,
)
self.perform_request(
url,
Expand Down Expand Up @@ -813,8 +798,11 @@ def test_capture_all_response_headers(self):
"X-Response-Three": "value3",
}
url = "http://mock//capture_headers"
httpretty.register_uri(
httpretty.GET, url, body="Hello!", adding_headers=response_headers
pook.get(
url,
reply=200,
response_body="Hello!",
response_headers=response_headers,
)
self.perform_request(url)

Expand Down Expand Up @@ -875,8 +863,11 @@ def test_capture_and_sanitize_environment_variables(self):
"X-Response-Two": "value2",
}
url = "http://mock//capture_headers"
httpretty.register_uri(
httpretty.GET, url, body="Hello!", adding_headers=response_headers
pook.get(
url,
reply=200,
response_body="Hello!",
response_headers=response_headers,
)
self.perform_request(
url, headers=[("x-request-one", "one"), ("x-request-two", "two")]
Expand Down
Loading