
                          N    d dl Zd dlZd dlmZ d dlZd dlmZ dZ G d de	      Z
y)    N)
exceptions)
WSGIServerztest.invalidc                   \    e Zd Z ej                  d      d        Zd Zd Zd Zd Z	d Z
y	)
RequestResponseTestsmodule)scopec              #     K   t        j                  t              }d|_        |j	                  d      d        }|j	                  d      d        }t        |j                        }|j                          | |j                          yw)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                      t         j                  j                  j                  dd      } d| i}dt        j
                  j                  |fS )Nx-test-headervaluezX-Test-HeaderzBasic Content)flaskrequestheadersgethttpclientOK)header_valuer   s     Splatform/gsutil/third_party/google-auth-library-python-httplib2/tests/compliance.pyindexz*RequestResponseTests.server.<locals>.index(   s=     ==0044_gNL&5G"DKKNNG;;    /server_errorc                  :    dt         j                  j                  fS )NError)r   r   INTERNAL_SERVER_ERROR r   r   server_errorz1RequestResponseTests.server.<locals>.server_error.   s    DKK====r   )applicationN)	r   Flask__name__debugrouter   wsgi_appstartstop)selfappr   r   servers        r   r)   zRequestResponseTests.server   s~      kk(#	 
8		< 
	<
 
?	#	> 
$	>
 5s   B
Bc                     | j                         } ||j                  dz   d      }|j                  t        j                  j
                  k(  sJ |j                  d   dk(  sJ |j                  dk(  sJ y )Nr
   GETurlmethodr   r      Basic Contentmake_requestr-   statusr   r   r   r   datar'   r)   r   responses       r   test_request_basicz'RequestResponseTests.test_request_basic9   sk    ##%vzzH4UC$++..0000G;;;}} 0000r   c                     | j                         } ||j                  dz   dd      }|j                  t        j                  j
                  k(  sJ |j                  d   dk(  sJ |j                  dk(  sJ y )Nr
   r+      )r-   r.   timeoutr   r   r/   r0   r4   s       r   test_request_timeoutz)RequestResponseTests.test_request_timeoutA   sm    ##%vzzH4UAN$++..0000G;;;}} 0000r   c                     | j                         } ||j                  dz   dddi      }|j                  t        j                  j
                  k(  sJ |j                  d   dk(  sJ |j                  dk(  sJ y )Nr
   r+   r   zhello world)r-   r.   r   r/   r0   r4   s       r   test_request_headersz)RequestResponseTests.test_request_headersI   sy    ##%

X%$m4
 $++..0000MAAA}} 0000r   c                     | j                         } ||j                  dz   d      }|j                  t        j                  j
                  k(  sJ |j                  dk(  sJ y )Nr   r+   r,   s   Error)r1   r-   r2   r   r   r   r3   r4   s       r   test_request_errorz'RequestResponseTests.test_request_errorU   sS    ##%vzzO;EJ$++"C"CCCC}}(((r   c                     | j                         }t        j                  t        j                        5   |dj                  t              d       d d d        y # 1 sw Y   y xY w)Nz	http://{}r+   r,   )r1   pytestraisesr   TransportErrorformatNXDOMAIN)r'   r   s     r   test_connection_errorz*RequestResponseTests.test_connection_error\   sC    ##%]]:445**84UC 655s   AA$N)r!   
__module____qualname__r@   fixturer)   r6   r:   r<   r>   rE   r   r   r   r   r      s9    V^^(# $:11
1)Dr   r   )http.clientr   r   google.authr   r@   pytest_localserver.httpr   rD   objectr   r   r   r   <module>rM      s-      "  . ED6 EDr   