OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
python3
/
dist-packages
/
twisted
/
python
/
test
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/31/2022 06:22:38 AM
rwxr-xr-x
📄
__init__.py
42 bytes
09/08/2017 10:38:36 AM
rw-r--r--
📁
__pycache__
-
03/31/2022 06:22:39 AM
rwxr-xr-x
📄
_deprecatetests.py.3only
1.77 KB
09/08/2017 10:38:35 AM
rw-r--r--
📄
deprecatedattributes.py
571 bytes
09/08/2017 10:38:36 AM
rw-r--r--
📄
modules_helpers.py
1.57 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
pullpipe.py
1.19 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_appdirs.py
1.06 KB
09/08/2017 10:38:35 AM
rw-r--r--
📄
test_components.py
25.37 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_constants.py
37.22 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_deprecate.py
38.02 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_dist3.py
1.81 KB
09/08/2017 10:38:35 AM
rw-r--r--
📄
test_fakepwd.py
13.78 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_htmlizer.py
1.24 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_inotify.py
3.55 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_release.py
40.08 KB
09/08/2017 10:38:35 AM
rw-r--r--
📄
test_runtime.py
7.74 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_sendmsg.py
25.25 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_setup.py
11.78 KB
03/22/2022 11:03:56 AM
rw-r--r--
📄
test_shellcomp.py
21.32 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_syslog.py
4.83 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_systemd.py
6.25 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_textattributes.py
712 bytes
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_tzhelper.py
3.89 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_url.py
29.23 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_urlpath.py
10.09 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_util.py
35.55 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_versions.py
5.27 KB
09/08/2017 10:38:35 AM
rw-r--r--
📄
test_zippath.py
3.39 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_zipstream.py
11.88 KB
09/08/2017 10:38:36 AM
rw-r--r--
Editing: test_systemd.py
Close
# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ Tests for L{twisted.python.systemd}. """ from __future__ import division, absolute_import import os from twisted.trial.unittest import TestCase from twisted.python.systemd import ListenFDs class InheritedDescriptorsMixin(object): """ Mixin for a L{TestCase} subclass which defines test methods for some kind of systemd sd-daemon class. In particular, it defines tests for a C{inheritedDescriptors} method. """ def test_inheritedDescriptors(self): """ C{inheritedDescriptors} returns a list of integers giving the file descriptors which were inherited from systemd. """ sddaemon = self.getDaemon(7, 3) self.assertEqual([7, 8, 9], sddaemon.inheritedDescriptors()) def test_repeated(self): """ Any subsequent calls to C{inheritedDescriptors} return the same list. """ sddaemon = self.getDaemon(7, 3) self.assertEqual( sddaemon.inheritedDescriptors(), sddaemon.inheritedDescriptors()) class MemoryOnlyMixin(object): """ Mixin for a L{TestCase} subclass which creates creating a fake, in-memory implementation of C{inheritedDescriptors}. This provides verification that the fake behaves in a compatible way with the real implementation. """ def getDaemon(self, start, count): """ Invent C{count} new I{file descriptors} (actually integers, attached to no real file description), starting at C{start}. Construct and return a new L{ListenFDs} which will claim those integers represent inherited file descriptors. """ return ListenFDs(range(start, start + count)) class EnvironmentMixin(object): """ Mixin for a L{TestCase} subclass which creates a real implementation of C{inheritedDescriptors} which is based on the environment variables set by systemd. To facilitate testing, this mixin will also create a fake environment dictionary and add keys to it to make it look as if some descriptors have been inherited. """ def initializeEnvironment(self, count, pid): """ Create a copy of the process environment and add I{LISTEN_FDS} and I{LISTEN_PID} (the environment variables set by systemd) to it. """ result = os.environ.copy() result['LISTEN_FDS'] = str(count) result['LISTEN_PID'] = str(pid) return result def getDaemon(self, start, count): """ Create a new L{ListenFDs} instance, initialized with a fake environment dictionary which will be set up as systemd would have set it up if C{count} descriptors were being inherited. The descriptors will also start at C{start}. """ fakeEnvironment = self.initializeEnvironment(count, os.getpid()) return ListenFDs.fromEnvironment(environ=fakeEnvironment, start=start) class MemoryOnlyTests(MemoryOnlyMixin, InheritedDescriptorsMixin, TestCase): """ Apply tests to L{ListenFDs}, explicitly constructed with some fake file descriptors. """ class EnvironmentTests(EnvironmentMixin, InheritedDescriptorsMixin, TestCase): """ Apply tests to L{ListenFDs}, constructed based on an environment dictionary. """ def test_secondEnvironment(self): """ Only a single L{Environment} can extract inherited file descriptors. """ fakeEnvironment = self.initializeEnvironment(3, os.getpid()) first = ListenFDs.fromEnvironment(environ=fakeEnvironment) second = ListenFDs.fromEnvironment(environ=fakeEnvironment) self.assertEqual(list(range(3, 6)), first.inheritedDescriptors()) self.assertEqual([], second.inheritedDescriptors()) def test_mismatchedPID(self): """ If the current process PID does not match the PID in the environment, no inherited descriptors are reported. """ fakeEnvironment = self.initializeEnvironment(3, os.getpid() + 1) sddaemon = ListenFDs.fromEnvironment(environ=fakeEnvironment) self.assertEqual([], sddaemon.inheritedDescriptors()) def test_missingPIDVariable(self): """ If the I{LISTEN_PID} environment variable is not present, no inherited descriptors are reported. """ fakeEnvironment = self.initializeEnvironment(3, os.getpid()) del fakeEnvironment['LISTEN_PID'] sddaemon = ListenFDs.fromEnvironment(environ=fakeEnvironment) self.assertEqual([], sddaemon.inheritedDescriptors()) def test_nonIntegerPIDVariable(self): """ If the I{LISTEN_PID} environment variable is set to a string that cannot be parsed as an integer, no inherited descriptors are reported. """ fakeEnvironment = self.initializeEnvironment(3, "hello, world") sddaemon = ListenFDs.fromEnvironment(environ=fakeEnvironment) self.assertEqual([], sddaemon.inheritedDescriptors()) def test_missingFDSVariable(self): """ If the I{LISTEN_FDS} environment variable is not present, no inherited descriptors are reported. """ fakeEnvironment = self.initializeEnvironment(3, os.getpid()) del fakeEnvironment['LISTEN_FDS'] sddaemon = ListenFDs.fromEnvironment(environ=fakeEnvironment) self.assertEqual([], sddaemon.inheritedDescriptors()) def test_nonIntegerFDSVariable(self): """ If the I{LISTEN_FDS} environment variable is set to a string that cannot be parsed as an integer, no inherited descriptors are reported. """ fakeEnvironment = self.initializeEnvironment("hello, world", os.getpid()) sddaemon = ListenFDs.fromEnvironment(environ=fakeEnvironment) self.assertEqual([], sddaemon.inheritedDescriptors()) def test_defaultEnviron(self): """ If the process environment is not explicitly passed to L{Environment.__init__}, the real process environment dictionary is used. """ self.patch(os, 'environ', { 'LISTEN_PID': str(os.getpid()), 'LISTEN_FDS': '5'}) sddaemon = ListenFDs.fromEnvironment() self.assertEqual(list(range(3, 3 + 5)), sddaemon.inheritedDescriptors())