class ProcessTestsBuilder(ProcessTestsBuilderBase): (source)
Builder defining tests relating to IReactorProcess
for child processes which do not have a PTY.
Method | make |
Write the given list of lines to a text file and return the absolute path to it. |
Method | test_child |
IProcessProtocol.childConnectionLost is called each time a file descriptor associated with a child process is closed. |
Method | test_pause |
Pause producing and then resume producing. |
Method | test |
Process is removed from reapProcessHandler dict before running ProcessProtocol.processEnded() callback. |
Method | test_process |
Arguments given to spawnProcess are passed to the child process as originally intended. |
Method | test_process |
IProcessProtocol.processEnded is called after the child process exits and IProcessProtocol.childConnectionLost is called for each of its file descriptors. |
Method | test_process |
IProcessProtocol.processExited is called when the child process exits, even if file descriptors associated with the child are still open. |
Method | test |
Spawning a process with an executable which is a script starting with an interpreter definition line (#!) uses that interpreter to evaluate the script. |
Class Variable | keep |
Undocumented |
Class Variable | keep |
Undocumented |
Class Variable | use |
Undocumented |
Inherited from ProcessTestsBuilderBase
:
Method | test_change |
If a value is passed for IReactorProcess.spawnProcess 's gid, the child process is run with that GID. |
Method | test_change |
If a value is passed for IReactorProcess.spawnProcess 's uid, the child process is run with that UID. |
Method | test_error |
When os.execvpe raises an exception, it will format that exception on stderr as UTF-8, regardless of system encoding information. |
Method | test_open |
Processes spawned with spawnProcess() close all extraneous file descriptors in the parent. They do have a stdin, stdout, and stderr open. |
Method | test_process |
If IProcessProtocol.processExited raises an exception, it is logged. |
Method | test_process |
The reason argument passed to IProcessProtocol.processExited is a ProcessTerminated instance if the child process exits with a signal. |
Method | test_process |
IReactorProcess.spawnProcess connects the protocol passed to it to a transport which provides IProcessTransport . |
Method | test_spawn |
If, before the reactor is started with IReactorCore.run , a process is started with IReactorProcess.spawnProcess and terminates, the process is reaped once the reactor is started. |
Method | test_system |
If a child process exits while a system call is in progress, the system call should not be interfered with. In particular, it should not fail with EINTR. |
Method | test_timely |
If a spawned process exits, processExited will be called in a timely manner. |
Method | test |
IProcessTransport.write writes the specified bytes to the standard input of the child process. |
Method | test_write |
IProcessTransport.writeSequence writes the specified list of bytes to the standard input of the child process. |
Method | test_write |
IProcessTransport.writeToChild writes the specified bytes to the specified file descriptor of the child process. |
Method | test_write |
IProcessTransport.writeToChild raises KeyError if passed a file descriptor which is was not set up by IReactorProcess.spawnProcess . |
Class Variable | required |
Undocumented |
Method | _change |
Launch a child process, using either the uid or gid argument to IReactorProcess.spawnProcess to change either its UID or GID to a different value. If the child process reports this hasn't happened, raise an exception to fail the test. |
Method | _write |
Helper for testing IProcessTransport write functionality. This method spawns a child process and gives write a chance to write some bytes to it. It then verifies that the bytes were actually written to it (by relying on the child process to echo them back). |
Inherited from ReactorBuilder
(via ProcessTestsBuilderBase
):
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. |
IProcessProtocol.childConnectionLost
is called each time a file descriptor associated with a child process is closed.
Process is removed from reapProcessHandler dict before running ProcessProtocol.processEnded() callback.
IProcessProtocol.processEnded
is called after the child process exits and IProcessProtocol.childConnectionLost
is called for each of its file descriptors.
IProcessProtocol.processExited
is called when the child process exits, even if file descriptors associated with the child are still open.