'Test that the reactor selected is installed as soon as possible, ie
when the option is parsed.'

def test_reactorSelectionMixin(self):

    executed = []
    INSTALL_EVENT = 'reactor    installed'
    SUBCOMMAND_EVENT = 'subcommands    loaded'
    class ReactorSelectionOptions(usage.Options, app.ReactorSelectionMixin, ):
        def subCommands(self):
            executed.append(SUBCOMMAND_EVENT)
            return [('subcommand', None, (lambda : self), 'test    subcommand')]
        subCommands = property(subCommands)
    def install():
        executed.append(INSTALL_EVENT)
    self.pluginResults = [FakeReactor(install, 'fakereactortest', __name__, 'described')]
    options = ReactorSelectionOptions()
    options.parseOptions(['--reactor', 'fakereactortest', 'subcommand'])
    self.assertEqual(executed[0], INSTALL_EVENT)
    self.assertEqual(executed.count(INSTALL_EVENT), 1)
    self.assertEqual(options['reactor'], 'fakereactortest')
