mirror of
https://github.com/bunny-lab-io/Borealis.git
synced 2025-07-28 05:58:28 -06:00
Removed the Requirement to Install Python and NodeJS (Now Bundled with Borealis)
This commit is contained in:
166
Dependencies/Python/Lib/test/mock_socket.py
vendored
Normal file
166
Dependencies/Python/Lib/test/mock_socket.py
vendored
Normal file
@ -0,0 +1,166 @@
|
||||
"""Mock socket module used by the smtplib tests.
|
||||
"""
|
||||
|
||||
# imported for _GLOBAL_DEFAULT_TIMEOUT
|
||||
import socket as socket_module
|
||||
|
||||
# Mock socket module
|
||||
_defaulttimeout = None
|
||||
_reply_data = None
|
||||
|
||||
# This is used to queue up data to be read through socket.makefile, typically
|
||||
# *before* the socket object is even created. It is intended to handle a single
|
||||
# line which the socket will feed on recv() or makefile().
|
||||
def reply_with(line):
|
||||
global _reply_data
|
||||
_reply_data = line
|
||||
|
||||
|
||||
class MockFile:
|
||||
"""Mock file object returned by MockSocket.makefile().
|
||||
"""
|
||||
def __init__(self, lines):
|
||||
self.lines = lines
|
||||
def readline(self, limit=-1):
|
||||
result = self.lines.pop(0) + b'\r\n'
|
||||
if limit >= 0:
|
||||
# Re-insert the line, removing the \r\n we added.
|
||||
self.lines.insert(0, result[limit:-2])
|
||||
result = result[:limit]
|
||||
return result
|
||||
def close(self):
|
||||
pass
|
||||
|
||||
|
||||
class MockSocket:
|
||||
"""Mock socket object used by the smtplib tests.
|
||||
"""
|
||||
def __init__(self, family=None):
|
||||
global _reply_data
|
||||
self.family = family
|
||||
self.output = []
|
||||
self.lines = []
|
||||
if _reply_data:
|
||||
self.lines.append(_reply_data)
|
||||
_reply_data = None
|
||||
self.conn = None
|
||||
self.timeout = None
|
||||
|
||||
def queue_recv(self, line):
|
||||
self.lines.append(line)
|
||||
|
||||
def recv(self, bufsize, flags=None):
|
||||
data = self.lines.pop(0) + b'\r\n'
|
||||
return data
|
||||
|
||||
def fileno(self):
|
||||
return 0
|
||||
|
||||
def settimeout(self, timeout):
|
||||
if timeout is None:
|
||||
self.timeout = _defaulttimeout
|
||||
else:
|
||||
self.timeout = timeout
|
||||
|
||||
def gettimeout(self):
|
||||
return self.timeout
|
||||
|
||||
def setsockopt(self, level, optname, value):
|
||||
pass
|
||||
|
||||
def getsockopt(self, level, optname, buflen=None):
|
||||
return 0
|
||||
|
||||
def bind(self, address):
|
||||
pass
|
||||
|
||||
def accept(self):
|
||||
self.conn = MockSocket()
|
||||
return self.conn, 'c'
|
||||
|
||||
def getsockname(self):
|
||||
return ('0.0.0.0', 0)
|
||||
|
||||
def setblocking(self, flag):
|
||||
pass
|
||||
|
||||
def listen(self, backlog):
|
||||
pass
|
||||
|
||||
def makefile(self, mode='r', bufsize=-1):
|
||||
handle = MockFile(self.lines)
|
||||
return handle
|
||||
|
||||
def sendall(self, data, flags=None):
|
||||
self.last = data
|
||||
self.output.append(data)
|
||||
return len(data)
|
||||
|
||||
def send(self, data, flags=None):
|
||||
self.last = data
|
||||
self.output.append(data)
|
||||
return len(data)
|
||||
|
||||
def getpeername(self):
|
||||
return ('peer-address', 'peer-port')
|
||||
|
||||
def close(self):
|
||||
pass
|
||||
|
||||
def connect(self, host):
|
||||
pass
|
||||
|
||||
|
||||
def socket(family=None, type=None, proto=None):
|
||||
return MockSocket(family)
|
||||
|
||||
def create_connection(address, timeout=socket_module._GLOBAL_DEFAULT_TIMEOUT,
|
||||
source_address=None):
|
||||
try:
|
||||
int_port = int(address[1])
|
||||
except ValueError:
|
||||
raise error
|
||||
ms = MockSocket()
|
||||
if timeout is socket_module._GLOBAL_DEFAULT_TIMEOUT:
|
||||
timeout = getdefaulttimeout()
|
||||
ms.settimeout(timeout)
|
||||
return ms
|
||||
|
||||
|
||||
def setdefaulttimeout(timeout):
|
||||
global _defaulttimeout
|
||||
_defaulttimeout = timeout
|
||||
|
||||
|
||||
def getdefaulttimeout():
|
||||
return _defaulttimeout
|
||||
|
||||
|
||||
def getfqdn():
|
||||
return ""
|
||||
|
||||
|
||||
def gethostname():
|
||||
pass
|
||||
|
||||
|
||||
def gethostbyname(name):
|
||||
return ""
|
||||
|
||||
def getaddrinfo(*args, **kw):
|
||||
return socket_module.getaddrinfo(*args, **kw)
|
||||
|
||||
gaierror = socket_module.gaierror
|
||||
error = socket_module.error
|
||||
|
||||
|
||||
# Constants
|
||||
_GLOBAL_DEFAULT_TIMEOUT = socket_module._GLOBAL_DEFAULT_TIMEOUT
|
||||
AF_INET = socket_module.AF_INET
|
||||
AF_INET6 = socket_module.AF_INET6
|
||||
SOCK_STREAM = socket_module.SOCK_STREAM
|
||||
SOL_SOCKET = None
|
||||
SO_REUSEADDR = None
|
||||
|
||||
if hasattr(socket_module, 'AF_UNIX'):
|
||||
AF_UNIX = socket_module.AF_UNIX
|
Reference in New Issue
Block a user