[Twisted-Python] Problem with trial using the reactor
ben at artins.org
Thu Jun 7 01:23:24 EDT 2007
I just spent some time tearing my hair out getting trial and
ThreadedSelectReactor to cooperate.
Another possible solution to the trial/reactor impedance mismatch you
commented on would be for trial spawn off a process for each test. By
definition, that process would get its own reactor and could not
taint any other tests. The test rig process could happily use
Deferred semantics, while presenting a synchronous interface to trial.
This would also be easier to distribute IMO, because if IPC is
already involved in communication between trial runner and tests,
making that IPC go to another machine is easier.
I realize the cost of spawning processes, but I honestly think that
it's easier to change unittest to fork, run a test on a separate
reactor, and IPC the test results back to the parent, than it is to
take one of the other three approaches, because of the API changes
they would require. (Not that said API changes would be bad, but I
don't think that the distributed runner should have to wait for them.)
"Computers! All they ever think of is hex!"
More information about the Twisted-Python