summary refs log tree commit diff
path: root/tests/server.py
diff options
context:
space:
mode:
authorreivilibre <oliverw@matrix.org>2024-07-30 15:23:23 +0100
committerGitHub <noreply@github.com>2024-07-30 15:23:23 +0100
commitc56b070e6fdc1d3aa3452ea81fd13d0eb9f82aa8 (patch)
tree288849aca9d50e90b9bdd54490e50fc97874a008 /tests/server.py
parent1.111.0 (diff)
downloadsynapse-c56b070e6fdc1d3aa3452ea81fd13d0eb9f82aa8.tar.xz
Upgrade locked dependency on Twisted to 24.7.0rc1. (#17502)
I also update the tests and HTTP Proxy code to fix it for this new
Twisted release.

Pulls in fix for
https://github.com/twisted/twisted/security/advisories/GHSA-c8m8-j448-xjx7


Signed-off-by: Olivier 'reivilibre <oliverw@matrix.org>
Diffstat (limited to 'tests/server.py')
-rw-r--r--tests/server.py26
1 files changed, 22 insertions, 4 deletions
diff --git a/tests/server.py b/tests/server.py
index f1cd0f76be..38ca095073 100644
--- a/tests/server.py
+++ b/tests/server.py
@@ -198,17 +198,35 @@ class FakeChannel:
     def headers(self) -> Headers:
         if not self.result:
             raise Exception("No result yet.")
-        h = Headers()
-        for i in self.result["headers"]:
-            h.addRawHeader(*i)
+
+        h = self.result["headers"]
+        assert isinstance(h, Headers)
         return h
 
     def writeHeaders(
-        self, version: bytes, code: bytes, reason: bytes, headers: Headers
+        self,
+        version: bytes,
+        code: bytes,
+        reason: bytes,
+        headers: Union[Headers, List[Tuple[bytes, bytes]]],
     ) -> None:
         self.result["version"] = version
         self.result["code"] = code
         self.result["reason"] = reason
+
+        if isinstance(headers, list):
+            # Support prior to Twisted 24.7.0rc1
+            new_headers = Headers()
+            for k, v in headers:
+                assert isinstance(k, bytes), f"key is not of type bytes: {k!r}"
+                assert isinstance(v, bytes), f"value is not of type bytes: {v!r}"
+                new_headers.addRawHeader(k, v)
+            headers = new_headers
+
+        assert isinstance(
+            headers, Headers
+        ), f"headers are of the wrong type: {headers!r}"
+
         self.result["headers"] = headers
 
     def write(self, data: bytes) -> None: