
    O                         S SK r S SKrS SKrS SKJr   " S S\5      rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rg)    N)_helpersc                       \ rS rSrS rSrg)SourceClass   c                     g)zexample docstringN )selfs    Mplatform/gsutil/third_party/google-auth-library-python/tests/test__helpers.pyfuncSourceClass.func   s        r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r
   r   r      s     r   r   c                      S n [         R                  " [        5      " U 5        U R                  [        R                  R                  :X  d   eg )Nc                      g Nr   r   r   r
   r   )test_copy_docstring_success.<locals>.func       r   )r   copy_docstringr   __doc__r   r   s    r
   test_copy_docstring_successr      s:     K(.<<;++33333r   c                      S n [         R                  " [        5         [        R                  " [
        5      " U 5        S S S 5        g ! , (       d  f       g = f)Nc                      g)zexisting docstringNr   r   r   r
   r   *test_copy_docstring_conflict.<locals>.func&   s    r   )pytestraises
ValueErrorr   r   r   r   s    r
   test_copy_docstring_conflictr"   %   s4     
z	",T2 
#	"	"   !A
Ac                      S n [         R                  " [        5         [        R                  " [
        5      " U 5        S S S 5        g ! , (       d  f       g = f)Nc                      g r   r   r   r   r
   func2/test_copy_docstring_non_existing.<locals>.func2/   r   r   )r   r    AttributeErrorr   r   r   )r&   s    r
    test_copy_docstring_non_existingr)   .   s4     
~	&,U3 
'	&	&r#   c                      [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   eg )N	text/htmlapplication/xmlapplication/jsonr   parse_content_typer   r   r
   test_parse_content_type_plainr0   6   sQ    &&{3{BBB&&'89=NNNN&&'9:>PPPPr   c                      Sn SnSn[         R                  " U 5      S:X  d   e[         R                  " U5      S:X  d   e[         R                  " U5      S:X  d   eg )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_parametersr5   <   sd    2EC&&'89[HHH&&'78<MMMM&&'89=OOOOr   c                      S n SnSnSn[         R                  " U 5      S:X  d   e[         R                  " U5      S:X  d   e[         R                  " U5      S:X  d   e[         R                  " U5      S:X  d   eg )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_brokenr=   E   s    )&&'78LHHH&&'78LHHH&&'78LHHH&&'78LHHHr   c                  l    [        [        R                  " 5       [        R                  5      (       d   eg r   )
isinstancer   utcnowdatetimer   r   r
   test_utcnowrB   P   s"    hoo'):):;;;;r   c                      [         R                  " [        R                  " SSS5      5      S:X  d   e[         R                  " [        R                  " SSS5      5      S:X  d   eg )Ni     r   i        ia&)r   datetime_to_secsrA   r   r   r
   test_datetime_to_secsrH   T   sR    $$X%6%6tQ%BCqHHH$$X%6%6tQ%CD	QQQr   c                  @    Sn [         R                  " U 5      U :X  d   eg )Ns	   bytes-valr   to_bytesvalues    r
   test_to_bytes_with_bytesrN   Y   s     EU#u,,,r   c                  D    Sn Sn[         R                  " U 5      U:X  d   eg )N
string-val
   string-valrJ   )rM   encoded_values     r
   test_to_bytes_with_unicoderS   ^   s%    E!MU#}444r   c                      [         R                  " [        5         [        R                  " [        5       5        S S S 5        g ! , (       d  f       g = fr   )r   r    r!   r   rK   objectr   r   r
   !test_to_bytes_with_nonstring_typerV   d   s*    	z	"&(# 
#	"	"   A
Ac                  @    Sn [         R                  " U 5      U :X  d   eg )Nz	bytes-valr   
from_bytesrL   s    r
   test_from_bytes_with_unicoder[   i   s     Eu%...r   c                  D    Sn Sn[         R                  " U 5      U:X  d   eg )NrQ   rP   rY   )rM   decoded_values     r
   test_from_bytes_with_bytesr^   n   s%    E!Mu%666r   c                      [         R                  " [        5         [        R                  " [        5       5        S S S 5        g ! , (       d  f       g = fr   )r   r    r!   r   rZ   rU   r   r   r
   #test_from_bytes_with_nonstring_typer`   t   s*    	z	"FH% 
#	"	"rW   c                     [         R                  R                  U 5      n[         R                  R                  UR                  5      nX1:X  d   eg r   )urllibparseurlsplitparse_qsquery)urlexpectedpartsrf   s       r
   _assert_queryrj   y   s:    LL!!#&ELL!!%++.Er   c                  N    Sn [         R                  " U SS05      nXS-   :X  d   eg )Nhttp://www.google.comabz?a=b)r   update_queryuriupdateds     r
   "test_update_query_params_no_paramsrs      s-    
!C##C#s4GFl"""r   c                  b    Sn [         R                  " U SSS.5      n[        US/S/S/S.5        g )Nzhttp://www.google.com?x=yrn   zd&)rm   cy)xrm   ru   r   ro   rj   rp   s     r
   !test_update_query_existing_paramsry      s5    
%C##Cs)>?G'#cU$@Ar   c                  h    Sn U S-   n[         R                  " USSS.5      n[        US/S/S.5        g )Nrl   ?x=arn   ru   )rw   rv   rx   base_urirq   rr   s      r
   test_update_query_replace_paramr~      s;    &H
V
C##Cs)=>G'#cU34r   c                  b    Sn U S-   n[         R                  " USS0S/S9n[        USS/05        g )Nrl   r{   rv   ru   rw   )removerx   r|   s      r
   test_update_query_remove_paramr      s;    &H
V
C##C#sSEBG'C#<(r   c                      SS/ 4SSS/4SSS/4SSS/4SSS	 S
 5       4/	n U  H!  u  p[         R                  " U5      U:X  a  M!   e   g )N)r7   r   r7   )r7   )r7   )rm   )rm   rn   a brm   )r   rm   rn   c              3   $   #    U  H  ov   M     g 7fr   r   ).0ss     r
   	<genexpr>(test_scopes_to_string.<locals>.<genexpr>   s     'JqJs   r   )r   scopes_to_string)casesrh   cases      r
   test_scopes_to_stringr      so    	R	bT
	se	c
	'J'(
E  ((.(:::  r   c                  n    S/ 4SS/4S/ SQ4/n U  H!  u  p[         R                  " U5      U:X  a  M!   e   g )Nr7   rm   za b c d e f)rm   rn   ru   def)r   string_to_scopesr   r   rh   s      r
   test_string_to_scopesr      sC    "XcU|m5S%TUE((.(:::  r   c                  Z    / SQn U  H!  u  p[         R                  " U5      U:X  a  M!   e   g )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      s0    	E  006(BBB  r   c                  Z    / SQn U  H!  u  p[         R                  " U5      U:X  a  M!   e   g )N))r   r   )r   s   YQ)r   s   YWE)s   aaas   YWFh)r   unpadded_urlsafe_b64encoder   s      r
   test_unpadded_urlsafe_b64encoder      s,    KE2248HDDD  r   )rA   rb   r   google.authr   rU   r   r   r"   r)   r0   r5   r=   rB   rH   rN   rS   rV   r[   r^   r`   rj   rs   ry   r~   r   r   r   r   r   r   r   r
   <module>r      s         &  
434QPI<R
-
5$
/
7&
#B5); ;C Er   