summary refs log tree commit diff
path: root/tests/server.py
diff options
context:
space:
mode:
authorRichard van der Hoff <1389908+richvdh@users.noreply.github.com>2020-11-16 18:21:47 +0000
committerGitHub <noreply@github.com>2020-11-16 18:21:47 +0000
commitf125895475aeee9447f3988ecbd8bfd1836545bf (patch)
treec8089efeb11c3707e6b5cc23a825d794c94728fb /tests/server.py
parentGeneralise _locally_reject_invite (#8751) (diff)
downloadsynapse-f125895475aeee9447f3988ecbd8bfd1836545bf.tar.xz
Move `wait_until_result` into `FakeChannel` (#8758)
FakeChannel has everything we need, and this more accurately models the real
flow.
Diffstat (limited to 'tests/server.py')
-rw-r--r--tests/server.py42
1 files changed, 20 insertions, 22 deletions
diff --git a/tests/server.py b/tests/server.py
index ef03109a6c..18cb8b2d72 100644
--- a/tests/server.py
+++ b/tests/server.py
@@ -117,6 +117,25 @@ class FakeChannel:
     def transport(self):
         return self
 
+    def await_result(self, timeout: int = 100) -> None:
+        """
+        Wait until the request is finished.
+        """
+        self._reactor.run()
+        x = 0
+
+        while not self.result.get("done"):
+            # If there's a producer, tell it to resume producing so we get content
+            if self._producer:
+                self._producer.resumeProducing()
+
+            x += 1
+
+            if x > timeout:
+                raise TimedOutException("Timed out waiting for request to finish.")
+
+            self._reactor.advance(0.1)
+
 
 class FakeSite:
     """
@@ -225,30 +244,9 @@ def make_request(
     return req, channel
 
 
-def wait_until_result(clock, request, timeout=100):
-    """
-    Wait until the request is finished.
-    """
-    clock.run()
-    x = 0
-
-    while not request.finished:
-
-        # If there's a producer, tell it to resume producing so we get content
-        if request._channel._producer:
-            request._channel._producer.resumeProducing()
-
-        x += 1
-
-        if x > timeout:
-            raise TimedOutException("Timed out waiting for request to finish.")
-
-        clock.advance(0.1)
-
-
 def render(request, resource, clock):
     request.render(resource)
-    wait_until_result(clock, request)
+    request._channel.await_result()
 
 
 @implementer(IReactorPluggableNameResolver)