Beispiel #1
0
def installReactor(reactor):
    """
    Install reactor C{reactor}.

    @param reactor: An object that provides one or more IReactor* interfaces.
    """
    # this stuff should be common to all reactors.
    import twisted.internet
    import sys
    if 'twisted.internet.reactor' in sys.modules:
        raise error.ReactorAlreadyInstalledError("reactor already installed")
    twisted.internet.reactor = reactor
    sys.modules['twisted.internet.reactor'] = reactor
    def install(self):
        """
        Mock installation of L{MockReactor}.
        """
        if self.hasInstalled:
            raise error.ReactorAlreadyInstalledError(
                "reactor already installed")

        BaseReactor.install(self)

        import sys
        import twisted.internet

        modules = sys.modules.copy()
        modules["twisted.internet.reactor"] = self

        self.testCase.patch(sys, "modules", self)
        self.testCase.patch(twisted.internet, "reactor", self)