HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/cheroot/__pycache__/testing.cpython-310.pyc
o

;j��@sdZddlZddlZddlZddlZddlZddlmZm	Z	ddl
Z
ddlZddl
ZddlmZdZdZdZdZdZejjeefdd�ejjeefejjd	�iZe	d
d��Ze
jdd
��Ze
jdd��Ze
jdd��Ze
jdd��Z Gdd�d�Z!dd�Z"dd�Z#dd�Z$dS)zAPytest fixtures and other helpers for doing testing by end-users.�N)�closing�contextmanager)�webtestz0.0.0.0z::�)�	bind_addrZwsgi_app)rZgatewayc	cs��t|��}|�d�d}ttfD]}z||f}|dd|i|��}Wn	ty,Yqwd|_tj|j	d�}|�
�|jsGt�
d�|jr?z||fVW|��|��dS|��|��w)z/Set up and tear down a Cheroot server instance.r���r)�targetg�������?N�)�config�copy�pop�ANY_INTERFACE_IPV6�ANY_INTERFACE_IPV4�OSErrorZshutdown_timeout�	threading�ThreadZ
safe_start�start�ready�time�sleep�stop�join)Zserver_factoryZconfZ	bind_port�	interfaceZactual_bind_addrZ
httpserver�
server_threadr	r	�C/opt/saltstack/salt/lib/python3.10/site-packages/cheroot/testing.py�cheroot_server&s6��
��
��
rcc�B�ttjj��\}}||fVWd�dS1swYdS)ztSet up and tear down a Cheroot WSGI server instance.

    This emits a tuple of a thread and a server instance.
    N)r�cheroot�wsgi�Server�r�srvr	r	r�thread_and_wsgi_serverH��"�r"ccr)ztSet up and tear down a Cheroot HTTP server instance.

    This emits a tuple of a thread and a server instance.
    N)rr�server�
HTTPServerr r	r	r�thread_and_native_serverRr#r&cC�|\}}|S)z4Set up and tear down a Cheroot WSGI server instance.r	)r"�_server_threadr!r	r	r�wsgi_server\�r)cCr')z4Set up and tear down a Cheroot HTTP server instance.r	)r&r(r!r	r	r�
native_servercr*r+c@s6eZdZdd�Zdd�Z				ddd	�Zd
d�ZdS)
�_TestClientcCs*t|j�\|_|_|_||_|��|_dS)N)�_get_conn_datar�
_interface�_host�_port�server_instance�get_connection�_http_connection)�selfr$r	r	r�__init__ks
�z_TestClient.__init__cCs6|j�d|j��}|jjdurtjjntjj}||�S)N�:)r.r0r1Zssl_adapter�http�client�HTTPConnection�HTTPSConnection)r4�nameZconn_clsr	r	rr2rs��z_TestClient.get_connection�GETN�HTTP/1.1c	Cs"tj||||j|j|p
|j|d�S)N)�method�headers�host�port�	http_conn�protocol)rZopenURLr/r0r3)r4�urir>r?rBrCr	r	r�request{s�z_TestClient.requestcs��fdd�}|S)Ncs���}�j|fd|i|��S)Nr>)�upperrE)rD�kwargsZhttp_method��	attr_namer4r	r�_wrapper�sz)_TestClient.__getattr__.<locals>._wrapperr	)r4rIrJr	rHr�__getattr__�sz_TestClient.__getattr__)r<NNr=)�__name__�
__module__�__qualname__r5r2rErKr	r	r	rr,js
�r,c
Cs�z%ttjtjd���}|�|df�Wd�WdS1swYWdSty?}z|jtjkr4�WYd}~dSd}~ww)N)�familyrTF)r�socket�AF_INET6�bindr�errnoZ
EADDRNOTAVAIL)r�sockZsock_errr	r	r�_probe_ipv6_sock�s���
���rUcCsRt|t�r
|\}}n|d}}t�|�}d|vr$t|�s$d}d|vr$|}|||fS)Nrr6z	127.0.0.1)�
isinstance�tuplerrrU)rr@rArr	r	rr-�s




r-cCst|�S)z5Create and return a test client for the given server.)r,)r$r	r	r�get_server_client�srX)%�__doc__rS�http.clientr7rPrr�
contextlibrrZpytestZcheroot.serverrZcheroot.wsgiZcheroot.testrZEPHEMERAL_PORTZNO_INTERFACErr
ZSUCCESSFUL_SUBPROCESS_EXITrrr$r%ZGatewayr
rZfixturer"r&r)r+r,rUr-rXr	r	r	r�<module>sN���
!
	
	

+