/
usr
/
lib
/
python3
/
dist-packages
/
twisted
/
test
/
/usr/lib/python3/dist-packages/twisted/test
mkdir
upload
Name
Size
Mode
Actions
__pycache__/
-
0755
rm
cert.pem.no_trailing_newline
1414
0644
edit
dl
rm
crash_test_dummy.py
549
0644
edit
dl
rm
ignore_test_failure.py
31459
0644
edit
dl
rm
iosim.py
18163
0644
edit
dl
rm
key.pem.no_trailing_newline
1707
0644
edit
dl
rm
mock_win32process.py
1299
0644
edit
dl
rm
myrebuilder1.py
151
0644
edit
dl
rm
myrebuilder2.py
151
0644
edit
dl
rm
plugin_basic.py
901
0644
edit
dl
rm
plugin_extra1.py
392
0644
edit
dl
rm
plugin_extra2.py
550
0644
edit
dl
rm
process_cmdline.py
123
0644
edit
dl
rm
process_echoer.py
214
0644
edit
dl
rm
process_fds.py
984
0644
edit
dl
rm
process_getargv.py
234
0644
edit
dl
rm
process_getenv.py
268
0644
edit
dl
rm
process_linger.py
297
0644
edit
dl
rm
process_reader.py
178
0644
edit
dl
rm
process_signal.py
220
0644
edit
dl
rm
process_stdinreader.py
739
0644
edit
dl
rm
process_tester.py
779
0644
edit
dl
rm
process_tty.py
130
0644
edit
dl
rm
process_twisted.py
1182
0644
edit
dl
rm
proto_helpers.py
1368
0644
edit
dl
rm
reflect_helper_IE.py
60
0644
edit
dl
rm
reflect_helper_VE.py
81
0644
edit
dl
rm
reflect_helper_ZDE.py
48
0644
edit
dl
rm
server.pem
4444
0644
edit
dl
rm
ssl_helpers.py
1650
0644
edit
dl
rm
stdio_test_consumer.py
1168
0644
edit
dl
rm
stdio_test_halfclose.py
2047
0644
edit
dl
rm
stdio_test_hostpeer.py
1089
0644
edit
dl
rm
stdio_test_lastwrite.py
1154
0644
edit
dl
rm
stdio_test_loseconn.py
1583
0644
edit
dl
rm
stdio_test_producer.py
1484
0644
edit
dl
rm
stdio_test_write.py
902
0644
edit
dl
rm
stdio_test_writeseq.py
894
0644
edit
dl
rm
testutils.py
5178
0644
edit
dl
rm
test_abstract.py
3435
0644
edit
dl
rm
test_adbapi.py
26175
0644
edit
dl
rm
test_amp.py
110514
0644
edit
dl
rm
test_application.py
34140
0644
edit
dl
rm
test_compat.py
18172
0644
edit
dl
rm
test_context.py
1464
0644
edit
dl
rm
test_cooperator.py
21339
0644
edit
dl
rm
test_defer.py
124782
0644
edit
dl
rm
test_defgen.py
10634
0644
edit
dl
rm
test_dict.py
1528
0644
edit
dl
rm
test_dirdbm.py
6851
0644
edit
dl
rm
test_error.py
8926
0644
edit
dl
rm
test_factories.py
4567
0644
edit
dl
rm
test_fdesc.py
7452
0644
edit
dl
rm
test_finger.py
1894
0644
edit
dl
rm
test_formmethod.py
3961
0644
edit
dl
rm
test_ftp.py
130002
0644
edit
dl
rm
test_ftp_options.py
2688
0644
edit
dl
rm
test_htb.py
3154
0644
edit
dl
rm
test_ident.py
6718
0644
edit
dl
rm
test_internet.py
46469
0644
edit
dl
rm
test_iosim.py
8908
0644
edit
dl
rm
test_iutils.py
13632
0644
edit
dl
rm
test_lockfile.py
15336
0644
edit
dl
rm
test_log.py
36073
0644
edit
dl
rm
test_logfile.py
17891
0644
edit
dl
rm
test_loopback.py
14321
0644
edit
dl
rm
test_main.py
2166
0644
edit
dl
rm
test_memcache.py
25284
0644
edit
dl
rm
test_modules.py
17428
0644
edit
dl
rm
test_monkey.py
5519
0644
edit
dl
rm
test_paths.py
70972
0644
edit
dl
rm
test_pcp.py
12528
0644
edit
dl
rm
test_persisted.py
13407
0644
edit
dl
rm
test_plugin.py
25384
0644
edit
dl
rm
test_policies.py
33061
0644
edit
dl
rm
test_postfix.py
4427
0644
edit
dl
rm
test_process.py
87203
0644
edit
dl
rm
test_protocols.py
7334
0644
edit
dl
rm
test_randbytes.py
3270
0644
edit
dl
rm
test_rebuild.py
7323
0644
edit
dl
rm
test_reflect.py
24469
0644
edit
dl
rm
test_roots.py
1643
0644
edit
dl
rm
test_shortcut.py
1962
0644
edit
dl
rm
test_sip.py
25498
0644
edit
dl
rm
test_sob.py
5667
0644
edit
dl
rm
test_socks.py
17496
0644
edit
dl
rm
test_ssl.py
23301
0644
edit
dl
rm
test_sslverify.py
116627
0644
edit
dl
rm
test_stateful.py
2015
0644
edit
dl
rm
test_stdio.py
12730
0644
edit
dl
rm
test_strerror.py
5247
0644
edit
dl
rm
test_strports.py
1705
0644
edit
dl
rm
test_task.py
46348
0644
edit
dl
rm
test_tcp.py
65813
0644
edit
dl
rm
test_tcp_internals.py
13036
0644
edit
dl
rm
test_text.py
6367
0644
edit
dl
rm
test_threadable.py
3338
0644
edit
dl
rm
test_threadpool.py
21956
0644
edit
dl
rm
test_threads.py
13211
0644
edit
dl
rm
test_tpfile.py
1545
0644
edit
dl
rm
test_twistd.py
73768
0644
edit
dl
rm
test_twisted.py
6277
0644
edit
dl
rm
test_udp.py
25012
0644
edit
dl
rm
test_unix.py
13579
0644
edit
dl
rm
test_usage.py
23311
0644
edit
dl
rm
__init__.py
475
0644
edit
dl
rm
Edit:
/usr/lib/python3/dist-packages/twisted/test/test_fdesc.py
(7452B)
# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ Tests for L{twisted.internet.fdesc}. """ import errno import os import sys try: import fcntl except ImportError: skip = "not supported on this platform" else: from twisted.internet import fdesc from twisted.python.util import untilConcludes from twisted.trial import unittest class NonBlockingTests(unittest.SynchronousTestCase): """ Tests for L{fdesc.setNonBlocking} and L{fdesc.setBlocking}. """ def test_setNonBlocking(self): """ L{fdesc.setNonBlocking} sets a file description to non-blocking. """ r, w = os.pipe() self.addCleanup(os.close, r) self.addCleanup(os.close, w) self.assertFalse(fcntl.fcntl(r, fcntl.F_GETFL) & os.O_NONBLOCK) fdesc.setNonBlocking(r) self.assertTrue(fcntl.fcntl(r, fcntl.F_GETFL) & os.O_NONBLOCK) def test_setBlocking(self): """ L{fdesc.setBlocking} sets a file description to blocking. """ r, w = os.pipe() self.addCleanup(os.close, r) self.addCleanup(os.close, w) fdesc.setNonBlocking(r) fdesc.setBlocking(r) self.assertFalse(fcntl.fcntl(r, fcntl.F_GETFL) & os.O_NONBLOCK) class ReadWriteTests(unittest.SynchronousTestCase): """ Tests for L{fdesc.readFromFD}, L{fdesc.writeToFD}. """ def setUp(self): """ Create a non-blocking pipe that can be used in tests. """ self.r, self.w = os.pipe() fdesc.setNonBlocking(self.r) fdesc.setNonBlocking(self.w) def tearDown(self): """ Close pipes. """ try: os.close(self.w) except OSError: pass try: os.close(self.r) except OSError: pass def write(self, d): """ Write data to the pipe. """ return fdesc.writeToFD(self.w, d) def read(self): """ Read data from the pipe. """ l = [] res = fdesc.readFromFD(self.r, l.append) if res is None: if l: return l[0] else: return b"" else: return res def test_writeAndRead(self): """ Test that the number of bytes L{fdesc.writeToFD} reports as written with its return value are seen by L{fdesc.readFromFD}. """ n = self.write(b"hello") self.assertTrue(n > 0) s = self.read() self.assertEqual(len(s), n) self.assertEqual(b"hello"[:n], s) def test_writeAndReadLarge(self): """ Similar to L{test_writeAndRead}, but use a much larger string to verify the behavior for that case. """ orig = b"0123456879" * 10000 written = self.write(orig) self.assertTrue(written > 0) result = [] resultlength = 0 i = 0 while resultlength < written or i < 50: result.append(self.read()) resultlength += len(result[-1]) # Increment a counter to be sure we'll exit at some point i += 1 result = b"".join(result) self.assertEqual(len(result), written) self.assertEqual(orig[:written], result) def test_readFromEmpty(self): """ Verify that reading from a file descriptor with no data does not raise an exception and does not result in the callback function being called. """ l = [] result = fdesc.readFromFD(self.r, l.append) self.assertEqual(l, []) self.assertIsNone(result) def test_readFromCleanClose(self): """ Test that using L{fdesc.readFromFD} on a cleanly closed file descriptor returns a connection done indicator. """ os.close(self.w) self.assertEqual(self.read(), fdesc.CONNECTION_DONE) def test_writeToClosed(self): """ Verify that writing with L{fdesc.writeToFD} when the read end is closed results in a connection lost indicator. """ os.close(self.r) self.assertEqual(self.write(b"s"), fdesc.CONNECTION_LOST) def test_readFromInvalid(self): """ Verify that reading with L{fdesc.readFromFD} when the read end is closed results in a connection lost indicator. """ os.close(self.r) self.assertEqual(self.read(), fdesc.CONNECTION_LOST) def test_writeToInvalid(self): """ Verify that writing with L{fdesc.writeToFD} when the write end is closed results in a connection lost indicator. """ os.close(self.w) self.assertEqual(self.write(b"s"), fdesc.CONNECTION_LOST) def test_writeErrors(self): """ Test error path for L{fdesc.writeTod}. """ oldOsWrite = os.write def eagainWrite(fd, data): err = OSError() err.errno = errno.EAGAIN raise err os.write = eagainWrite try: self.assertEqual(self.write(b"s"), 0) finally: os.write = oldOsWrite def eintrWrite(fd, data): err = OSError() err.errno = errno.EINTR raise err os.write = eintrWrite try: self.assertEqual(self.write(b"s"), 0) finally: os.write = oldOsWrite class CloseOnExecTests(unittest.SynchronousTestCase): """ Tests for L{fdesc._setCloseOnExec} and L{fdesc._unsetCloseOnExec}. """ program = """ import os, errno try: os.write(%d, b'lul') except OSError as e: if e.errno == errno.EBADF: os._exit(0) os._exit(5) except BaseException: os._exit(10) else: os._exit(20) """ def _execWithFileDescriptor(self, fObj): pid = os.fork() if pid == 0: try: os.execv( sys.executable, [sys.executable, "-c", self.program % (fObj.fileno(),)], ) except BaseException: import traceback traceback.print_exc() os._exit(30) else: # On Linux wait(2) doesn't seem ever able to fail with EINTR but # POSIX seems to allow it and on macOS it happens quite a lot. return untilConcludes(os.waitpid, pid, 0)[1] def test_setCloseOnExec(self): """ A file descriptor passed to L{fdesc._setCloseOnExec} is not inherited by a new process image created with one of the exec family of functions. """ with open(self.mktemp(), "wb") as fObj: fdesc._setCloseOnExec(fObj.fileno()) status = self._execWithFileDescriptor(fObj) self.assertTrue(os.WIFEXITED(status)) self.assertEqual(os.WEXITSTATUS(status), 0) def test_unsetCloseOnExec(self): """ A file descriptor passed to L{fdesc._unsetCloseOnExec} is inherited by a new process image created with one of the exec family of functions. """ with open(self.mktemp(), "wb") as fObj: fdesc._setCloseOnExec(fObj.fileno()) fdesc._unsetCloseOnExec(fObj.fileno()) status = self._execWithFileDescriptor(fObj) self.assertTrue(os.WIFEXITED(status)) self.assertEqual(os.WEXITSTATUS(status), 20)
Save
cmd:
run