Skip to content

test_routes_server_response

Tests for routes server response framing behavior.

Classes

RoutesServerWriteResponseTests

Bases: TestCase

Functions

test_sets_content_length_for_large_json_payload()
Source code in pyrevitlib/pyrevit/unittests/test_routes_server_response.py
def test_sets_content_length_for_large_json_payload(self):
    data = "x" * 4096
    parsed = _FakeResponseObject(
        status=base.OK,
        data=data,
        headers={"Content-Type": "application/json"},
    )

    result = self._run_write_response(parsed)

    self.assertEqual([base.OK], result.statuses)
    self.assertEqual(1, result.end_headers_calls)
    self.assertEqual(data.encode("utf-8"), result.wfile.writes[0])
    self.assertIn(
        ("Content-Length", str(len(data.encode("utf-8")))), result.headers
    )
test_encodes_string_body_as_utf8_bytes()
Source code in pyrevitlib/pyrevit/unittests/test_routes_server_response.py
def test_encodes_string_body_as_utf8_bytes(self):
    data = u"caf\u00e9"
    parsed = _FakeResponseObject(
        status=base.OK,
        data=data,
        headers={"Content-Type": "application/json"},
    )

    result = self._run_write_response(parsed)
    expected = data.encode("utf-8")

    self.assertEqual(expected, result.wfile.writes[0])
    self.assertIn(("Content-Length", str(len(expected))), result.headers)
test_writes_newline_when_body_is_none()
Source code in pyrevitlib/pyrevit/unittests/test_routes_server_response.py
def test_writes_newline_when_body_is_none(self):
    parsed = _FakeResponseObject(status=base.NO_CONTENT, data=None, headers={})

    result = self._run_write_response(parsed)

    self.assertEqual([base.NO_CONTENT], result.statuses)
    self.assertEqual([b"\n"], result.wfile.writes)
    self.assertIn(("Content-Length", "1"), result.headers)
    self.assertEqual(1, result.end_headers_calls)
test_calls_end_headers_without_custom_headers()
Source code in pyrevitlib/pyrevit/unittests/test_routes_server_response.py
def test_calls_end_headers_without_custom_headers(self):
    parsed = _FakeResponseObject(status=base.OK, data="ok", headers={})

    result = self._run_write_response(parsed)

    self.assertEqual(1, result.end_headers_calls)
    self.assertEqual([b"ok"], result.wfile.writes)
test_overrides_existing_content_length_header()
Source code in pyrevitlib/pyrevit/unittests/test_routes_server_response.py
def test_overrides_existing_content_length_header(self):
    data = "abc123"
    parsed = _FakeResponseObject(
        status=base.OK,
        data=data,
        headers={
            "Content-Type": "application/json",
            "Content-Length": "99999",
        },
    )

    result = self._run_write_response(parsed)

    content_length_headers = [
        pair for pair in result.headers if pair[0].lower() == "content-length"
    ]
    self.assertEqual(1, len(content_length_headers))
    self.assertEqual(str(len(data.encode("utf-8"))), content_length_headers[0][1])