Assorted functionality which is commonly useful when writing unit tests.

Class AccumulatingProtocol AccumulatingProtocol is an IProtocol implementation which collects the data delivered to it and can fire a Deferred when it is connected or disconnected.
Class LineSendingProtocol Undocumented
Class FakeDatagramTransport Undocumented
Class StringTransport A transport implementation which buffers data in memory and keeps track of its other state without providing any behavior.
Class StringTransportWithDisconnection A StringTransport which on disconnection will trigger the connection lost on the attached protocol.
Class StringIOWithoutClosing A BytesIO that can't be closed.
Class _FakePort A fake IListeningPort to be used in tests.
Class _FakeConnector A fake IConnector that allows us to inspect if it has been told to stop connecting.
Class MemoryReactor A fake reactor to be used in tests. This reactor doesn't actually do much that's useful yet. It accepts TCP connection setup attempts, but they will never succeed.
Class MemoryReactorClock Undocumented
Class RaisingMemoryReactor A fake reactor to be used in tests. It accepts TCP connection setup attempts, but they will fail.
Class NonStreamingProducer A pull producer which writes 10 times only.
Function waitUntilAllDisconnected Take a list of disconnecting protocols, callback a Deferred when they're all done.
Class EventLoggingObserver No summary
def waitUntilAllDisconnected(reactor, protocols): (source)

Take a list of disconnecting protocols, callback a Deferred when they're all done.

This is a hack to make some older tests less flaky, as ITransport.loseConnection is not atomic on all reactors (for example, the CoreFoundation, which sometimes takes a reactor turn for CFSocket to realise). New tests should either not use real sockets in testing, or take the advice in https://jml.io/pages/how-to-disconnect-in-twisted-really.html to heart.

ParametersreactorThe reactor to schedule the checks on. (type: IReactorTime)
protocolsThe protocols to wait for disconnecting. (type: A list of IProtocols.)
API Documentation for Twisted, generated by pydoctor at 2018-07-14 04:53:34.