Home / Class/ RedirectSession Class — requests Architecture

RedirectSession Class — requests Architecture

Architecture documentation for the RedirectSession class in test_requests.py from the requests codebase.

Entity Profile

Dependency Diagram

graph TD
  10abb140_ad40_5285_21f7_5b6e4a140a93["RedirectSession"]
  29cd946c_8c0d_e37c_acb9_dfb2b83bf42b["SessionRedirectMixin"]
  10abb140_ad40_5285_21f7_5b6e4a140a93 -->|extends| 29cd946c_8c0d_e37c_acb9_dfb2b83bf42b
  69ebfd6f_8f0c_4586_0c19_2c348e1a42a2["test_requests.py"]
  10abb140_ad40_5285_21f7_5b6e4a140a93 -->|defined in| 69ebfd6f_8f0c_4586_0c19_2c348e1a42a2
  6d82469e_7369_48aa_08d7_ca0632449489["__init__()"]
  10abb140_ad40_5285_21f7_5b6e4a140a93 -->|method| 6d82469e_7369_48aa_08d7_ca0632449489
  772251a3_91b5_d6a8_857f_bb938ed045f7["send()"]
  10abb140_ad40_5285_21f7_5b6e4a140a93 -->|method| 772251a3_91b5_d6a8_857f_bb938ed045f7
  ccc37729_feb7_52c6_708d_eea515a31776["build_response()"]
  10abb140_ad40_5285_21f7_5b6e4a140a93 -->|method| ccc37729_feb7_52c6_708d_eea515a31776
  2112e280_1aad_6146_ba17_10eb66ffc148["_build_raw()"]
  10abb140_ad40_5285_21f7_5b6e4a140a93 -->|method| 2112e280_1aad_6146_ba17_10eb66ffc148

Relationship Graph

Source Code

tests/test_requests.py lines 2554–2583

class RedirectSession(SessionRedirectMixin):
    def __init__(self, order_of_redirects):
        self.redirects = order_of_redirects
        self.calls = []
        self.max_redirects = 30
        self.cookies = {}
        self.trust_env = False

    def send(self, *args, **kwargs):
        self.calls.append(SendCall(args, kwargs))
        return self.build_response()

    def build_response(self):
        request = self.calls[-1].args[0]
        r = requests.Response()

        try:
            r.status_code = int(self.redirects.pop(0))
        except IndexError:
            r.status_code = 200

        r.headers = CaseInsensitiveDict({"Location": "/"})
        r.raw = self._build_raw()
        r.request = request
        return r

    def _build_raw(self):
        string = StringIO.StringIO("")
        setattr(string, "release_conn", lambda *args: args)
        return string

Domain

Frequently Asked Questions

What is the RedirectSession class?
RedirectSession is a class in the requests codebase, defined in tests/test_requests.py.
Where is RedirectSession defined?
RedirectSession is defined in tests/test_requests.py at line 2554.
What does RedirectSession extend?
RedirectSession extends SessionRedirectMixin.

Analyze Your Own Codebase

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

Try Supermodel Free