Server IP : 104.21.38.3 / Your IP : 172.70.188.10 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/python3/dist-packages/twisted/python/test/ |
Upload File : |
# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. from twisted.python.failure import Failure from twisted.trial.unittest import TestCase try: import syslog as _stdsyslog except ImportError: stdsyslog = None else: stdsyslog = _stdsyslog from twisted.python import syslog class SyslogObserverTests(TestCase): """ Tests for L{SyslogObserver} which sends Twisted log events to the syslog. """ events = None if stdsyslog is None: skip = "syslog is not supported on this platform" def setUp(self): self.patch(syslog.SyslogObserver, "openlog", self.openlog) self.patch(syslog.SyslogObserver, "syslog", self.syslog) self.observer = syslog.SyslogObserver("SyslogObserverTests") def openlog(self, prefix, options, facility): self.logOpened = (prefix, options, facility) self.events = [] def syslog(self, options, message): self.events.append((options, message)) def test_emitWithoutMessage(self): """ L{SyslogObserver.emit} ignores events with an empty value for the C{'message'} key. """ self.observer.emit({"message": (), "isError": False, "system": "-"}) self.assertEqual(self.events, []) def test_emitCustomPriority(self): """ L{SyslogObserver.emit} uses the value of the C{'syslogPriority'} as the syslog priority, if that key is present in the event dictionary. """ self.observer.emit( { "message": ("hello, world",), "isError": False, "system": "-", "syslogPriority": stdsyslog.LOG_DEBUG, } ) self.assertEqual(self.events, [(stdsyslog.LOG_DEBUG, "[-] hello, world")]) def test_emitErrorPriority(self): """ L{SyslogObserver.emit} uses C{LOG_ALERT} if the event represents an error. """ self.observer.emit( { "message": ("hello, world",), "isError": True, "system": "-", "failure": Failure(Exception("foo")), } ) self.assertEqual(self.events, [(stdsyslog.LOG_ALERT, "[-] hello, world")]) def test_emitCustomPriorityOverridesError(self): """ L{SyslogObserver.emit} uses the value of the C{'syslogPriority'} key if it is specified even if the event dictionary represents an error. """ self.observer.emit( { "message": ("hello, world",), "isError": True, "system": "-", "syslogPriority": stdsyslog.LOG_NOTICE, "failure": Failure(Exception("bar")), } ) self.assertEqual(self.events, [(stdsyslog.LOG_NOTICE, "[-] hello, world")]) def test_emitCustomFacility(self): """ L{SyslogObserver.emit} uses the value of the C{'syslogPriority'} as the syslog priority, if that key is present in the event dictionary. """ self.observer.emit( { "message": ("hello, world",), "isError": False, "system": "-", "syslogFacility": stdsyslog.LOG_CRON, } ) self.assertEqual( self.events, [(stdsyslog.LOG_INFO | stdsyslog.LOG_CRON, "[-] hello, world")] ) def test_emitCustomSystem(self): """ L{SyslogObserver.emit} uses the value of the C{'system'} key to prefix the logged message. """ self.observer.emit( { "message": ("hello, world",), "isError": False, "system": "nonDefaultSystem", } ) self.assertEqual( self.events, [(stdsyslog.LOG_INFO, "[nonDefaultSystem] hello, world")] ) def test_emitMessage(self): """ L{SyslogObserver.emit} logs the value of the C{'message'} key of the event dictionary it is passed to the syslog. """ self.observer.emit( {"message": ("hello, world",), "isError": False, "system": "-"} ) self.assertEqual(self.events, [(stdsyslog.LOG_INFO, "[-] hello, world")]) def test_emitMultilineMessage(self): """ Each line of a multiline message is emitted separately to the syslog. """ self.observer.emit( {"message": ("hello,\nworld",), "isError": False, "system": "-"} ) self.assertEqual( self.events, [(stdsyslog.LOG_INFO, "[-] hello,"), (stdsyslog.LOG_INFO, "[-] \tworld")], ) def test_emitStripsTrailingEmptyLines(self): """ Trailing empty lines of a multiline message are omitted from the messages sent to the syslog. """ self.observer.emit( {"message": ("hello,\nworld\n\n",), "isError": False, "system": "-"} ) self.assertEqual( self.events, [(stdsyslog.LOG_INFO, "[-] hello,"), (stdsyslog.LOG_INFO, "[-] \tworld")], )