✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ beluga.o2switch.net ​🇻​♯➤ 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 185.154.139.77 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.84
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /opt/alt/python34/lib64/python3.4/test//test_ftplib.py
"""Test script for ftplib module."""

# Modified by Giampaolo Rodola' to test FTP class, IPv6 and TLS
# environment

import ftplib
import asyncore
import asynchat
import socket
import io
import errno
import os
import time
try:
    import ssl
except ImportError:
    ssl = None

from unittest import TestCase, skipUnless
from test import support
from test.support import HOST, HOSTv6
threading = support.import_module('threading')

TIMEOUT = 3
# the dummy data returned by server over the data channel when
# RETR, LIST, NLST, MLSD commands are issued
RETR_DATA = 'abcde12345\r\n' * 1000
LIST_DATA = 'foo\r\nbar\r\n'
NLST_DATA = 'foo\r\nbar\r\n'
MLSD_DATA = ("type=cdir;perm=el;unique==keVO1+ZF4; test\r\n"
             "type=pdir;perm=e;unique==keVO1+d?3; ..\r\n"
             "type=OS.unix=slink:/foobar;perm=;unique==keVO1+4G4; foobar\r\n"
             "type=OS.unix=chr-13/29;perm=;unique==keVO1+5G4; device\r\n"
             "type=OS.unix=blk-11/108;perm=;unique==keVO1+6G4; block\r\n"
             "type=file;perm=awr;unique==keVO1+8G4; writable\r\n"
             "type=dir;perm=cpmel;unique==keVO1+7G4; promiscuous\r\n"
             "type=dir;perm=;unique==keVO1+1t2; no-exec\r\n"
             "type=file;perm=r;unique==keVO1+EG4; two words\r\n"
             "type=file;perm=r;unique==keVO1+IH4;  leading space\r\n"
             "type=file;perm=r;unique==keVO1+1G4; file1\r\n"
             "type=dir;perm=cpmel;unique==keVO1+7G4; incoming\r\n"
             "type=file;perm=r;unique==keVO1+1G4; file2\r\n"
             "type=file;perm=r;unique==keVO1+1G4; file3\r\n"
             "type=file;perm=r;unique==keVO1+1G4; file4\r\n")


class DummyDTPHandler(asynchat.async_chat):
    dtp_conn_closed = False

    def __init__(self, conn, baseclass):
        asynchat.async_chat.__init__(self, conn)
        self.baseclass = baseclass
        self.baseclass.last_received_data = ''

    def handle_read(self):
        self.baseclass.last_received_data += self.recv(1024).decode('ascii')

    def handle_close(self):
        # XXX: this method can be called many times in a row for a single
        # connection, including in clear-text (non-TLS) mode.
        # (behaviour witnessed with test_data_connection)
        if not self.dtp_conn_closed:
            self.baseclass.push('226 transfer complete')
            self.close()
            self.dtp_conn_closed = True

    def push(self, what):
        if self.baseclass.next_data is not None:
            what = self.baseclass.next_data
            self.baseclass.next_data = None
        if not what:
            return self.close_when_done()
        super(DummyDTPHandler, self).push(what.encode('ascii'))

    def handle_error(self):
        raise


class DummyFTPHandler(asynchat.async_chat):

    dtp_handler = DummyDTPHandler

    def __init__(self, conn):
        asynchat.async_chat.__init__(self, conn)
        # tells the socket to handle urgent data inline (ABOR command)
        self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_OOBINLINE, 1)
        self.set_terminator(b"\r\n")
        self.in_buffer = []
        self.dtp = None
        self.last_received_cmd = None
        self.last_received_data = ''
        self.next_response = ''
        self.next_data = None
        self.rest = None
        self.next_retr_data = RETR_DATA
        self.push('220 welcome')

    def collect_incoming_data(self, data):
        self.in_buffer.append(data)

    def found_terminator(self):
        line = b''.join(self.in_buffer).decode('ascii')
        self.in_buffer = []
        if self.next_response:
            self.push(self.next_response)
            self.next_response = ''
        cmd = line.split(' ')[0].lower()
        self.last_received_cmd = cmd
        space = line.find(' ')
        if space != -1:
            arg = line[space + 1:]
        else:
            arg = ""
        if hasattr(self, 'cmd_' + cmd):
            method = getattr(self, 'cmd_' + cmd)
            method(arg)
        else:
            self.push('550 command "%s" not understood.' %cmd)

    def handle_error(self):
        raise

    def push(self, data):
        asynchat.async_chat.push(self, data.encode('ascii') + b'\r\n')

    def cmd_port(self, arg):
        addr = list(map(int, arg.split(',')))
        ip = '%d.%d.%d.%d' %tuple(addr[:4])
        port = (addr[4] * 256) + addr[5]
        s = socket.create_connection((ip, port), timeout=TIMEOUT)
        self.dtp = self.dtp_handler(s, baseclass=self)
        self.push('200 active data connection established')

    def cmd_pasv(self, arg):
        with socket.socket() as sock:
            sock.bind((self.socket.getsockname()[0], 0))
            sock.listen(5)
            sock.settimeout(TIMEOUT)
            ip, port = sock.getsockname()[:2]
            ip = ip.replace('.', ','); p1 = port / 256; p2 = port % 256
            self.push('227 entering passive mode (%s,%d,%d)' %(ip, p1, p2))
            conn, addr = sock.accept()
            self.dtp = self.dtp_handler(conn, baseclass=self)

    def cmd_eprt(self, arg):
        af, ip, port = arg.split(arg[0])[1:-1]
        port = int(port)
        s = socket.create_connection((ip, port), timeout=TIMEOUT)
        self.dtp = self.dtp_handler(s, baseclass=self)
        self.push('200 active data connection established')

    def cmd_epsv(self, arg):
        with socket.socket(socket.AF_INET6) as sock:
            sock.bind((self.socket.getsockname()[0], 0))
            sock.listen(5)
            sock.settimeout(TIMEOUT)
            port = sock.getsockname()[1]
            self.push('229 entering extended passive mode (|||%d|)' %port)
            conn, addr = sock.accept()
            self.dtp = self.dtp_handler(conn, baseclass=self)

    def cmd_echo(self, arg):
        # sends back the received string (used by the test suite)
        self.push(arg)

    def cmd_noop(self, arg):
        self.push('200 noop ok')

    def cmd_user(self, arg):
        self.push('331 username ok')

    def cmd_pass(self, arg):
        self.push('230 password ok')

    def cmd_acct(self, arg):
        self.push('230 acct ok')

    def cmd_rnfr(self, arg):
        self.push('350 rnfr ok')

    def cmd_rnto(self, arg):
        self.push('250 rnto ok')

    def cmd_dele(self, arg):
        self.push('250 dele ok')

    def cmd_cwd(self, arg):
        self.push('250 cwd ok')

    def cmd_size(self, arg):
        self.push('250 1000')

    def cmd_mkd(self, arg):
        self.push('257 "%s"' %arg)

    def cmd_rmd(self, arg):
        self.push('250 rmd ok')

    def cmd_pwd(self, arg):
        self.push('257 "pwd ok"')

    def cmd_type(self, arg):
        self.push('200 type ok')

    def cmd_quit(self, arg):
        self.push('221 quit ok')
        self.close()

    def cmd_abor(self, arg):
        self.push('226 abor ok')

    def cmd_stor(self, arg):
        self.push('125 stor ok')

    def cmd_rest(self, arg):
        self.rest = arg
        self.push('350 rest ok')

    def cmd_retr(self, arg):
        self.push('125 retr ok')
        if self.rest is not None:
            offset = int(self.rest)
        else:
            offset = 0
        self.dtp.push(self.next_retr_data[offset:])
        self.dtp.close_when_done()
        self.rest = None

    def cmd_list(self, arg):
        self.push('125 list ok')
        self.dtp.push(LIST_DATA)
        self.dtp.close_when_done()

    def cmd_nlst(self, arg):
        self.push('125 nlst ok')
        self.dtp.push(NLST_DATA)
        self.dtp.close_when_done()

    def cmd_opts(self, arg):
        self.push('200 opts ok')

    def cmd_mlsd(self, arg):
        self.push('125 mlsd ok')
        self.dtp.push(MLSD_DATA)
        self.dtp.close_when_done()

    def cmd_setlongretr(self, arg):
        # For testing. Next RETR will return long line.
        self.next_retr_data = 'x' * int(arg)
        self.push('125 setlongretr ok')


class DummyFTPServer(asyncore.dispatcher, threading.Thread):

    handler = DummyFTPHandler

    def __init__(self, address, af=socket.AF_INET):
        threading.Thread.__init__(self)
        asyncore.dispatcher.__init__(self)
        self.create_socket(af, socket.SOCK_STREAM)
        self.bind(address)
        self.listen(5)
        self.active = False
        self.active_lock = threading.Lock()
        self.host, self.port = self.socket.getsockname()[:2]
        self.handler_instance = None

    def start(self):
        assert not self.active
        self.__flag = threading.Event()
        threading.Thread.start(self)
        self.__flag.wait()

    def run(self):
        self.active = True
        self.__flag.set()
        while self.active and asyncore.socket_map:
            self.active_lock.acquire()
            asyncore.loop(timeout=0.1, count=1)
            self.active_lock.release()
        asyncore.close_all(ignore_all=True)

    def stop(self):
        assert self.active
        self.active = False
        self.join()

    def handle_accepted(self, conn, addr):
        self.handler_instance = self.handler(conn)

    def handle_connect(self):
        self.close()
    handle_read = handle_connect

    def writable(self):
        return 0

    def handle_error(self):
        raise


if ssl is not None:

    CERTFILE = os.path.join(os.path.dirname(__file__), "keycert3.pem")
    CAFILE = os.path.join(os.path.dirname(__file__), "pycacert.pem")

    class SSLConnection(asyncore.dispatcher):
        """An asyncore.dispatcher subclass supporting TLS/SSL."""

        _ssl_accepting = False
        _ssl_closing = False

        def secure_connection(self):
            socket = ssl.wrap_socket(self.socket, suppress_ragged_eofs=False,
                                     certfile=CERTFILE, server_side=True,
                                     do_handshake_on_connect=False,
                                     ssl_version=ssl.PROTOCOL_SSLv23)
            self.del_channel()
            self.set_socket(socket)
            self._ssl_accepting = True

        def _do_ssl_handshake(self):
            try:
                self.socket.do_handshake()
            except ssl.SSLError as err:
                if err.args[0] in (ssl.SSL_ERROR_WANT_READ,
                                   ssl.SSL_ERROR_WANT_WRITE):
                    return
                elif err.args[0] == ssl.SSL_ERROR_EOF:
                    return self.handle_close()
                raise
            except OSError as err:
                if err.args[0] == errno.ECONNABORTED:
                    return self.handle_close()
            else:
                self._ssl_accepting = False

        def _do_ssl_shutdown(self):
            self._ssl_closing = True
            try:
                self.socket = self.socket.unwrap()
            except ssl.SSLError as err:
                if err.args[0] in (ssl.SSL_ERROR_WANT_READ,
                                   ssl.SSL_ERROR_WANT_WRITE):
                    return
            except OSError as err:
                # Any "socket error" corresponds to a SSL_ERROR_SYSCALL return
                # from OpenSSL's SSL_shutdown(), corresponding to a
                # closed socket condition. See also:
                # http://www.mail-archive.com/openssl-users@openssl.org/msg60710.html
                pass
            self._ssl_closing = False
            if getattr(self, '_ccc', False) is False:
                super(SSLConnection, self).close()
            else:
                pass

        def handle_read_event(self):
            if self._ssl_accepting:
                self._do_ssl_handshake()
            elif self._ssl_closing:
                self._do_ssl_shutdown()
            else:
                super(SSLConnection, self).handle_read_event()

        def handle_write_event(self):
            if self._ssl_accepting:
                self._do_ssl_handshake()
            elif self._ssl_closing:
                self._do_ssl_shutdown()
            else:
                super(SSLConnection, self).handle_write_event()

        def send(self, data):
            try:
                return super(SSLConnection, self).send(data)
            except ssl.SSLError as err:
                if err.args[0] in (ssl.SSL_ERROR_EOF, ssl.SSL_ERROR_ZERO_RETURN,
                                   ssl.SSL_ERROR_WANT_READ,
                                   ssl.SSL_ERROR_WANT_WRITE):
                    return 0
                raise

        def recv(self, buffer_size):
            try:
                return super(SSLConnection, self).recv(buffer_size)
            except ssl.SSLError as err:
                if err.args[0] in (ssl.SSL_ERROR_WANT_READ,
                                   ssl.SSL_ERROR_WANT_WRITE):
                    return b''
                if err.args[0] in (ssl.SSL_ERROR_EOF, ssl.SSL_ERROR_ZERO_RETURN):
                    self.handle_close()
                    return b''
                raise

        def handle_error(self):
            raise

        def close(self):
            if (isinstance(self.socket, ssl.SSLSocket) and
                self.socket._sslobj is not None):
                self._do_ssl_shutdown()
            else:
                super(SSLConnection, self).close()


    class DummyTLS_DTPHandler(SSLConnection, DummyDTPHandler):
        """A DummyDTPHandler subclass supporting TLS/SSL."""

        def __init__(self, conn, baseclass):
            DummyDTPHandler.__init__(self, conn, baseclass)
            if self.baseclass.secure_data_channel:
                self.secure_connection()


    class DummyTLS_FTPHandler(SSLConnection, DummyFTPHandler):
        """A DummyFTPHandler subclass supporting TLS/SSL."""

        dtp_handler = DummyTLS_DTPHandler

        def __init__(self, conn):
            DummyFTPHandler.__init__(self, conn)
            self.secure_data_channel = False
            self._ccc = False

        def cmd_auth(self, line):
            """Set up secure control channel."""
            self.push('234 AUTH TLS successful')
            self.secure_connection()

        def cmd_ccc(self, line):
            self.push('220 Reverting back to clear-text')
            self._ccc = True
            self._do_ssl_shutdown()

        def cmd_pbsz(self, line):
            """Negotiate size of buffer for secure data transfer.
            For TLS/SSL the only valid value for the parameter is '0'.
            Any other value is accepted but ignored.
            """
            self.push('200 PBSZ=0 successful.')

        def cmd_prot(self, line):
            """Setup un/secure data channel."""
            arg = line.upper()
            if arg == 'C':
                self.push('200 Protection set to Clear')
                self.secure_data_channel = False
            elif arg == 'P':
                self.push('200 Protection set to Private')
                self.secure_data_channel = True
            else:
                self.push("502 Unrecognized PROT type (use C or P).")


    class DummyTLS_FTPServer(DummyFTPServer):
        handler = DummyTLS_FTPHandler


class TestFTPClass(TestCase):

    def setUp(self):
        self.server = DummyFTPServer((HOST, 0))
        self.server.start()
        self.client = ftplib.FTP(timeout=TIMEOUT)
        self.client.connect(self.server.host, self.server.port)

    def tearDown(self):
        self.client.close()
        self.server.stop()

    def check_data(self, received, expected):
        self.assertEqual(len(received), len(expected))
        self.assertEqual(received, expected)

    def test_getwelcome(self):
        self.assertEqual(self.client.getwelcome(), '220 welcome')

    def test_sanitize(self):
        self.assertEqual(self.client.sanitize('foo'), repr('foo'))
        self.assertEqual(self.client.sanitize('pass 12345'), repr('pass *****'))
        self.assertEqual(self.client.sanitize('PASS 12345'), repr('PASS *****'))

    def test_exceptions(self):
        self.assertRaises(ValueError, self.client.sendcmd, 'echo 40\r\n0')
        self.assertRaises(ValueError, self.client.sendcmd, 'echo 40\n0')
        self.assertRaises(ValueError, self.client.sendcmd, 'echo 40\r0')
        self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 400')
        self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 499')
        self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 500')
        self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 599')
        self.assertRaises(ftplib.error_proto, self.client.sendcmd, 'echo 999')

    def test_all_errors(self):
        exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm,
                      ftplib.error_proto, ftplib.Error, OSError,
                      EOFError)
        for x in exceptions:
            try:
                raise x('exception not included in all_errors set')
            except ftplib.all_errors:
                pass

    def test_set_pasv(self):
        # passive mode is supposed to be enabled by default
        self.assertTrue(self.client.passiveserver)
        self.client.set_pasv(True)
        self.assertTrue(self.client.passiveserver)
        self.client.set_pasv(False)
        self.assertFalse(self.client.passiveserver)

    def test_voidcmd(self):
        self.client.voidcmd('echo 200')
        self.client.voidcmd('echo 299')
        self.assertRaises(ftplib.error_reply, self.client.voidcmd, 'echo 199')
        self.assertRaises(ftplib.error_reply, self.client.voidcmd, 'echo 300')

    def test_login(self):
        self.client.login()

    def test_acct(self):
        self.client.acct('passwd')

    def test_rename(self):
        self.client.rename('a', 'b')
        self.server.handler_instance.next_response = '200'
        self.assertRaises(ftplib.error_reply, self.client.rename, 'a', 'b')

    def test_delete(self):
        self.client.delete('foo')
        self.server.handler_instance.next_response = '199'
        self.assertRaises(ftplib.error_reply, self.client.delete, 'foo')

    def test_size(self):
        self.client.size('foo')

    def test_mkd(self):
        dir = self.client.mkd('/foo')
        self.assertEqual(dir, '/foo')

    def test_rmd(self):
        self.client.rmd('foo')

    def test_cwd(self):
        dir = self.client.cwd('/foo')
        self.assertEqual(dir, '250 cwd ok')

    def test_pwd(self):
        dir = self.client.pwd()
        self.assertEqual(dir, 'pwd ok')

    def test_quit(self):
        self.assertEqual(self.client.quit(), '221 quit ok')
        # Ensure the connection gets closed; sock attribute should be None
        self.assertEqual(self.client.sock, None)

    def test_abort(self):
        self.client.abort()

    def test_retrbinary(self):
        def callback(data):
            received.append(data.decode('ascii'))
        received = []
        self.client.retrbinary('retr', callback)
        self.check_data(''.join(received), RETR_DATA)

    def test_retrbinary_rest(self):
        def callback(data):
            received.append(data.decode('ascii'))
        for rest in (0, 10, 20):
            received = []
            self.client.retrbinary('retr', callback, rest=rest)
            self.check_data(''.join(received), RETR_DATA[rest:])

    def test_retrlines(self):
        received = []
        self.client.retrlines('retr', received.append)
        self.check_data(''.join(received), RETR_DATA.replace('\r\n', ''))

    def test_storbinary(self):
        f = io.BytesIO(RETR_DATA.encode('ascii'))
        self.client.storbinary('stor', f)
        self.check_data(self.server.handler_instance.last_received_data, RETR_DATA)
        # test new callback arg
        flag = []
        f.seek(0)
        self.client.storbinary('stor', f, callback=lambda x: flag.append(None))
        self.assertTrue(flag)

    def test_storbinary_rest(self):
        f = io.BytesIO(RETR_DATA.replace('\r\n', '\n').encode('ascii'))
        for r in (30, '30'):
            f.seek(0)
            self.client.storbinary('stor', f, rest=r)
            self.assertEqual(self.server.handler_instance.rest, str(r))

    def test_storlines(self):
        f = io.BytesIO(RETR_DATA.replace('\r\n', '\n').encode('ascii'))
        self.client.storlines('stor', f)
        self.check_data(self.server.handler_instance.last_received_data, RETR_DATA)
        # test new callback arg
        flag = []
        f.seek(0)
        self.client.storlines('stor foo', f, callback=lambda x: flag.append(None))
        self.assertTrue(flag)

        f = io.StringIO(RETR_DATA.replace('\r\n', '\n'))
        # storlines() expects a binary file, not a text file
        with support.check_warnings(('', BytesWarning), quiet=True):
            self.assertRaises(TypeError, self.client.storlines, 'stor foo', f)

    def test_nlst(self):
        self.client.nlst()
        self.assertEqual(self.client.nlst(), NLST_DATA.split('\r\n')[:-1])

    def test_dir(self):
        l = []
        self.client.dir(lambda x: l.append(x))
        self.assertEqual(''.join(l), LIST_DATA.replace('\r\n', ''))

    def test_mlsd(self):
        list(self.client.mlsd())
        list(self.client.mlsd(path='/'))
        list(self.client.mlsd(path='/', facts=['size', 'type']))

        ls = list(self.client.mlsd())
        for name, facts in ls:
            self.assertIsInstance(name, str)
            self.assertIsInstance(facts, dict)
            self.assertTrue(name)
            self.assertIn('type', facts)
            self.assertIn('perm', facts)
            self.assertIn('unique', facts)

        def set_data(data):
            self.server.handler_instance.next_data = data

        def test_entry(line, type=None, perm=None, unique=None, name=None):
            type = 'type' if type is None else type
            perm = 'perm' if perm is None else perm
            unique = 'unique' if unique is None else unique
            name = 'name' if name is None else name
            set_data(line)
            _name, facts = next(self.client.mlsd())
            self.assertEqual(_name, name)
            self.assertEqual(facts['type'], type)
            self.assertEqual(facts['perm'], perm)
            self.assertEqual(facts['unique'], unique)

        # plain
        test_entry('type=type;perm=perm;unique=unique; name\r\n')
        # "=" in fact value
        test_entry('type=ty=pe;perm=perm;unique=unique; name\r\n', type="ty=pe")
        test_entry('type==type;perm=perm;unique=unique; name\r\n', type="=type")
        test_entry('type=t=y=pe;perm=perm;unique=unique; name\r\n', type="t=y=pe")
        test_entry('type=====;perm=perm;unique=unique; name\r\n', type="====")
        # spaces in name
        test_entry('type=type;perm=perm;unique=unique; na me\r\n', name="na me")
        test_entry('type=type;perm=perm;unique=unique; name \r\n', name="name ")
        test_entry('type=type;perm=perm;unique=unique;  name\r\n', name=" name")
        test_entry('type=type;perm=perm;unique=unique; n am  e\r\n', name="n am  e")
        # ";" in name
        test_entry('type=type;perm=perm;unique=unique; na;me\r\n', name="na;me")
        test_entry('type=type;perm=perm;unique=unique; ;name\r\n', name=";name")
        test_entry('type=type;perm=perm;unique=unique; ;name;\r\n', name=";name;")
        test_entry('type=type;perm=perm;unique=unique; ;;;;\r\n', name=";;;;")
        # case sensitiveness
        set_data('Type=type;TyPe=perm;UNIQUE=unique; name\r\n')
        _name, facts = next(self.client.mlsd())
        for x in facts:
            self.assertTrue(x.islower())
        # no data (directory empty)
        set_data('')
        self.assertRaises(StopIteration, next, self.client.mlsd())
        set_data('')
        for x in self.client.mlsd():
            self.fail("unexpected data %s" % data)

    def test_makeport(self):
        with self.client.makeport():
            # IPv4 is in use, just make sure send_eprt has not been used
            self.assertEqual(self.server.handler_instance.last_received_cmd,
                                'port')

    def test_makepasv(self):
        host, port = self.client.makepasv()
        conn = socket.create_connection((host, port), timeout=TIMEOUT)
        conn.close()
        # IPv4 is in use, just make sure send_epsv has not been used
        self.assertEqual(self.server.handler_instance.last_received_cmd, 'pasv')

    def test_with_statement(self):
        self.client.quit()

        def is_client_connected():
            if self.client.sock is None:
                return False
            try:
                self.client.sendcmd('noop')
            except (OSError, EOFError):
                return False
            return True

        # base test
        with ftplib.FTP(timeout=TIMEOUT) as self.client:
            self.client.connect(self.server.host, self.server.port)
            self.client.sendcmd('noop')
            self.assertTrue(is_client_connected())
        self.assertEqual(self.server.handler_instance.last_received_cmd, 'quit')
        self.assertFalse(is_client_connected())

        # QUIT sent inside the with block
        with ftplib.FTP(timeout=TIMEOUT) as self.client:
            self.client.connect(self.server.host, self.server.port)
            self.client.sendcmd('noop')
            self.client.quit()
        self.assertEqual(self.server.handler_instance.last_received_cmd, 'quit')
        self.assertFalse(is_client_connected())

        # force a wrong response code to be sent on QUIT: error_perm
        # is expected and the connection is supposed to be closed
        try:
            with ftplib.FTP(timeout=TIMEOUT) as self.client:
                self.client.connect(self.server.host, self.server.port)
                self.client.sendcmd('noop')
                self.server.handler_instance.next_response = '550 error on quit'
        except ftplib.error_perm as err:
            self.assertEqual(str(err), '550 error on quit')
        else:
            self.fail('Exception not raised')
        # needed to give the threaded server some time to set the attribute
        # which otherwise would still be == 'noop'
        time.sleep(0.1)
        self.assertEqual(self.server.handler_instance.last_received_cmd, 'quit')
        self.assertFalse(is_client_connected())

    def test_source_address(self):
        self.client.quit()
        port = support.find_unused_port()
        try:
            self.client.connect(self.server.host, self.server.port,
                                source_address=(HOST, port))
            self.assertEqual(self.client.sock.getsockname()[1], port)
            self.client.quit()
        except OSError as e:
            if e.errno == errno.EADDRINUSE:
                self.skipTest("couldn't bind to port %d" % port)
            raise

    def test_source_address_passive_connection(self):
        port = support.find_unused_port()
        self.client.source_address = (HOST, port)
        try:
            with self.client.transfercmd('list') as sock:
                self.assertEqual(sock.getsockname()[1], port)
        except OSError as e:
            if e.errno == errno.EADDRINUSE:
                self.skipTest("couldn't bind to port %d" % port)
            raise

    def test_parse257(self):
        self.assertEqual(ftplib.parse257('257 "/foo/bar"'), '/foo/bar')
        self.assertEqual(ftplib.parse257('257 "/foo/bar" created'), '/foo/bar')
        self.assertEqual(ftplib.parse257('257 ""'), '')
        self.assertEqual(ftplib.parse257('257 "" created'), '')
        self.assertRaises(ftplib.error_reply, ftplib.parse257, '250 "/foo/bar"')
        # The 257 response is supposed to include the directory
        # name and in case it contains embedded double-quotes
        # they must be doubled (see RFC-959, chapter 7, appendix 2).
        self.assertEqual(ftplib.parse257('257 "/foo/b""ar"'), '/foo/b"ar')
        self.assertEqual(ftplib.parse257('257 "/foo/b""ar" created'), '/foo/b"ar')

    def test_line_too_long(self):
        self.assertRaises(ftplib.Error, self.client.sendcmd,
                          'x' * self.client.maxline * 2)

    def test_retrlines_too_long(self):
        self.client.sendcmd('SETLONGRETR %d' % (self.client.maxline * 2))
        received = []
        self.assertRaises(ftplib.Error,
                          self.client.retrlines, 'retr', received.append)

    def test_storlines_too_long(self):
        f = io.BytesIO(b'x' * self.client.maxline * 2)
        self.assertRaises(ftplib.Error, self.client.storlines, 'stor', f)


@skipUnless(support.IPV6_ENABLED, "IPv6 not enabled")
class TestIPv6Environment(TestCase):

    def setUp(self):
        self.server = DummyFTPServer((HOSTv6, 0), af=socket.AF_INET6)
        self.server.start()
        self.client = ftplib.FTP(timeout=TIMEOUT)
        self.client.connect(self.server.host, self.server.port)

    def tearDown(self):
        self.client.close()
        self.server.stop()

    def test_af(self):
        self.assertEqual(self.client.af, socket.AF_INET6)

    def test_makeport(self):
        with self.client.makeport():
            self.assertEqual(self.server.handler_instance.last_received_cmd,
                                'eprt')

    def test_makepasv(self):
        host, port = self.client.makepasv()
        conn = socket.create_connection((host, port), timeout=TIMEOUT)
        conn.close()
        self.assertEqual(self.server.handler_instance.last_received_cmd, 'epsv')

    def test_transfer(self):
        def retr():
            def callback(data):
                received.append(data.decode('ascii'))
            received = []
            self.client.retrbinary('retr', callback)
            self.assertEqual(len(''.join(received)), len(RETR_DATA))
            self.assertEqual(''.join(received), RETR_DATA)
        self.client.set_pasv(True)
        retr()
        self.client.set_pasv(False)
        retr()


@skipUnless(ssl, "SSL not available")
class TestTLS_FTPClassMixin(TestFTPClass):
    """Repeat TestFTPClass tests starting the TLS layer for both control
    and data connections first.
    """

    def setUp(self):
        self.server = DummyTLS_FTPServer((HOST, 0))
        self.server.start()
        self.client = ftplib.FTP_TLS(timeout=TIMEOUT)
        self.client.connect(self.server.host, self.server.port)
        # enable TLS
        self.client.auth()
        self.client.prot_p()


@skipUnless(ssl, "SSL not available")
class TestTLS_FTPClass(TestCase):
    """Specific TLS_FTP class tests."""

    def setUp(self):
        self.server = DummyTLS_FTPServer((HOST, 0))
        self.server.start()
        self.client = ftplib.FTP_TLS(timeout=TIMEOUT)
        self.client.connect(self.server.host, self.server.port)

    def tearDown(self):
        self.client.close()
        self.server.stop()

    def test_control_connection(self):
        self.assertNotIsInstance(self.client.sock, ssl.SSLSocket)
        self.client.auth()
        self.assertIsInstance(self.client.sock, ssl.SSLSocket)

    def test_data_connection(self):
        # clear text
        with self.client.transfercmd('list') as sock:
            self.assertNotIsInstance(sock, ssl.SSLSocket)
        self.assertEqual(self.client.voidresp(), "226 transfer complete")

        # secured, after PROT P
        self.client.prot_p()
        with self.client.transfercmd('list') as sock:
            self.assertIsInstance(sock, ssl.SSLSocket)
        self.assertEqual(self.client.voidresp(), "226 transfer complete")

        # PROT C is issued, the connection must be in cleartext again
        self.client.prot_c()
        with self.client.transfercmd('list') as sock:
            self.assertNotIsInstance(sock, ssl.SSLSocket)
        self.assertEqual(self.client.voidresp(), "226 transfer complete")

    def test_login(self):
        # login() is supposed to implicitly secure the control connection
        self.assertNotIsInstance(self.client.sock, ssl.SSLSocket)
        self.client.login()
        self.assertIsInstance(self.client.sock, ssl.SSLSocket)
        # make sure that AUTH TLS doesn't get issued again
        self.client.login()

    def test_auth_issued_twice(self):
        self.client.auth()
        self.assertRaises(ValueError, self.client.auth)

    def test_auth_ssl(self):
        try:
            self.client.ssl_version = ssl.PROTOCOL_SSLv23
            self.client.auth()
            self.assertRaises(ValueError, self.client.auth)
        finally:
            self.client.ssl_version = ssl.PROTOCOL_TLSv1

    def test_context(self):
        self.client.quit()
        ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
        self.assertRaises(ValueError, ftplib.FTP_TLS, keyfile=CERTFILE,
                          context=ctx)
        self.assertRaises(ValueError, ftplib.FTP_TLS, certfile=CERTFILE,
                          context=ctx)
        self.assertRaises(ValueError, ftplib.FTP_TLS, certfile=CERTFILE,
                          keyfile=CERTFILE, context=ctx)

        self.client = ftplib.FTP_TLS(context=ctx, timeout=TIMEOUT)
        self.client.connect(self.server.host, self.server.port)
        self.assertNotIsInstance(self.client.sock, ssl.SSLSocket)
        self.client.auth()
        self.assertIs(self.client.sock.context, ctx)
        self.assertIsInstance(self.client.sock, ssl.SSLSocket)

        self.client.prot_p()
        with self.client.transfercmd('list') as sock:
            self.assertIs(sock.context, ctx)
            self.assertIsInstance(sock, ssl.SSLSocket)

    def test_ccc(self):
        self.assertRaises(ValueError, self.client.ccc)
        self.client.login(secure=True)
        self.assertIsInstance(self.client.sock, ssl.SSLSocket)
        self.client.ccc()
        self.assertRaises(ValueError, self.client.sock.unwrap)

    def test_check_hostname(self):
        self.client.quit()
        ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
        ctx.verify_mode = ssl.CERT_REQUIRED
        ctx.check_hostname = True
        ctx.load_verify_locations(CAFILE)
        self.client = ftplib.FTP_TLS(context=ctx, timeout=TIMEOUT)

        # 127.0.0.1 doesn't match SAN
        self.client.connect(self.server.host, self.server.port)
        with self.assertRaises(ssl.CertificateError):
            self.client.auth()
        # exception quits connection

        self.client.connect(self.server.host, self.server.port)
        self.client.prot_p()
        with self.assertRaises(ssl.CertificateError):
            with self.client.transfercmd("list") as sock:
                pass
        self.client.quit()

        self.client.connect("localhost", self.server.port)
        self.client.auth()
        self.client.quit()

        self.client.connect("localhost", self.server.port)
        self.client.prot_p()
        with self.client.transfercmd("list") as sock:
            pass


class TestTimeouts(TestCase):

    def setUp(self):
        self.evt = threading.Event()
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.settimeout(20)
        self.port = support.bind_port(self.sock)
        self.server_thread = threading.Thread(target=self.server)
        self.server_thread.start()
        # Wait for the server to be ready.
        self.evt.wait()
        self.evt.clear()
        self.old_port = ftplib.FTP.port
        ftplib.FTP.port = self.port

    def tearDown(self):
        ftplib.FTP.port = self.old_port
        self.server_thread.join()

    def server(self):
        # This method sets the evt 3 times:
        #  1) when the connection is ready to be accepted.
        #  2) when it is safe for the caller to close the connection
        #  3) when we have closed the socket
        self.sock.listen(5)
        # (1) Signal the caller that we are ready to accept the connection.
        self.evt.set()
        try:
            conn, addr = self.sock.accept()
        except socket.timeout:
            pass
        else:
            conn.sendall(b"1 Hola mundo\n")
            conn.shutdown(socket.SHUT_WR)
            # (2) Signal the caller that it is safe to close the socket.
            self.evt.set()
            conn.close()
        finally:
            self.sock.close()

    def testTimeoutDefault(self):
        # default -- use global socket timeout
        self.assertIsNone(socket.getdefaulttimeout())
        socket.setdefaulttimeout(30)
        try:
            ftp = ftplib.FTP(HOST)
        finally:
            socket.setdefaulttimeout(None)
        self.assertEqual(ftp.sock.gettimeout(), 30)
        self.evt.wait()
        ftp.close()

    def testTimeoutNone(self):
        # no timeout -- do not use global socket timeout
        self.assertIsNone(socket.getdefaulttimeout())
        socket.setdefaulttimeout(30)
        try:
            ftp = ftplib.FTP(HOST, timeout=None)
        finally:
            socket.setdefaulttimeout(None)
        self.assertIsNone(ftp.sock.gettimeout())
        self.evt.wait()
        ftp.close()

    def testTimeoutValue(self):
        # a value
        ftp = ftplib.FTP(HOST, timeout=30)
        self.assertEqual(ftp.sock.gettimeout(), 30)
        self.evt.wait()
        ftp.close()

    def testTimeoutConnect(self):
        ftp = ftplib.FTP()
        ftp.connect(HOST, timeout=30)
        self.assertEqual(ftp.sock.gettimeout(), 30)
        self.evt.wait()
        ftp.close()

    def testTimeoutDifferentOrder(self):
        ftp = ftplib.FTP(timeout=30)
        ftp.connect(HOST)
        self.assertEqual(ftp.sock.gettimeout(), 30)
        self.evt.wait()
        ftp.close()

    def testTimeoutDirectAccess(self):
        ftp = ftplib.FTP()
        ftp.timeout = 30
        ftp.connect(HOST)
        self.assertEqual(ftp.sock.gettimeout(), 30)
        self.evt.wait()
        ftp.close()


class TestNetrcDeprecation(TestCase):

    def test_deprecation(self):
        with support.temp_cwd(), support.EnvironmentVarGuard() as env:
            env['HOME'] = os.getcwd()
            open('.netrc', 'w').close()
            with self.assertWarns(DeprecationWarning):
                ftplib.Netrc()



def test_main():
    tests = [TestFTPClass, TestTimeouts, TestNetrcDeprecation,
             TestIPv6Environment,
             TestTLS_FTPClassMixin, TestTLS_FTPClass]

    thread_info = support.threading_setup()
    try:
        support.run_unittest(*tests)
    finally:
        support.threading_cleanup(*thread_info)


if __name__ == '__main__':
    test_main()


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
25 Jul 2024 8.44 AM
root / linksafe
0755
__pycache__
--
25 Jul 2024 8.41 AM
root / linksafe
0755
audiodata
--
25 Jul 2024 8.41 AM
root / linksafe
0755
capath
--
25 Jul 2024 8.41 AM
root / linksafe
0755
cjkencodings
--
25 Jul 2024 8.41 AM
root / linksafe
0755
data
--
25 Jul 2024 8.41 AM
root / linksafe
0755
decimaltestdata
--
25 Jul 2024 8.41 AM
root / linksafe
0755
encoded_modules
--
25 Jul 2024 8.41 AM
root / linksafe
0755
imghdrdata
--
25 Jul 2024 8.41 AM
root / linksafe
0755
sndhdrdata
--
25 Jul 2024 8.41 AM
root / linksafe
0755
subprocessdata
--
25 Jul 2024 8.41 AM
root / linksafe
0755
support
--
25 Jul 2024 8.41 AM
root / linksafe
0755
test_asyncio
--
25 Jul 2024 8.41 AM
root / linksafe
0755
test_email
--
25 Jul 2024 8.41 AM
root / linksafe
0755
test_importlib
--
25 Jul 2024 8.41 AM
root / linksafe
0755
test_json
--
25 Jul 2024 8.41 AM
root / linksafe
0755
tracedmodules
--
25 Jul 2024 8.41 AM
root / linksafe
0755
xmltestdata
--
25 Jul 2024 8.41 AM
root / linksafe
0755
185test.db
16 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
Sine-1000Hz-300ms.aif
60.25 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
__init__.py
0.046 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
__main__.py
0.054 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
_test_multiprocessing.py
120.529 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
audiotests.py
12.126 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
autotest.py
0.206 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
bad_coding.py
0.023 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
bad_coding2.py
0.029 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
badcert.pem
1.883 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
badkey.pem
2.111 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
badsyntax_3131.py
0.031 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
badsyntax_future10.py
0.093 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
badsyntax_future3.py
0.168 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
badsyntax_future4.py
0.149 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
badsyntax_future5.py
0.18 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
badsyntax_future6.py
0.157 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
badsyntax_future7.py
0.191 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
badsyntax_future8.py
0.119 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
badsyntax_future9.py
0.139 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
badsyntax_pep3120.py
0.014 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
buffer_tests.py
11.107 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
bytecode_helper.py
1.565 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
cfgparser.1
0.021 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
cfgparser.2
19.016 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
cfgparser.3
1.55 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
check_soundcard.vbs
0.401 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
cmath_testcases.txt
133.864 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
coding20731.py
0.018 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
curses_tests.py
1.225 KB
17 Apr 2024 5.09 PM
root / linksafe
0755
datetimetester.py
150.768 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
dh1024.pem
0.293 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
dis_module.py
0.074 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
doctest_aliases.py
0.234 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
double_const.py
1.184 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
empty.vbs
0.068 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
exception_hierarchy.txt
1.688 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
final_a.py
0.401 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
final_b.py
0.401 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
floating_points.txt
15.92 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
fork_wait.py
2.102 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
formatfloat_testcases.txt
7.451 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
future_test1.py
0.224 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
future_test2.py
0.146 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
gdb_sample.py
0.149 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
ieee754.txt
3.206 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
inspect_fodder.py
0.834 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
inspect_fodder2.py
1.386 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
keycert.passwd.pem
1.787 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
keycert.pem
1.741 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
keycert2.pem
1.753 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
keycert3.pem
3.955 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
keycert4.pem
3.962 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
list_tests.py
17.262 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
lock_tests.py
26.896 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
mailcap.txt
1.241 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
make_ssl_certs.py
5.513 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
mapping_tests.py
21.491 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
math_testcases.txt
23.186 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
memory_watchdog.py
0.839 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
mime.types
47.372 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
mock_socket.py
3.31 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
mp_fork_bomb.py
0.438 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
multibytecodec_support.py
14.436 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
nokia.pem
1.878 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
nullbytecert.pem
5.308 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
nullcert.pem
0 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
outstanding_bugs.py
0.361 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
pickletester.py
95.663 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
profilee.py
2.97 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
pstats.pck
65.046 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
pycacert.pem
4.206 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
pycakey.pem
1.664 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
pyclbr_input.py
0.633 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
pydoc_mod.py
0.691 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
pydocfodder.py
6.184 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
pystone.py
7.565 KB
17 Apr 2024 5.09 PM
root / linksafe
0755
randv2_32.pck
7.341 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
randv2_64.pck
7.192 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
randv3.pck
7.816 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
re_tests.py
31.061 KB
17 Apr 2024 5.09 PM
root / linksafe
0755
regrtest.py
60.323 KB
17 Apr 2024 5.09 PM
root / linksafe
0755
relimport.py
0.026 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
reperf.py
0.525 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
revocation.crl
0.61 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
sample_doctest.py
1.017 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
sample_doctest_no_docstrings.py
0.222 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
sample_doctest_no_doctests.py
0.263 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
script_helper.py
8.68 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
selfsigned_pythontestdotnet.pem
0.934 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
seq_tests.py
13.868 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
sgml_input.html
8.1 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
sha256.pem
8.148 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
sortperf.py
4.692 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
ssl_cert.pem
0.847 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
ssl_key.passwd.pem
0.94 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
ssl_key.pem
0.895 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
ssl_servers.py
6.879 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
ssltests.py
0.625 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
string_tests.py
63.248 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
talos-2019-0758.pem
1.299 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
test___all__.py
4.113 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test___future__.py
2.438 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test__locale.py
7.724 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test__opcode.py
0.887 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test__osx_support.py
11.5 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_abc.py
13.326 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_abstract_numbers.py
1.492 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_aifc.py
15.139 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_argparse.py
160.403 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_array.py
44.561 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ast.py
42.968 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_asynchat.py
10.899 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_asyncore.py
26.765 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_atexit.py
4.541 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_audioop.py
28.046 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_augassign.py
7.161 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_base64.py
28.902 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_bigaddrspace.py
2.919 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_bigmem.py
44.181 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_binascii.py
10.658 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_binhex.py
1.473 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_binop.py
12.844 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_bisect.py
13.633 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_bool.py
11.749 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_buffer.py
155.566 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_bufio.py
2.535 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_builtin.py
58.707 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_bytes.py
57.01 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_bz2.py
32.295 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_calendar.py
42.735 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_call.py
3.085 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_capi.py
18.044 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_cgi.py
18.94 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_cgitb.py
2.491 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_charmapcodec.py
1.752 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_class.py
14.136 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
test_cmath.py
21.468 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_cmd.py
6.114 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_cmd_line.py
19.911 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_cmd_line_script.py
20.207 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_code.py
3.541 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_code_module.py
2.938 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codeccallbacks.py
37.639 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codecencodings_cn.py
3.382 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
test_codecencodings_hk.py
0.757 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codecencodings_iso2022.py
1.43 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codecencodings_jp.py
4.864 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codecencodings_kr.py
3.029 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codecencodings_tw.py
0.737 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codecmaps_cn.py
0.753 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codecmaps_hk.py
0.401 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codecmaps_jp.py
1.728 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codecmaps_kr.py
1.189 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codecmaps_tw.py
0.713 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codecs.py
114.61 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_codeop.py
7.451 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_collections.py
50.445 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_colorsys.py
3.835 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_compare.py
3.9 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_compile.py
22.5 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_compileall.py
16.651 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_complex.py
27.483 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_concurrent_futures.py
23.27 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_configparser.py
70.428 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_contains.py
2.579 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_contextlib.py
25.77 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_copy.py
22.224 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_copyreg.py
4.118 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_cprofile.py
5.41 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_crashers.py
1.182 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_crypt.py
1.059 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_csv.py
41.481 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ctypes.py
0.18 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_curses.py
12.655 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_datetime.py
1.811 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_dbm.py
5.517 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_dbm_dumb.py
7.074 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_dbm_gnu.py
3.275 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_dbm_ndbm.py
1.584 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_decimal.py
198.924 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_decorators.py
9.598 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_defaultdict.py
5.941 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_deque.py
25.26 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_descr.py
175.812 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_descrtut.py
11.502 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_devpoll.py
4.528 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_dict.py
32.362 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_dictcomps.py
3.693 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_dictviews.py
9.457 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_difflib.py
11.964 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_difflib_expect.html
100.862 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
test_dis.py
40.478 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
test_distutils.py
0.366 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_doctest.py
92.943 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_doctest.txt
0.293 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
test_doctest2.py
2.304 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_doctest2.txt
0.383 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
test_doctest3.txt
0.08 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
test_doctest4.txt
0.238 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
test_docxmlrpc.py
8.323 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_dummy_thread.py
6.989 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_dummy_threading.py
1.765 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_dynamic.py
4.374 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_dynamicclassattribute.py
9.67 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ensurepip.py
11.421 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_enum.py
56.396 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_enumerate.py
8.005 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_eof.py
0.835 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_epoll.py
8.674 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_errno.py
1.144 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_exception_variations.py
3.941 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_exceptions.py
36.046 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_extcall.py
8.643 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_faulthandler.py
21.181 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_fcntl.py
5.098 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_file.py
11.095 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_file_eintr.py
10.089 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_filecmp.py
8.686 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_fileinput.py
34.129 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_fileio.py
15.577 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_finalization.py
14.21 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_float.py
59.14 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_flufl.py
0.816 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
test_fnmatch.py
2.839 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_fork1.py
3.694 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_format.py
16.815 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_fractions.py
24.769 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_frame.py
4.419 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ftplib.py
37.372 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_funcattrs.py
13.053 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_functools.py
59.518 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_future.py
4.048 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_future3.py
0.479 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_future4.py
0.103 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_future5.py
0.498 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_gc.py
33.03 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_gdb.py
36.707 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_generators.py
54.268 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_genericpath.py
15.839 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_genexps.py
7.115 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_getargs2.py
23.959 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_getopt.py
6.805 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_getpass.py
6.286 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_gettext.py
22.972 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_glob.py
7.486 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_global.py
1.25 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_grammar.py
33.535 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_grp.py
3.183 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_gzip.py
20.999 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_hash.py
11.435 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_hashlib.py
24.428 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_heapq.py
14.136 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_hmac.py
20.206 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_html.py
4.271 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_htmlparser.py
34.043 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_http_cookiejar.py
73.567 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_http_cookies.py
10.48 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_httplib.py
47.045 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_httpservers.py
32.383 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_idle.py
0.768 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_imaplib.py
17.491 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_imghdr.py
4.31 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_imp.py
19.419 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_import.py
39.276 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_index.py
8.366 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_inspect.py
119.284 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_int.py
17.767 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_int_literal.py
6.965 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_io.py
133.838 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ioctl.py
3.208 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ipaddress.py
74.265 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_isinstance.py
9.933 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_iter.py
29.426 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_iterlen.py
7.12 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_itertools.py
87.804 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_keyword.py
5.703 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_keywordonlyarg.py
7.14 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_kqueue.py
8.218 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_largefile.py
6.4 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_lib2to3.py
0.099 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_linecache.py
4.581 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_list.py
4.332 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_listcomps.py
3.761 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_locale.py
20.155 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_logging.py
141.361 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_long.py
48.019 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_longexp.py
0.301 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_lzma.py
71.027 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
test_macpath.py
6.005 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_macurl2path.py
1.796 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_mailbox.py
90.508 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_mailcap.py
9.005 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_marshal.py
17.7 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_math.py
45.894 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_memoryio.py
28.345 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_memoryview.py
16.229 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_metaclass.py
6.201 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_mimetypes.py
4.179 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_minidom.py
63.376 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_mmap.py
26.566 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_module.py
7.888 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_modulefinder.py
8.739 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_msilib.py
1.434 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_multibytecodec.py
10.07 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_multiprocessing_fork.py
0.17 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_multiprocessing_forkserver.py
0.176 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_multiprocessing_main_handling.py
11.162 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_multiprocessing_spawn.py
0.171 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_netrc.py
4.499 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_nis.py
1.188 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_nntplib.py
58.395 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_normalization.py
3.15 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ntpath.py
18.09 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_numeric_tower.py
7.272 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_opcodes.py
2.612 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_openpty.py
0.666 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_operator.py
18.172 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_optparse.py
60.8 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ordered_dict.py
11.983 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_os.py
98.208 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ossaudiodev.py
7.047 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_osx_env.py
1.311 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_parser.py
25.502 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pathlib.py
74.593 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pdb.py
33.247 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_peepholer.py
12.8 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pep247.py
2.189 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pep277.py
6.843 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pep292.py
9.583 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pep3120.py
1.241 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pep3131.py
0.954 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pep3151.py
7.308 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pep352.py
6.88 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pep380.py
28.924 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pickle.py
15.356 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pickletools.py
2.371 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pipes.py
6.321 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pkg.py
9.53 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pkgimport.py
2.722 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pkgutil.py
14.4 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_platform.py
12.122 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_plistlib.py
22.74 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_poll.py
6.398 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_popen.py
2.026 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_poplib.py
15.991 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_posix.py
50.822 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_posixpath.py
22.966 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pow.py
4.485 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pprint.py
29.852 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_print.py
4.158 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_profile.py
7.613 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_property.py
7.626 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pstats.py
1.265 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
test_pty.py
11.021 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pulldom.py
12.175 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pwd.py
4.127 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_py_compile.py
4.947 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pyclbr.py
6.847 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pydoc.py
39.373 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_pyexpat.py
27.2 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_queue.py
12.836 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_quopri.py
7.858 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_raise.py
11.078 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_random.py
31.32 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_range.py
22.896 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_re.py
73.164 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_readline.py
2.365 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
test_regrtest.py
10.362 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_reprlib.py
14.269 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_resource.py
6.458 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_richcmp.py
10.834 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_rlcompleter.py
4.592 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_robotparser.py
7.353 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_runpy.py
28.641 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_sax.py
41.756 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_sched.py
6.434 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_scope.py
19.76 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_script_helper.py
5.021 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_select.py
2.678 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_selectors.py
14.961 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_set.py
62.656 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_setcomps.py
3.703 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_shelve.py
6.123 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_shlex.py
5.773 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_shutil.py
72.374 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_signal.py
33.076 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
test_site.py
18.808 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_slice.py
8.084 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_smtpd.py
22.056 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_smtplib.py
35.021 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_smtpnet.py
2.759 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_sndhdr.py
0.848 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_socket.py
191.198 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_socketserver.py
10.829 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_sort.py
8.949 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_source_encoding.py
5.142 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_spwd.py
2.285 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_sqlite.py
0.872 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ssl.py
130.328 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ssl.py.openssl11
129.641 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
test_startfile.py
1.211 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_stat.py
6.833 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_statistics.py
68.885 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_strftime.py
7.424 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_string.py
7.694 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_stringprep.py
3.119 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_strlit.py
8.027 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_strptime.py
28.136 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_strtod.py
20.111 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_struct.py
26.905 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_structmembers.py
4.774 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_structseq.py
3.947 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_subprocess.py
108.35 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_sunau.py
4.554 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
test_sundry.py
2.169 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_super.py
4.431 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_support.py
10.094 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_symtable.py
5.82 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_syntax.py
17.645 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_sys.py
38.818 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_sys_setprofile.py
11.089 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_sys_settrace.py
24.66 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_sysconfig.py
16.425 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_syslog.py
1.198 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_systemtap.py
8.862 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_systemtap.py.systemtap
0 KB
17 Apr 2024 5.05 PM
root / linksafe
0644
test_tarfile.py
79.109 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_tcl.py
26.918 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_telnetlib.py
12.677 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_tempfile.py
44.399 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_textwrap.py
35.646 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_thread.py
8.091 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_threaded_import.py
8.25 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_threadedtempfile.py
1.887 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_threading.py
38.229 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_threading_local.py
6.136 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_threadsignals.py
9.22 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_time.py
29.969 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_timeit.py
11.919 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_timeout.py
11.112 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_tk.py
0.447 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_tokenize.py
48.448 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_trace.py
14.454 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_traceback.py
17.819 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_tracemalloc.py
30.244 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ttk_guionly.py
0.827 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ttk_textonly.py
0.396 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_tuple.py
6.987 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_typechecks.py
2.637 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_types.py
42.964 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_ucn.py
9.407 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_unary.py
1.711 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_unicode.py
122.379 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_unicode_file.py
5.728 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_unicodedata.py
12.064 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_unittest.py
0.279 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_univnewlines.py
3.83 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_unpack.py
2.558 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_unpack_ex.py
4.04 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_urllib.py
59.025 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_urllib2.py
65.683 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_urllib2_localnet.py
25.609 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_urllib2net.py
11.96 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_urllib_response.py
1.688 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_urllibnet.py
8.784 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_urlparse.py
51.508 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_userdict.py
7.711 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_userlist.py
1.852 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_userstring.py
1.457 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_uu.py
7.391 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_uuid.py
21.841 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_venv.py
16.164 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_wait3.py
1.13 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_wait4.py
1.113 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_warnings.py
37.125 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_wave.py
3.929 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_weakref.py
62.023 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_weakset.py
15.182 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_webbrowser.py
5.65 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_winreg.py
20.521 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_winsound.py
8.857 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_with.py
25.852 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
test_wsgiref.py
22.498 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_xdrlib.py
2.29 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_xml_dom_minicompat.py
4.182 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_xml_etree.py
106.562 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_xml_etree_c.py
3.988 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_xmlrpc.py
42.052 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_xmlrpc_net.py
1.027 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_zipfile.py
76.192 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_zipfile64.py
5.563 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_zipimport.py
17.693 KB
17 Apr 2024 5.10 PM
root / linksafe
0644
test_zipimport_support.py
10.45 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
test_zlib.py
26.785 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
testcodec.py
1.021 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
testtar.tar
425 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
tf_inherit_check.py
0.563 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
threaded_import_hangers.py
1.449 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
time_hashlib.py
2.827 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt
0.434 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt
0.296 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt
0.411 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt
0.319 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
tokenize_tests.txt
2.654 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
warning_tests.py
0.234 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
win_console_handler.py
1.383 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
xmltests.py
0.487 KB
17 Apr 2024 5.09 PM
root / linksafe
0644
zip_cp437_header.zip
0.264 KB
18 Mar 2019 4.51 PM
root / linksafe
0644
zipdir.zip
0.365 KB
18 Mar 2019 4.51 PM
root / linksafe
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF