Server IP : 195.201.23.43 / Your IP : 3.15.0.42 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : 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, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/python3/dist-packages/twisted/internet/test/ |
Upload File : |
# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ Tests for L{twisted.internet._baseprocess} which implements process-related functionality that is useful in all platforms supporting L{IReactorProcess}. """ __metaclass__ = type from twisted.python.deprecate import getWarningMethod, setWarningMethod from twisted.trial.unittest import TestCase from twisted.internet._baseprocess import BaseProcess class BaseProcessTests(TestCase): """ Tests for L{BaseProcess}, a parent class for other classes which represent processes which implements functionality common to many different process implementations. """ def test_callProcessExited(self): """ L{BaseProcess._callProcessExited} calls the C{processExited} method of its C{proto} attribute and passes it a L{Failure} wrapping the given exception. """ class FakeProto: reason = None def processExited(self, reason): self.reason = reason reason = RuntimeError("fake reason") process = BaseProcess(FakeProto()) process._callProcessExited(reason) process.proto.reason.trap(RuntimeError) self.assertIs(reason, process.proto.reason.value) def test_callProcessExitedMissing(self): """ L{BaseProcess._callProcessExited} emits a L{DeprecationWarning} if the object referred to by its C{proto} attribute has no C{processExited} method. """ class FakeProto: pass reason = object() process = BaseProcess(FakeProto()) self.addCleanup(setWarningMethod, getWarningMethod()) warnings = [] def collect(message, category, stacklevel): warnings.append((message, category, stacklevel)) setWarningMethod(collect) process._callProcessExited(reason) [(message, category, stacklevel)] = warnings self.assertEqual( message, "Since Twisted 8.2, IProcessProtocol.processExited is required. " "%s.%s must implement it." % ( FakeProto.__module__, FakeProto.__name__)) self.assertIs(category, DeprecationWarning) # The stacklevel doesn't really make sense for this kind of # deprecation. Requiring it to be 0 will at least avoid pointing to # any part of Twisted or a random part of the application's code, which # I think would be more misleading than having it point inside the # warning system itself. -exarkun self.assertEqual(stacklevel, 0)Private