HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/pbr/tests/__pycache__/test_wsgi.cpython-38.pyc
U

kx�^��@stddlZddlZddlZddlZzddlmZWn ek
rPddlmZYnXddlm	Z	Gdd�de	j
�ZdS)�N)�urlopen)�basec@sBeZdZdZdd�Zdd�Zdd�Zdd	d
�Zdd�Zd
d�Z	dS)�TestWsgiScripts)�
pbr_test_wsgiZpbr_test_wsgi_with_classcCsztj�d|j�rd|j}nBtj�d|j�r<d|j}n$tj�d|j�rXd|jStd��d|tjdtjdfS)	Nz%s/lib64z%s/libz%s/site-packagesz.:%s/site-packagesz!Could not determine path for testz.:%s/python%s.%s/site-packagesr�)�os�path�isdir�temp_dir�	Exception�sys�version_info)�selfr�r�5/usr/lib/python3/dist-packages/pbr/tests/test_wsgi.py�	_get_path!s
�zTestWsgiScripts._get_pathcCs:tjdkr|�d�|�dd|j�\}}}|�|�dS)z5Test that we install a non-pkg-resources wsgi script.�nt�Windows support is passthrough�install�--prefix=%sN)r�name�skipTest�	run_setupr
�_check_wsgi_install_content�r�stdout�_�return_coderrr�test_wsgi_script_install/s

�
z(TestWsgiScripts.test_wsgi_script_installcCs\|�d�tjdkr|�d�|�dd|j�\}}}|�|�|jD]}|�|d�qFdS)z�Test that we install a runnable wsgi script.

        This test actually attempts to start and interact with the
        wsgi script in question to demonstrate that it's a working
        wsgi script using simple server.

        �Not working on DebianrrrrsHello WorldN)rrrrr
r�	cmd_names�
_test_wsgi)rrrr�cmd_namerrr�test_wsgi_script_run9s


�


z$TestWsgiScripts.test_wsgi_script_runNcCs>tj�|jd|�}td|�|ddddg}|r:|�|�d|��i}tj|tj	tj	|j|d�}|�
|j�|j�
�}|j�
�}|�d	|�|j�
�}t|�t�d
|�}	|�|	d|�|j�
�}|�d|�|j�
�}t|	�d
��d��}
|�||
���t|	�d
��d��|j�
�}dt|�}|�|�d�|�dS)N�binzRunning %s -p 0 -b 127.0.0.1z-p�0z-bz	127.0.0.1�
PYTHONPATH)r�stderr�cwd�envs)STARTING test server pbr_testpackage.wsgis(http://[^:]+:\d+)/zRegex failed to match on %ss2DANGER! For testing only, do not use in productionrzutf-8z"GET / HTTP/1.1" 200 %d)rr�joinr
�print�extendr�
subprocess�Popen�PIPEZ
addCleanup�killr�readline�assertIn�re�searchZassertIsNotNoner�group�decodeZassertEqual�readr'�len�encode)rr"�outputZ
extra_args�cmdZ	popen_cmdr)�pZ
stdoutdata�m�fZstatusrrrr!OsD

�

�

�

zTestWsgiScripts._test_wsgic
Cs�|jD]�}d||jf}|�||�tj�|jd|�}t|d���}|�d|�d}|dkrbd}nd}d	|}d
}	|�||�|�||�|�|	|�qdS)NzInstalling %s script to %sr$�rZ
pkg_resourceszwif __name__ == "__main__":
    import argparse
    import socket
    import sys
    import wsgiref.simple_server as wssr�mainzWSGI.appz,STARTING test server pbr_testpackage.wsgi.%szelse:
    application = None)	r r
r2rrr*�openr7ZassertNotIn)
rZinstall_stdoutr"Zinstall_txtZcmd_filenameZ
script_txtZ
main_blockZapp_nameZstarting_blockZ
else_blockrrrr}s&
��z+TestWsgiScripts._check_wsgi_install_contentcCsN|�d�tjdkr|�d�|�dd|j�\}}}|�dddd	d
g�dS)NrrrrrrsFoo Barz--z-czFoo Bar)rrrrr
r!rrrr�test_with_argument�s


�
z"TestWsgiScripts.test_with_argument)N)
�__name__�
__module__�__qualname__r rrr#r!rrBrrrrrs

. r)rr3r-rZurllib2r�ImportErrorZurllib.requestZ	pbr.testsrZBaseTestCaserrrrr�<module>s