[Twisted-Python] Regression in Gtk2 support testing

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Mon Feb 20 10:10:05 EST 2012

On 03:14 am, itamar at itamarst.org wrote:
>On 02/18/2012 10:59 AM, exarkun at twistedmatrix.com wrote:
>>Hello all,
>>Since #4558 was merged, introducing "gi reactor" based on the new 
>>bindings for gobject, all testing of the Gtk2 reactor has been 
>>on all platforms.
>>This is a two-part problem.
>>The first part is the more damaging part, but fortunately also the 
>>easily fixed part.  #4558 made it impossible to import
>>`twisted.internet.gtk2reactor` if `sys.modules` contains a "gi" key.
>>This seems to overlook the fact that even a *failed* import of the 
>>module adds such a key to that dictionary.  Since the test suite tries
>>to test `gireactor`, there will always be such a key, so `gtk2reactor`
>>can never be imported by the test suite.
>However, if you run with "trial -r gtk2" you *do* get the gtk2 tests to
>>The result is that gtk2reactor is no longer tested by buildbot on any
>... and as a result the buildbot *would* be testing gtk2 except that,
>unfortunately, the fedora32-py2.5-reactors buildslave is down. Which I
>will follow up on if I can figure out who's running it.
>>The second part will show up once the first problem is fixed.  Once 
>>check correctly ignores `sys.modules["gi"] == None`, it will still be
>>impossible to test both gireactor and gtk2reactor in our current
>>buildbot configuration.  One or the other will win, and the loser will
>>be quietly skipped (apparently too quietly for most people to notice).
>>Some new strategy is required so that we can test both of these 
>>on all our supported platforms.
>The reactors buildslave is a reasonable strategy: have multiple runs
>with different reactors as the main trial reactor. Especially since,
>even in the absence of this problem, we'd want to continue to have full
>runs under the different reactors because the reactor mixin tests don't
>cover everything yet.

... with the caveat that *eventually* the mixin tests should cover 
everything, and then we will want to stop running trial with different 
-r arguments.  And perhaps the further caveat that we won't test both of 
these reactors on Windows, because we've already overloaded our Windows 
slave capacity and we can't really add more trial steps with different 
-r arguments.


More information about the Twisted-Python mailing list