__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# Copyright (c) Twisted Matrix Laboratories.
# See LICENSE for details.
from __future__ import annotations
import errno
import socket
import sys
from typing import Sequence
from twisted.internet import error
from twisted.trial import unittest
class StringificationTests(unittest.SynchronousTestCase):
"""Test that the exceptions have useful stringifications."""
listOfTests: list[
tuple[
str,
type[Exception],
Sequence[str | int | Exception | None],
dict[str, str | int],
]
] = [
# (output, exception[, args[, kwargs]]),
("An error occurred binding to an interface.", error.BindError, [], {}),
(
"An error occurred binding to an interface: foo.",
error.BindError,
["foo"],
{},
),
(
"An error occurred binding to an interface: foo bar.",
error.BindError,
["foo", "bar"],
{},
),
(
"Couldn't listen on eth0:4242: Foo.",
error.CannotListenError,
("eth0", 4242, socket.error("Foo")),
{},
),
("Message is too long to send.", error.MessageLengthError, [], {}),
(
"Message is too long to send: foo bar.",
error.MessageLengthError,
["foo", "bar"],
{},
),
("DNS lookup failed.", error.DNSLookupError, [], {}),
("DNS lookup failed: foo bar.", error.DNSLookupError, ["foo", "bar"], {}),
("An error occurred while connecting.", error.ConnectError, [], {}),
(
"An error occurred while connecting: someOsError.",
error.ConnectError,
["someOsError"],
{},
),
(
"An error occurred while connecting: foo.",
error.ConnectError,
[],
{"string": "foo"},
),
(
"An error occurred while connecting: someOsError: foo.",
error.ConnectError,
["someOsError", "foo"],
{},
),
("Couldn't bind.", error.ConnectBindError, [], {}),
("Couldn't bind: someOsError.", error.ConnectBindError, ["someOsError"], {}),
(
"Couldn't bind: someOsError: foo.",
error.ConnectBindError,
["someOsError", "foo"],
{},
),
("Hostname couldn't be looked up.", error.UnknownHostError, [], {}),
("No route to host.", error.NoRouteError, [], {}),
("Connection was refused by other side.", error.ConnectionRefusedError, [], {}),
("TCP connection timed out.", error.TCPTimedOutError, [], {}),
("File used for UNIX socket is no good.", error.BadFileError, [], {}),
(
"Service name given as port is unknown.",
error.ServiceNameUnknownError,
[],
{},
),
("User aborted connection.", error.UserError, [], {}),
("User timeout caused connection failure.", error.TimeoutError, [], {}),
("An SSL error occurred.", error.SSLError, [], {}),
(
"Connection to the other side was lost in a non-clean fashion.",
error.ConnectionLost,
[],
{},
),
(
"Connection to the other side was lost in a non-clean fashion: foo bar.",
error.ConnectionLost,
["foo", "bar"],
{},
),
("Connection was closed cleanly.", error.ConnectionDone, [], {}),
(
"Connection was closed cleanly: foo bar.",
error.ConnectionDone,
["foo", "bar"],
{},
),
(
"Uh.", # TODO nice docstring, you've got there.
error.ConnectionFdescWentAway,
[],
{},
),
("Tried to cancel an already-called event.", error.AlreadyCalled, [], {}),
(
"Tried to cancel an already-called event: foo bar.",
error.AlreadyCalled,
["foo", "bar"],
{},
),
("Tried to cancel an already-cancelled event.", error.AlreadyCancelled, [], {}),
(
"Tried to cancel an already-cancelled event: x 2.",
error.AlreadyCancelled,
["x", "2"],
{},
),
(
"A process has ended without apparent errors: process finished with exit code 0.",
error.ProcessDone,
[None],
{},
),
(
"A process has ended with a probable error condition: process ended.",
error.ProcessTerminated,
[],
{},
),
(
"A process has ended with a probable error condition: process ended with exit code 42.",
error.ProcessTerminated,
[],
{"exitCode": 42},
),
(
"A process has ended with a probable error condition: process ended by signal SIGBUS.",
error.ProcessTerminated,
[],
{"signal": "SIGBUS"},
),
(
"The Connector was not connecting when it was asked to stop connecting.",
error.NotConnectingError,
[],
{},
),
(
"The Connector was not connecting when it was asked to stop connecting: x 13.",
error.NotConnectingError,
["x", "13"],
{},
),
(
"The Port was not listening when it was asked to stop listening.",
error.NotListeningError,
[],
{},
),
(
"The Port was not listening when it was asked to stop listening: a 12.",
error.NotListeningError,
["a", "12"],
{},
),
]
def testThemAll(self) -> None:
for entry in self.listOfTests:
output = entry[0]
exception = entry[1]
args = entry[2]
kwargs = entry[3]
self.assertEqual(str(exception(*args, **kwargs)), output)
def test_connectingCancelledError(self) -> None:
"""
L{error.ConnectingCancelledError} has an C{address} attribute.
"""
address = object()
e = error.ConnectingCancelledError(address)
self.assertIs(e.address, address)
class SubclassingTests(unittest.SynchronousTestCase):
"""
Some exceptions are subclasses of other exceptions.
"""
def test_connectionLostSubclassOfConnectionClosed(self) -> None:
"""
L{error.ConnectionClosed} is a superclass of L{error.ConnectionLost}.
"""
self.assertTrue(issubclass(error.ConnectionLost, error.ConnectionClosed))
def test_connectionDoneSubclassOfConnectionClosed(self) -> None:
"""
L{error.ConnectionClosed} is a superclass of L{error.ConnectionDone}.
"""
self.assertTrue(issubclass(error.ConnectionDone, error.ConnectionClosed))
def test_invalidAddressErrorSubclassOfValueError(self) -> None:
"""
L{ValueError} is a superclass of L{error.InvalidAddressError}.
"""
self.assertTrue(issubclass(error.InvalidAddressError, ValueError))
class GetConnectErrorTests(unittest.SynchronousTestCase):
"""
Given an exception instance thrown by C{socket.connect},
L{error.getConnectError} returns the appropriate high-level Twisted
exception instance.
"""
def assertErrnoException(
self, errno: int, expectedClass: type[error.ConnectError]
) -> None:
"""
When called with a tuple with the given errno,
L{error.getConnectError} returns an exception which is an instance of
the expected class.
"""
e = (errno, "lalala")
result = error.getConnectError(e)
self.assertCorrectException(errno, "lalala", result, expectedClass)
def assertCorrectException(
self,
errno: int | None,
message: object,
result: error.ConnectError,
expectedClass: type[error.ConnectError],
) -> None:
"""
The given result of L{error.getConnectError} has the given attributes
(C{osError} and C{args}), and is an instance of the given class.
"""
# Want exact class match, not inherited classes, so no isinstance():
self.assertEqual(result.__class__, expectedClass)
self.assertEqual(result.osError, errno)
self.assertEqual(result.args, (message,))
def test_errno(self) -> None:
"""
L{error.getConnectError} converts based on errno for C{socket.error}.
"""
self.assertErrnoException(errno.ENETUNREACH, error.NoRouteError)
self.assertErrnoException(errno.ECONNREFUSED, error.ConnectionRefusedError)
self.assertErrnoException(errno.ETIMEDOUT, error.TCPTimedOutError)
if sys.platform == "win32":
self.assertErrnoException(
errno.WSAECONNREFUSED, error.ConnectionRefusedError
)
self.assertErrnoException(errno.WSAENETUNREACH, error.NoRouteError)
def test_gaierror(self) -> None:
"""
L{error.getConnectError} converts to a L{error.UnknownHostError} given
a C{socket.gaierror} instance.
"""
result = error.getConnectError(socket.gaierror(12, "hello"))
self.assertCorrectException(12, "hello", result, error.UnknownHostError)
def test_nonTuple(self) -> None:
"""
L{error.getConnectError} converts to a L{error.ConnectError} given
an argument that cannot be unpacked.
"""
e = Exception()
result = error.getConnectError(e)
self.assertCorrectException(None, e, result, error.ConnectError)
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| __init__.py | File | 475 B | 0644 |
|
| cert.pem.no_trailing_newline | File | 1.46 KB | 0644 |
|
| crash_test_dummy.py | File | 654 B | 0644 |
|
| ignore_test_failure.py | File | 34.88 KB | 0644 |
|
| iosim.py | File | 18.4 KB | 0644 |
|
| key.pem.no_trailing_newline | File | 1.63 KB | 0644 |
|
| mock_win32process.py | File | 1.25 KB | 0644 |
|
| myrebuilder1.py | File | 172 B | 0644 |
|
| myrebuilder2.py | File | 172 B | 0644 |
|
| plugin_basic.py | File | 925 B | 0644 |
|
| plugin_extra1.py | File | 400 B | 0644 |
|
| plugin_extra2.py | File | 566 B | 0644 |
|
| process_cmdline.py | File | 123 B | 0644 |
|
| process_echoer.py | File | 214 B | 0644 |
|
| process_fds.py | File | 983 B | 0644 |
|
| process_getargv.py | File | 233 B | 0644 |
|
| process_getenv.py | File | 268 B | 0644 |
|
| process_linger.py | File | 297 B | 0644 |
|
| process_reader.py | File | 178 B | 0644 |
|
| process_signal.py | File | 220 B | 0644 |
|
| process_stdinreader.py | File | 739 B | 0644 |
|
| process_tester.py | File | 787 B | 0644 |
|
| process_tty.py | File | 130 B | 0644 |
|
| process_twisted.py | File | 1.15 KB | 0644 |
|
| proto_helpers.py | File | 1.34 KB | 0644 |
|
| reflect_helper_IE.py | File | 60 B | 0644 |
|
| reflect_helper_VE.py | File | 81 B | 0644 |
|
| reflect_helper_ZDE.py | File | 48 B | 0644 |
|
| server.pem | File | 5.23 KB | 0644 |
|
| ssl_helpers.py | File | 1.72 KB | 0644 |
|
| stdio_test_consumer.py | File | 1.14 KB | 0644 |
|
| stdio_test_halfclose.py | File | 2 KB | 0644 |
|
| stdio_test_hostpeer.py | File | 1.06 KB | 0644 |
|
| stdio_test_lastwrite.py | File | 1.13 KB | 0644 |
|
| stdio_test_loseconn.py | File | 1.55 KB | 0644 |
|
| stdio_test_producer.py | File | 1.45 KB | 0644 |
|
| stdio_test_write.py | File | 902 B | 0644 |
|
| stdio_test_writeseq.py | File | 894 B | 0644 |
|
| test_abstract.py | File | 3.66 KB | 0644 |
|
| test_adbapi.py | File | 25.47 KB | 0644 |
|
| test_amp.py | File | 108.04 KB | 0644 |
|
| test_application.py | File | 33.34 KB | 0644 |
|
| test_compat.py | File | 17.75 KB | 0644 |
|
| test_context.py | File | 1.43 KB | 0644 |
|
| test_cooperator.py | File | 20.84 KB | 0644 |
|
| test_defer.py | File | 143.37 KB | 0644 |
|
| test_defgen.py | File | 13.01 KB | 0644 |
|
| test_dirdbm.py | File | 6.9 KB | 0644 |
|
| test_error.py | File | 9.6 KB | 0644 |
|
| test_factories.py | File | 4.46 KB | 0644 |
|
| test_fdesc.py | File | 7.28 KB | 0644 |
|
| test_finger.py | File | 1.89 KB | 0644 |
|
| test_formmethod.py | File | 4.27 KB | 0644 |
|
| test_ftp.py | File | 126.96 KB | 0644 |
|
| test_ftp_options.py | File | 2.65 KB | 0644 |
|
| test_htb.py | File | 3.19 KB | 0644 |
|
| test_ident.py | File | 6.56 KB | 0644 |
|
| test_internet.py | File | 45.38 KB | 0644 |
|
| test_iosim.py | File | 9.58 KB | 0644 |
|
| test_iutils.py | File | 13.31 KB | 0644 |
|
| test_lockfile.py | File | 15.54 KB | 0644 |
|
| test_log.py | File | 36.86 KB | 0644 |
|
| test_logfile.py | File | 17.79 KB | 0644 |
|
| test_loopback.py | File | 13.99 KB | 0644 |
|
| test_main.py | File | 2.12 KB | 0644 |
|
| test_memcache.py | File | 24.69 KB | 0644 |
|
| test_modules.py | File | 17.84 KB | 0644 |
|
| test_monkey.py | File | 6.38 KB | 0644 |
|
| test_paths.py | File | 73.64 KB | 0644 |
|
| test_pcp.py | File | 12.23 KB | 0644 |
|
| test_persisted.py | File | 14.73 KB | 0644 |
|
| test_plugin.py | File | 26.02 KB | 0644 |
|
| test_policies.py | File | 32.28 KB | 0644 |
|
| test_postfix.py | File | 4.32 KB | 0644 |
|
| test_process.py | File | 86.29 KB | 0644 |
|
| test_protocols.py | File | 7.16 KB | 0644 |
|
| test_randbytes.py | File | 3.63 KB | 0644 |
|
| test_rebuild.py | File | 7.4 KB | 0644 |
|
| test_reflect.py | File | 23.89 KB | 0644 |
|
| test_roots.py | File | 1.65 KB | 0644 |
|
| test_shortcut.py | File | 1.91 KB | 0644 |
|
| test_sip.py | File | 24.9 KB | 0644 |
|
| test_sob.py | File | 5.53 KB | 0644 |
|
| test_socks.py | File | 17.09 KB | 0644 |
|
| test_ssl.py | File | 22.73 KB | 0644 |
|
| test_sslverify.py | File | 113.84 KB | 0644 |
|
| test_stateful.py | File | 1.97 KB | 0644 |
|
| test_stdio.py | File | 12.43 KB | 0644 |
|
| test_strerror.py | File | 5.1 KB | 0644 |
|
| test_strports.py | File | 1.67 KB | 0644 |
|
| test_task.py | File | 47.73 KB | 0644 |
|
| test_tcp.py | File | 64.26 KB | 0644 |
|
| test_tcp_internals.py | File | 12.73 KB | 0644 |
|
| test_text.py | File | 6.47 KB | 0644 |
|
| test_threadable.py | File | 3.26 KB | 0644 |
|
| test_threadpool.py | File | 21.64 KB | 0644 |
|
| test_threads.py | File | 12.9 KB | 0644 |
|
| test_tpfile.py | File | 1.69 KB | 0644 |
|
| test_twistd.py | File | 72.29 KB | 0644 |
|
| test_twisted.py | File | 6.13 KB | 0644 |
|
| test_udp.py | File | 26.79 KB | 0644 |
|
| test_unix.py | File | 13.26 KB | 0644 |
|
| test_usage.py | File | 22.76 KB | 0644 |
|
| testutils.py | File | 5.06 KB | 0644 |
|