Skip to content

Commit 7d40266

Browse files
committed
Add specific tests for requests.
While requests isn't instrumented directly, we do instrument it via urllib3. These tests do a basic verification of that.
1 parent 902ac90 commit 7d40266

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# coding=utf-8
2+
"""
3+
Test requests package is instrumented via urllib3 instrumentation.
4+
5+
We don't instrument the package directly, but urllib3 underneath.
6+
However, it's a good idea to verify it's working as expected.
7+
"""
8+
from __future__ import absolute_import, division, print_function, unicode_literals
9+
10+
import httpretty
11+
import requests
12+
13+
from scout_apm.instruments.urllib3 import ensure_installed
14+
15+
16+
def test_request(tracked_request):
17+
ensure_installed()
18+
with httpretty.enabled(allow_net_connect=False):
19+
httpretty.register_uri(
20+
httpretty.GET, "https://example.com/", body="Hello World!"
21+
)
22+
23+
session = requests.Session()
24+
response = session.get("https://example.com")
25+
26+
assert response.status_code == 200
27+
assert response.content == b"Hello World!"
28+
assert len(tracked_request.complete_spans) == 1
29+
span = tracked_request.complete_spans[0]
30+
assert span.operation == "HTTP/GET"
31+
assert span.tags["url"] == "https://example.com:443/"
32+
33+
34+
def test_second_request(tracked_request):
35+
ensure_installed()
36+
with tracked_request.span("Test"), httpretty.enabled(allow_net_connect=False):
37+
httpretty.register_uri(
38+
httpretty.GET, "https://example.com/foo", body="Hello World!"
39+
)
40+
httpretty.register_uri(
41+
httpretty.GET, "https://example.org/bar", body="Hello World!"
42+
)
43+
session = requests.Session()
44+
session.get("https://example.com/foo")
45+
session.get("https://example.org/bar")
46+
assert len(tracked_request.complete_spans) == 3
47+
assert (
48+
tracked_request.complete_spans[0].tags["url"] == "https://example.com:443/foo"
49+
)
50+
assert (
51+
tracked_request.complete_spans[1].tags["url"] == "https://example.org:443/bar"
52+
)

0 commit comments

Comments
 (0)