Assorted functionality which is commonly useful when writing unit tests.
| Class | AccumulatingProtocol | AccumulatingProtocolis anIProtocolimplementation 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 StringTransportwhich on disconnection will trigger the connection lost on the attached 
protocol. | 
| Class | StringIOWithoutClosing | A BytesIO that can't be closed. | 
| 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 Deferredwhen 
they're all done. | 
| Class | EventLoggingObserver | No summary | 
| Class | _FakePort | A fake IListeningPortto be used in tests. | 
| Class | _FakeConnector | A fake IConnectorthat allows us to inspect if it has been told to stop connecting. | 
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.
| Parameters | reactor | The reactor to schedule the checks on. (type: IReactorTime) | 
| protocols | The protocols to wait for disconnecting. (type: A listofIProtocols.) |