class TCPConnectionTestsBuilder(ReactorBuilder): (source)
Builder defining tests relating to twisted.internet.tcp.Connection
.
Method | test_connection |
Alice connects to Bob. Alice writes some bytes and then shuts down the connection. Bob receives the bytes from the connection and then pauses the transport object. Shortly afterwards Bob resumes the transport object... |
Method | test_double |
If one side half-closes its connection, and then the other side of the connection calls loseWriteConnection, and then loseConnection in {writeConnectionLost}, the connection is closed correctly. |
Method | test_resume |
When a Server is connected, its resumeProducing method adds it as a reader to the reactor. |
Method | test_resume |
When a Server has already lost its connection, its resumeProducing method does not add it as a reader to its reactor. |
Method | test_resume |
When a Server has already started disconnecting via loseConnection, its resumeProducing method does not add it as a reader to its reactor. |
Method | test_stop |
This test verifies transport socket read state after multiple pause/resumeProducing calls. |
Class Variable | required |
Undocumented |
Inherited from ReactorBuilder
:
Class Method | make |
Create a SynchronousTestCase subclass which mixes in cls for each known reactor and return a dict mapping their names to them. |
Method | build |
Create and return a reactor using self.reactorFactory. |
Method | get |
Determine how long to run the test before considering it failed. |
Method | run |
Run the reactor for at most the given amount of time. |
Method | set |
Clear the SIGCHLD handler, if there is one, to ensure an environment like the one which exists prior to a call to reactor.run . |
Method | tear |
Restore the original SIGCHLD handler and reap processes as long as there seem to be any remaining. |
Method | unbuild |
Clean up any resources which may have been allocated for the given reactor by its creation or by a test which used it. |
Class Variable | skipped |
A dict mapping FQPN strings of reactors for which the tests defined by this class will be skipped to strings giving the skip message. |
Instance Variable | original |
The SIGCHLD handler which was installed when setUp ran and which will be re-installed when tearDown runs. |
Instance Variable | reactor |
A no-argument callable which returns the reactor to use for testing. |
Instance Variable | _reactors |
A list of FQPN strings giving the reactors for which SynchronousTestCase s will be created. |
Alice connects to Bob. Alice writes some bytes and then shuts down the connection. Bob receives the bytes from the connection and then pauses the transport object. Shortly afterwards Bob resumes the transport object. At that point, Bob is notified that the connection has been closed.
This is no problem for most reactors. The underlying event notification API will probably just remind them that the connection has been closed. It is a little tricky for win32eventreactor (MsgWaitForMultipleObjects). MsgWaitForMultipleObjects will only deliver the close notification once. The reactor needs to remember that notification until Bob resumes the transport.
If one side half-closes its connection, and then the other side of the connection calls loseWriteConnection, and then loseConnection in {writeConnectionLost}, the connection is closed correctly.
This rather obscure case used to fail (see ticket #3037).
When a Server
has already lost its connection, its resumeProducing method does not add it as a reader to its reactor.
When a Server
has already started disconnecting via loseConnection, its resumeProducing method does not add it as a reader to its reactor.