§
    °³Ùgm  ã                   óŠ   — d dl Z d dlZd dlZd dlZ	 d dlmZ n# e$ r	 d dlmZ Y nw xY wd dlm	Z	  G d„ de	j
        ¦  «        ZdS )é    N)Úurlopen)Úbasec                   ó8   — e Zd ZdZd„ Zd„ Zd„ Zd	d„Zd„ Zd„ Z	dS )
ÚTestWsgiScripts)Úpbr_test_wsgiÚpbr_test_wsgi_with_classc                 ó¢  — t           j                             d| j        z  ¦  «        rd| j        z  }nrt           j                             d| j        z  ¦  «        rd| j        z  }n@t           j                             d| j        z  ¦  «        r
d| j        z  S t	          d¦  «        ‚d|›dt
          j        d         ›d	t
          j        d
         ›d�S )Nz%s/lib64z%s/libz%s/site-packagesz.:%s/site-packagesz!Could not determine path for testz.:z/pythonr   ú.é   z/site-packages)ÚosÚpathÚisdirÚtemp_dirÚ	ExceptionÚsysÚversion_info)Úselfr   s     úI/granary/edev/quantum/lib/python3.11/site-packages/pbr/tests/test_wsgi.pyÚ	_get_pathzTestWsgiScripts._get_path!   sÉ   € ÝŒ7�=Š=˜ d¤mÑ3Ñ4Ô4ð 	AØ ¤Ñ-ˆDˆDÝŒW�]Š]˜8 d¤mÑ3Ñ4Ô4ð 	AØ˜dœmÑ+ˆDˆDÝŒW�]Š]Ð-°´Ñ=Ñ>Ô>ð 	AØ'¨$¬-Ñ7Ð7åÐ?Ñ@Ô@Ð@øàˆDˆDÝÔ˜QÔÐÐÝÔ˜QÔÐÐð!ð 	!ó    c                 ó¾   — t           j        dk    r|                      d¦  «         |                      dd| j        z  ¦  «        \  }}}|                      |¦  «         dS )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_codes       r   Útest_wsgi_script_installz(TestWsgiScripts.test_wsgi_script_install/   sb   € åŒ7�dŠ?ˆ?Ø�MŠMÐ:Ñ;Ô;Ð;à!%§¢Ø�} t¤}Ñ4ñ"6ô "6Ñˆ��;ð 	×(Ò(¨Ñ0Ô0Ð0Ð0Ð0r   c                 óþ   — t           j        dk    r|                      d¦  «         |                      dd| j        z  ¦  «        \  }}}|                      |¦  «         | j        D ]}|                      |d¦  «         ŒdS )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.

        r   r   r   r   s   Hello WorldN)r   r   r   r   r   r   Ú	cmd_namesÚ
_test_wsgi)r   r!   r"   r#   Úcmd_names        r   Útest_wsgi_script_runz$TestWsgiScripts.test_wsgi_script_run9   s’   € õ Œ7�dŠ?ˆ?Ø�MŠMÐ:Ñ;Ô;Ð;à!%§¢Ø�} t¤}Ñ4ñ"6ô "6Ñˆ��;ð 	×(Ò(¨Ñ0Ô0Ð0ð œð 	6ð 	6ˆHØ�OŠO˜H nÑ5Ô5Ð5Ð5ð	6ð 	6r   Nc                 ó  — t           j                             | j        d|¦  «        }t	          d|z  ¦  «         |ddddg}|r|                     |¦  «         d|                      ¦   «         i}t          j        |t          j	        t          j	        | j        |¬¦  «        }|  
                    |j        ¦  «         |j                             ¦   «         }|j                             ¦   «         }|                      d	|¦  «         |j                             ¦   «         }t	          |¦  «         t          j        d
|¦  «        }	|                      |	d|z  ¦  «         |j                             ¦   «         }|                      d|¦  «         |j                             ¦   «         }t%          |	                     d¦  «                             d¦  «        ¦  «        }
|                      ||
                     ¦   «         ¦  «         t%          |	                     d¦  «                             d¦  «        ¦  «         |j                             ¦   «         }dt1          |¦  «        z  }|                      |                     d¦  «        |¦  «         d S )NÚbinzRunning %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+)/zRegex failed to match on %ss2   DANGER! For testing only, do not use in productionr   zutf-8z"GET / HTTP/1.1" 200 %d)r   r   Újoinr   ÚprintÚextendr   Ú
subprocessÚPopenÚPIPEÚ
addCleanupÚkillr!   ÚreadlineÚassertInÚreÚsearchÚassertIsNotNoner   ÚgroupÚdecodeÚassertEqualÚreadr.   ÚlenÚencode)r   r(   ÚoutputÚ
extra_argsÚcmdÚ	popen_cmdr0   ÚpÚ
stdoutdataÚmÚfÚstatuss               r   r'   zTestWsgiScripts._test_wsgiN   s;  € ÝŒg�lŠl˜4œ=¨%°Ñ:Ô:ˆÝÐ,¨sÑ2Ñ3Ô3Ð3Ø˜$  T¨;Ð7ˆ	Øð 	)Ø×Ò˜ZÑ(Ô(Ð(à˜TŸ^š^Ñ-Ô-Ð.ˆåÔ˜Y­z¬Ý$.¤O¸¼Ø!$ð&ñ &ô &ˆð 	�Š˜œÑÔÐà”X×&Ò&Ñ(Ô(ˆ
à”X×&Ò&Ñ(Ô(ˆ
Ø�ŠØ8Øñ	ô 	ð 	ð ”X×&Ò&Ñ(Ô(ˆ
ÝˆjÑÔÐÝŒIÐ-¨zÑ:Ô:ˆØ×Ò˜QÐ =À
Ñ JÑKÔKÐKà”X×&Ò&Ñ(Ô(ˆ
Ø�ŠØAØñ	ô 	ð 	ð ”X×&Ò&Ñ(Ô(ˆ
å�A—G’G˜A‘J”J×%Ò% gÑ.Ô.Ñ/Ô/ˆØ×Ò˜ §¢¡¤Ñ*Ô*Ð*õ 	�—’˜‘
”
×!Ò! 'Ñ*Ô*Ñ+Ô+Ð+à”X×&Ò&Ñ(Ô(ˆ
ð +­S°©[¬[Ñ8ˆØ�Š�f—m’m GÑ,Ô,¨jÑ9Ô9Ð9Ð9Ð9r   c                 óÈ  — | j         D ]Ù}d|›d| j        ›�}|                      ||¦  «         t          j                             | j        d|¦  «        }t          |d¦  «                             ¦   «         }|                      d|¦  «         d}|dk    rd}nd	}d
|z  }d}	|                      ||¦  «         |                      ||¦  «         |                      |	|¦  «         ŒÚd S )NzInstalling z script to r+   ÚrÚpkg_resourceszwif __name__ == "__main__":
    import argparse
    import socket
    import sys
    import wsgiref.simple_server as wssr   ÚmainzWSGI.appz,STARTING test server pbr_testpackage.wsgi.%szelse:
    application = None)	r&   r   r:   r   r   r1   ÚopenrA   ÚassertNotIn)
r   Úinstall_stdoutr(   Úinstall_txtÚcmd_filenameÚ
script_txtÚ
main_blockÚapp_nameÚstarting_blockÚ
else_blocks
             r   r   z+TestWsgiScripts._check_wsgi_install_content|   s
  € Øœð 	2ð 	2ˆHˆHØ:B¸(¸(Ø:>¼-¸-ðIˆKà�MŠM˜+ ~Ñ6Ô6Ð6åœ7Ÿ<š<¨¬°u¸hÑGÔGˆLå˜l¨CÑ0Ô0×5Ò5Ñ7Ô7ˆJØ×Ò˜_¨jÑ9Ô9Ð9ð+ˆJð ˜?Ò*Ð*Ø!��à%�ð#Ø%-ñ.ˆNðˆJð �MŠM˜* jÑ1Ô1Ð1Ø�MŠM˜.¨*Ñ5Ô5Ð5Ø�MŠM˜* jÑ1Ô1Ð1Ð1ð;	2ð 	2r   c                 óÆ   — t           j        dk    r|                      d¦  «         |                      dd| j        z  ¦  «        \  }}}|                      ddg d¢¦  «         d S )Nr   r   r   r   r   s   Foo Bar)z--z-czFoo Bar)r   r   r   r   r   r'   r    s       r   Útest_with_argumentz"TestWsgiScripts.test_with_argumentœ   sk   € ÝŒ7�dŠ?ˆ?Ø�MŠMÐ:Ñ;Ô;Ð;à!%§¢Ø�} t¤}Ñ4ñ"6ô "6Ñˆ��;ð 	�Š˜¨Ð5LÐ5LÐ5LÑMÔMÐMÐMÐMr   )N)
Ú__name__Ú
__module__Ú__qualname__r&   r   r$   r)   r'   r   r\   © r   r   r   r      s   € € € € € à=€Ið!ð !ð !ð1ð 1ð 1ð6ð 6ð 6ð*,:ð ,:ð ,:ð ,:ð\2ð 2ð 2ð@Nð Nð Nð Nð Nr   r   )r   r;   r4   r   Úurllib2r   ÚImportErrorÚurllib.requestÚ	pbr.testsr   ÚBaseTestCaser   r`   r   r   ú<module>rf      sÚ   ðð 
€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
ð'àÐÐÐÐÐÐøØð 'ð 'ð 'à&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ð'øøøð Ð Ð Ð Ð Ð ðFNð FNð FNð FNð FN�dÔ'ñ FNô FNð FNð FNð FNs   ’ ™'¦'