summary refs log tree commit diff
path: root/tests/federation/transport
diff options
context:
space:
mode:
authorDavid Robertson <davidr@element.io>2022-11-01 13:07:54 +0000
committerGitHub <noreply@github.com>2022-11-01 13:07:54 +0000
commit5905ba12d0c652b77ffc677196c7e31addb0eedf (patch)
tree31219ce34956bf5092cc06fec604f2950922c77a /tests/federation/transport
parentRevert "Fix event size checks (#13710)" (diff)
downloadsynapse-5905ba12d0c652b77ffc677196c7e31addb0eedf.tar.xz
Run trial tests against Python 3.11 (#13812)
Diffstat (limited to 'tests/federation/transport')
-rw-r--r--tests/federation/transport/test_client.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/federation/transport/test_client.py b/tests/federation/transport/test_client.py
index dd4d1b56de..b84c74fc0e 100644
--- a/tests/federation/transport/test_client.py
+++ b/tests/federation/transport/test_client.py
@@ -15,6 +15,8 @@
 import json
 from unittest.mock import Mock
 
+import ijson.common
+
 from synapse.api.room_versions import RoomVersions
 from synapse.federation.transport.client import SendJoinParser
 from synapse.util import ExceptionBundle
@@ -117,8 +119,17 @@ class SendJoinParserTestCase(TestCase):
         coro_3 = Mock()
         coro_3.close = Mock(side_effect=RuntimeError("Couldn't close coro 3"))
 
+        original_coros = parser._coros
         parser._coros = [coro_1, coro_2, coro_3]
 
+        # Close the original coroutines. If we don't, when we garbage collect them
+        # they will throw, failing the test. (Oddly, this only started in CPython 3.11).
+        for coro in original_coros:
+            try:
+                coro.close()
+            except ijson.common.IncompleteJSONError:
+                pass
+
         # Send half of the data to the parser
         parser.write(serialisation[: len(serialisation) // 2])