HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux aritmodecarnaval.es 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //lib/python3/dist-packages/twisted/test/test_main.py
# Copyright (c) Twisted Matrix Laboratories.
# See LICENSE for details.

"""
Test that twisted scripts can be invoked as modules.
"""


import sys
from io import StringIO

from twisted.internet import defer, reactor
from twisted.test.test_process import Accumulator
from twisted.trial.unittest import TestCase


class MainTests(TestCase):
    """Test that twisted scripts can be invoked as modules."""

    def test_twisted(self):
        """Invoking python -m twisted should execute twist."""
        cmd = sys.executable
        p = Accumulator()
        d = p.endedDeferred = defer.Deferred()
        reactor.spawnProcess(p, cmd, [cmd, "-m", "twisted", "--help"], env=None)
        p.transport.closeStdin()

        # Fix up our sys args to match the command we issued
        from twisted import __main__

        self.patch(sys, "argv", [__main__.__file__, "--help"])

        def processEnded(ign):
            f = p.outF
            output = f.getvalue()

            self.assertTrue(
                b"-m twisted [options] plugin [plugin_options]" in output, output
            )

        return d.addCallback(processEnded)

    def test_trial(self):
        """Invoking python -m twisted.trial should execute trial."""
        cmd = sys.executable
        p = Accumulator()
        d = p.endedDeferred = defer.Deferred()
        reactor.spawnProcess(p, cmd, [cmd, "-m", "twisted.trial", "--help"], env=None)
        p.transport.closeStdin()

        # Fix up our sys args to match the command we issued
        from twisted.trial import __main__

        self.patch(sys, "argv", [__main__.__file__, "--help"])

        def processEnded(ign):
            f = p.outF
            output = f.getvalue()

            self.assertTrue(b"-j, --jobs= " in output, output)

        return d.addCallback(processEnded)

    def test_twisted_import(self):
        """Importing twisted.__main__ does not execute twist."""
        output = StringIO()
        monkey = self.patch(sys, "stdout", output)

        import twisted.__main__

        self.assertTrue(twisted.__main__)  # Appease pyflakes

        monkey.restore()
        self.assertEqual(output.getvalue(), "")