Exemplo n.º 1
0
 def test_stopping_logs_errors_when_closing_connections(self):
     service = RegionService(sentinel.ipcWorker)
     service.starting = Deferred()
     service.starting.addErrback(
         lambda failure: failure.trap(CancelledError))
     service.factory.protocol = HandshakingRegionServer
     connections = {
         service.factory.buildProtocol(None),
         service.factory.buildProtocol(None),
     }
     for conn in connections:
         transport = self.patch(conn, "transport")
         transport.loseConnection.side_effect = OSError("broken")
         # Pretend it's already connected.
         service.connections[conn.ident].add(conn)
     logger = self.useFixture(TwistedLoggerFixture())
     # stopService() completes without returning an error.
     yield service.stopService()
     # Connection-specific errors are logged.
     self.assertDocTestMatches(
         """\
         Failure when closing RPC connection.
         Traceback (most recent call last):
         ...
         builtins.OSError: broken
         ...
         Failure when closing RPC connection.
         Traceback (most recent call last):
         ...
         builtins.OSError: broken
         """,
         logger.dump(),
     )
Exemplo n.º 2
0
 def test_stopping_closes_connections_cleanly(self):
     service = RegionService(sentinel.ipcWorker)
     service.starting = Deferred()
     service.starting.addErrback(
         lambda failure: failure.trap(CancelledError))
     service.factory.protocol = HandshakingRegionServer
     connections = {
         service.factory.buildProtocol(None),
         service.factory.buildProtocol(None),
     }
     for conn in connections:
         # Pretend it's already connected.
         service.connections[conn.ident].add(conn)
     transports = {self.patch(conn, "transport") for conn in connections}
     yield service.stopService()
     self.assertThat(
         transports,
         AllMatch(
             AfterPreprocessing(attrgetter("loseConnection"),
                                MockCalledOnceWith())))