|
| 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