
    O                         d dl Z d dlZd dlZd dlmZ  G d de      Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)    N)_helpersc                       e Zd Zd Zy)SourceClassc                      y)zexample docstringN )selfs    Mplatform/gsutil/third_party/google-auth-library-python/tests/test__helpers.pyfunczSourceClass.func   s        N)__name__
__module____qualname__r
   r   r   r	   r   r      s     r   r   c                      d }  t        j                  t              |        | j                  t        j                  j                  k(  sJ y )Nc                       y Nr   r   r   r	   r
   z)test_copy_docstring_success.<locals>.func       r   )r   copy_docstringr   __doc__r
   r
   s    r	   test_copy_docstring_successr      s<     )HK(.<<;++33333r   c                      d } t        j                  t              5   t        j                  t
              |        d d d        y # 1 sw Y   y xY w)Nc                       y)zexisting docstringNr   r   r   r	   r
   z*test_copy_docstring_conflict.<locals>.func&   s    r   )pytestraises
ValueErrorr   r   r   r   s    r	   test_copy_docstring_conflictr   %   s6     
z	",,T2 
#	"	"    AAc                      d } t        j                  t              5   t        j                  t
              |        d d d        y # 1 sw Y   y xY w)Nc                       y r   r   r   r   r	   func2z/test_copy_docstring_non_existing.<locals>.func2/   r   r   )r   r   AttributeErrorr   r   r   )r    s    r	    test_copy_docstring_non_existingr"   .   s6     
~	&,,U3 
'	&	&r   c                      t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ y )N	text/htmlapplication/xmlapplication/jsonr   parse_content_typer   r   r	   test_parse_content_type_plainr)   6   sQ    &&{3{BBB&&'89=NNNN&&'9:>PPPPr   c                      d} d}d}t        j                  |       dk(  sJ t        j                  |      dk(  sJ t        j                  |      dk(  sJ y )Nztext/html; charset=UTF-8z,application/xml; charset=UTF-16; version=1.0z)application/json; charset=UTF-8; indent=2r$   r%   r&   r'   )content_type_htmlcontent_type_xmlcontent_type_jsons      r	   'test_parse_content_type_with_parametersr.   <   sd    2EC&&'89[HHH&&'78<MMMM&&'89=OOOOr   c                      d } d}d}d}t        j                  |       dk(  sJ t        j                  |      dk(  sJ t        j                  |      dk(  sJ t        j                  |      dk(  sJ y )N 1234z ; charset=UTF-8z
text/plainr'   )content_type_foocontent_type_barcontent_type_bazcontent_type_quxs       r	   )test_parse_content_type_missing_or_brokenr6   E   s    )&&'78LHHH&&'78LHHH&&'78LHHH&&'78LHHHr   c                  `    t        t        j                         t        j                        sJ y r   )
isinstancer   utcnowdatetimer   r   r	   test_utcnowr;   P   s    hoo'):):;;;r   c                      t        j                  t        j                  ddd            dk(  sJ t        j                  t        j                  ddd            dk(  sJ y )Ni     r   i        ia&)r   datetime_to_secsr:   r   r   r	   test_datetime_to_secsrA   T   sR    $$X%6%6tQ%BCqHHH$$X%6%6tQ%CD	QQQr   c                  <    d} t        j                  |       | k(  sJ y )Ns	   bytes-valr   to_bytesvalues    r	   test_to_bytes_with_bytesrG   Y   s     EU#u,,,r   c                  @    d} d}t        j                  |       |k(  sJ y )N
string-val
   string-valrC   )rF   encoded_values     r	   test_to_bytes_with_unicoderL   ^   s%    E!MU#}444r   c                      t        j                  t              5  t        j                  t                      d d d        y # 1 sw Y   y xY wr   )r   r   r   r   rD   objectr   r   r	   !test_to_bytes_with_nonstring_typerO   d   s*    	z	"&(# 
#	"	"   AA
c                  <    d} t        j                  |       | k(  sJ y )Nz	bytes-valr   
from_bytesrE   s    r	   test_from_bytes_with_unicoderT   i   s     Eu%...r   c                  @    d} d}t        j                  |       |k(  sJ y )NrJ   rI   rR   )rF   decoded_values     r	   test_from_bytes_with_bytesrW   n   s%    E!Mu%666r   c                      t        j                  t              5  t        j                  t                      d d d        y # 1 sw Y   y xY wr   )r   r   r   r   rS   rN   r   r   r	   #test_from_bytes_with_nonstring_typerY   t   s*    	z	"FH% 
#	"	"rP   c                     t         j                  j                  |       }t         j                  j                  |j                        }||k(  sJ y r   )urllibparseurlsplitparse_qsquery)urlexpectedpartsr_   s       r	   _assert_queryrc   y   s<    LL!!#&ELL!!%++.EHr   c                  L    d} t        j                  | ddi      }|| dz   k(  sJ y )Nhttp://www.google.comabz?a=b)r   update_queryuriupdateds     r	   "test_update_query_params_no_paramsrl      s/    
!C##C#s4GcFl"""r   c                  `    d} t        j                  | ddd      }t        |dgdgdgd       y )Nzhttp://www.google.com?x=yrg   zd&)rf   cy)xrf   rn   r   rh   rc   ri   s     r	   !test_update_query_existing_paramsrr      s5    
%C##Cs)>?G'#cU$@Ar   c                  f    d} | dz   }t        j                  |ddd      }t        |dgdgd       y )Nre   ?x=arg   rn   )rp   ro   rq   base_urirj   rk   s      r	   test_update_query_replace_paramrw      s;    &H
V
C##Cs)=>G'#cU34r   c                  f    d} | dz   }t        j                  |ddidg      }t        |ddgi       y )Nre   rt   ro   rn   rp   )removerq   ru   s      r	   test_update_query_remove_paramrz      s;    &H
V
C##C#sSEBG'C#<(r   c                      ddg fdddgfdddgfdddgfddd	 d
D        fg	} | D ]  \  }}t        j                  |      |k(  rJ  y )N)r0   r   r0   )r0   )r0   )rf   )rf   rg   a brf   )r|   rf   rg   c              3       K   | ]  }|  y wr   r   ).0ss     r	   	<genexpr>z(test_scopes_to_string.<locals>.<genexpr>   s     'JqJs   r}   )r   scopes_to_string)casesra   cases      r	   test_scopes_to_stringr      sq    	R	bT
	se	c
	'J'(
E  $((.(:::  r   c                  h    dg fddgfdg dfg} | D ]  \  }}t        j                  |      |k(  rJ  y )Nr0   rf   za b c d e f)rf   rg   rn   def)r   string_to_scopesr   r   ra   s      r	   test_string_to_scopesr      sE    "XcU|m5S%TUEh((.(:::  r   c                  T    g d} | D ]  \  }}t        j                  |      |k(  rJ  y )N))zYQ==   a)YQr   )zYWE=   aa)YWEr   )zYWFhYQ==   aaaa)YWFhYQr   )zYWFhYWE=   aaaaa)YWFhYWEr   )r   padded_urlsafe_b64decoder   s      r	   test_padded_urlsafe_b64decoder      s2    	E  h006(BBB  r   c                  T    g d} | D ]  \  }}t        j                  |      |k(  rJ  y )N))r   r   )r   s   YQ)r   s   YWE)s   aaas   YWFh)r   unpadded_urlsafe_b64encoder   s      r	   test_unpadded_urlsafe_b64encoder      s.    KEh2248HDDD  r   )r:   r[   r   google.authr   rN   r   r   r   r"   r)   r.   r6   r;   rA   rG   rL   rO   rT   rW   rY   rc   rl   rr   rw   rz   r   r   r   r   r   r   r	   <module>r      s         &  
434QPI<R
-
5$
/
7&
#B5); ;C Er   