Home / File/ test_lowlevel.py — requests Source File

test_lowlevel.py — requests Source File

Architecture documentation for test_lowlevel.py, a python file in the requests codebase. 9 imports, 0 dependents.

File python CoreAPI SessionLifecycle 9 imports 15 functions

Entity Profile

Dependency Diagram

graph LR
  48561d17_8bd1_bf20_5710_ec3053a534d2["test_lowlevel.py"]
  401710e9_48ff_8931_a59f_9cf0334b86f2["utils.py"]
  48561d17_8bd1_bf20_5710_ec3053a534d2 --> 401710e9_48ff_8931_a59f_9cf0334b86f2
  eb4927de_0f5a_e91b_5675_eee3babf26c6["override_environ"]
  48561d17_8bd1_bf20_5710_ec3053a534d2 --> eb4927de_0f5a_e91b_5675_eee3babf26c6
  d04f5b22_a751_5438_e937_aa8b0666d15e["threading"]
  48561d17_8bd1_bf20_5710_ec3053a534d2 --> d04f5b22_a751_5438_e937_aa8b0666d15e
  b820826b_04e7_9e1b_bbf6_b336eaff9a23["pytest"]
  48561d17_8bd1_bf20_5710_ec3053a534d2 --> b820826b_04e7_9e1b_bbf6_b336eaff9a23
  ce06e854_c78b_b510_291a_dbc144a59aff["requests"]
  48561d17_8bd1_bf20_5710_ec3053a534d2 --> ce06e854_c78b_b510_291a_dbc144a59aff
  a3acf0a1_ed03_6384_3bc6_273b8a1f8271["requests.compat"]
  48561d17_8bd1_bf20_5710_ec3053a534d2 --> a3acf0a1_ed03_6384_3bc6_273b8a1f8271
  1299f040_d82e_36bb_76ee_892d203f2f6a["server.py"]
  48561d17_8bd1_bf20_5710_ec3053a534d2 --> 1299f040_d82e_36bb_76ee_892d203f2f6a
  b9ecf8db_ec54_4dfb_626c_b3769674f676["Server"]
  48561d17_8bd1_bf20_5710_ec3053a534d2 --> b9ecf8db_ec54_4dfb_626c_b3769674f676
  7ab3c4d7_8531_6cbe_e871_9880cb1ee6de["consume_socket_content"]
  48561d17_8bd1_bf20_5710_ec3053a534d2 --> 7ab3c4d7_8531_6cbe_e871_9880cb1ee6de
  style 48561d17_8bd1_bf20_5710_ec3053a534d2 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import threading

import pytest

import requests
from requests.compat import JSONDecodeError
from tests.testserver.server import Server, consume_socket_content

from .utils import override_environ


def echo_response_handler(sock):
    """Simple handler that will take request and echo it back to requester."""
    request_content = consume_socket_content(sock, timeout=0.5)

    text_200 = (
        b"HTTP/1.1 200 OK\r\n"
        b"Content-Length: %d\r\n\r\n"
        b"%s"
    ) % (len(request_content), request_content)
    sock.send(text_200)


def test_chunked_upload():
    """can safely send generators"""
    close_server = threading.Event()
    server = Server.basic_response_server(wait_to_close_event=close_server)
    data = iter([b"a", b"b", b"c"])

    with server as (host, port):
        url = f"http://{host}:{port}/"
        r = requests.post(url, data=data, stream=True)
        close_server.set()  # release server block

    assert r.status_code == 200
    assert r.request.headers["Transfer-Encoding"] == "chunked"


def test_chunked_encoding_error():
    """get a ChunkedEncodingError if the server returns a bad response"""

    def incomplete_chunked_response_handler(sock):
        request_content = consume_socket_content(sock, timeout=0.5)

        # The server never ends the request and doesn't provide any valid chunks
        sock.send(
            b"HTTP/1.1 200 OK\r\n"
            b"Transfer-Encoding: chunked\r\n"
        )

        return request_content

    close_server = threading.Event()
    server = Server(incomplete_chunked_response_handler)

    with server as (host, port):
        url = f"http://{host}:{port}/"
        with pytest.raises(requests.exceptions.ChunkedEncodingError):
            requests.get(url)
        close_server.set()  # release server block
// ... (369 more lines)

Domain

Subdomains

Dependencies

Frequently Asked Questions

What does test_lowlevel.py do?
test_lowlevel.py is a source file in the requests codebase, written in python. It belongs to the CoreAPI domain, SessionLifecycle subdomain.
What functions are defined in test_lowlevel.py?
test_lowlevel.py defines 15 function(s): echo_response_handler, scheme, test_chunked_encoding_error, test_chunked_upload, test_chunked_upload_doesnt_skip_host_header, test_chunked_upload_uses_only_specified_host_header, test_conflicting_content_lengths, test_digestauth_401_count_reset_on_redirect, test_digestauth_401_only_sent_once, test_digestauth_only_on_4xx, and 5 more.
What does test_lowlevel.py depend on?
test_lowlevel.py imports 9 module(s): Server, consume_socket_content, override_environ, pytest, requests, requests.compat, server.py, threading, and 1 more.
Where is test_lowlevel.py in the architecture?
test_lowlevel.py is located at tests/test_lowlevel.py (domain: CoreAPI, subdomain: SessionLifecycle, directory: tests).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free