[Twisted-Python] Problem with trial using the reactor

Ben Artin ben at artins.org
Wed Jun 6 23:23:24 MDT 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.)

Ben

--

<http://artins.org/ben>

"Computers! All they ever think of is hex!"






More information about the Twisted-Python mailing list