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