
                         Z    S SK Jr  S SKrS SKrS SKrS SKJr  S SKJ	r	  Sr
 " S S\5      rg)    N)
WSGIServer)
exceptionsztest.invalidc                   d    \ rS rSr\R
                  " SS9S 5       rS rS rS r	S r
S	 rS
 rSrg)RequestResponseTests   module)scopec              #   F  #    [         R                  " [        5      nSUl        UR	                  S5      S 5       nUR	                  S5      S 5       nUR	                  S5      S 5       n[        UR                  S9nUR                  5         Uv   UR                  5         g	7f)
zProvides a test HTTP server.

The test server is automatically created before
a test and destroyed at the end. The server is serving a test
application that can be used to verify requests.
T/basicc                      [         R                  R                  R                  SS5      n SU 0nS[        R
                  U4$ )Nx-test-headervaluezX-Test-HeaderzBasic Content)flaskrequestheadersgethttp_clientOK)header_valuer   s     Tplatform/gsutil/third_party/google-auth-library-python/tests/transport/compliance.pyindex*RequestResponseTests.server.<locals>.index*   s9     ==0044_gNL&5G"KNNG;;    /server_errorc                  &    S[         R                  4$ )NError)r   INTERNAL_SERVER_ERROR r   r   server_error1RequestResponseTests.server.<locals>.server_error0   s    K====r   /waitc                  0    [         R                  " S5        g)N   Waited)timesleepr   r   r   wait)RequestResponseTests.server.<locals>.wait4   s    JJqMr   )applicationN)	r   Flask__name__debugrouter   wsgi_appstartstop)selfappr   r   r'   servers         r   r3   RequestResponseTests.server   s      kk(#	 
8		< 
	<
 
?	#	> 
$	> 
7		 
	 5s   BB!c                     U R                  5       nU" UR                  S-   SS9nUR                  [        R                  :X  d   eUR
                  S   S:X  d   eUR                  S:X  d   eg )Nr   GETurlmethodr   r      Basic Contentmake_requestr8   statusr   r   r   datar1   r3   r   responses       r   test_request_basic'RequestResponseTests.test_request_basic@   sg    ##%vzzH4UC+..0000G;;;}} 0000r   c                     U R                  5       nU" UR                  S-   SSS9nUR                  [        R                  :X  d   eUR
                  S   S:X  d   eUR                  S:X  d   eg )Nr   r6      r8   r9   timeoutr   r   r:   r;   r?   s       r   !test_request_with_timeout_success6RequestResponseTests.test_request_with_timeout_successH   si    ##%vzzH4UAN+..0000G;;;}} 0000r   c                     U R                  5       n[        R                  " [        R                  5         U" UR
                  S-   SSS9  S S S 5        g ! , (       d  f       g = f)Nr!   r6      rE   )r<   pytestraisesr   TransportErrorr8   )r1   r3   r   s      r   !test_request_with_timeout_failure6RequestResponseTests.test_request_with_timeout_failureP   sC    ##%]]:445

W,UAF 655s   A
A"c                     U R                  5       nU" UR                  S-   SSS0S9nUR                  [        R                  :X  d   eUR
                  S   S:X  d   eUR                  S:X  d   eg )Nr   r6   r   zhello world)r8   r9   r   r:   r;   r?   s       r   test_request_headers)RequestResponseTests.test_request_headersV   su    ##%

X%$m4
 +..0000MAAA}} 0000r   c                     U R                  5       nU" UR                  S-   SS9nUR                  [        R                  :X  d   eUR
                  S:X  d   eg )Nr   r6   r7   s   Error)r<   r8   r=   r   r   r>   r?   s       r   test_request_error'RequestResponseTests.test_request_errorb   sO    ##%vzzO;EJ+"C"CCCC}}(((r   c                     U R                  5       n[        R                  " [        R                  5         U" SR                  [        5      SS9  S S S 5        g ! , (       d  f       g = f)Nz	http://{}r6   r7   )r<   rK   rL   r   rM   formatNXDOMAIN)r1   r   s     r   test_connection_error*RequestResponseTests.test_connection_errori   sC    ##%]]:445**84UC 655s   A
A'r   N)r+   
__module____qualname____firstlineno__rK   fixturer3   rA   rG   rN   rQ   rT   rY   __static_attributes__r   r   r   r   r      s>    ^^(#  $ D11G
1)Dr   r   )http.clientclientr   r%   r   rK   pytest_localserver.httpr   google.authr   rX   objectr   r   r   r   <module>re      s0    "    . " PD6 PDr   