
    f              	          d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	Z	d dl
mZ d dlmZ d dlmZ e	j                            d	g d
          d             Zd Ze	j                            dg d          d             Zd Zd Ze	j                            dddddddig          d             Ze	j                            dddddig          d             ZdS )    )patch)parse_qsurlparse)reverse)	urlencodeN)EmailAddress)SocialAccount)build_saml_configz$is_connect,relay_state, expected_url))FNz/accounts/profile/)F/foor   )Tprocess=connectz/social/connections/)Tzprocess=connect&next=/connz/connc                 x   |r+|                      d          }|                      d          }	n|                      d          }d }	d|i}
|||
d<   |                    t          dddi	          |

          }t          dddi	          }|j        dk    sJ |d         |k    sJ |                    |          }|d         |k    sJ t
          j                            dd          }|j        d         ddgk    sJ t          j                            |j	                  }|j
        |r|	j
        ndk    sJ d S )Nauth_clientuserclientSAMLResponse
RelayStatesaml_acsorganization_slugorgkwargsdatasaml_finish_acs.  locationzurn:dev-123.us.auth0.comdummysamluid)provideruidRolezview-profilezmanage-account-links)r   zjohn.doe@email.org)getfixturevaluepostr   status_codegetr	   objects
extra_datar   r   email)request
is_connectdbsaml_settingsacs_saml_responsemocked_signature_validationexpected_urlrelay_stater   r   r   resp
finish_urlaccountr'   s                  `/var/www/equiseq/venv/lib/python3.11/site-packages/allauth/socialaccount/providers/saml/tests.pytest_acsr4      s   &  ((77&&v..((22-.D(\;;
$7#?@@@t   D *4G3OPPPJs""""
z))))::j!!D
|++++#''+ (  G f%.:P)QQQQQ $$',$77E;M4::9MNNNNNN    c                     ddi}|                      t          dddi          |          }|j        dk    sJ d	d
 |j        D             v sJ d S )Nr   zbad-responser   r   r   r   r      z'socialaccount/authentication_error.htmlc              3   $   K   | ]}|j         V  d S )N)name).0ts     r3   	<genexpr>z!test_acs_error.<locals>.<genexpr>A   s$      8X8XA8X8X8X8X8X8Xr5   )r"   r   r#   	templates)r   r*   r+   r   r0   s        r3   test_acs_errorr>   ;   sz    N+D;;
$7#?@@@t   D s""""48X8X8X8X8XXXXXXXr5   zquery,expected_relay_state)) N)z?process=connectr   )z?process=connect&next=/foozprocess=connect&next=%2Ffoo)z
?next=/barznext=%2Fbarc                 H   |                      t          dddi          |z             }|j        dk    sJ |d         }|                    d          sJ t	          t          |          j                  }|d|vsJ d S |                     d          d	         |k    sJ d S )
N
saml_loginr   r   r   r   r   z3https://dev-123.us.auth0.com/samlp/456?SAMLRequest=r   r   )r$   r   r#   
startswithr   r   query)r   r*   r+   rC   expected_relay_stater0   r   
resp_querys           r3   
test_loginrF   D   s     ::&95%ABBBUJ D s""""JHTUUUUU(8,,233J#:------~~l++A.2FFFFFFFr5   c                     |                      t          dddi                    }|j        dk    sJ |j                            d          sJ d S )Nsaml_metadatar   r   r   r7   sY   <?xml version="1.0"?>
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata)r$   r   r#   contentrB   )r   r*   r+   r0   s       r3   test_metadatarJ   [   sm    
 ::go7JE6RSSSTTDs""""<""e      r5   c                 :   t          d          5 }|                     t          dddi          dz   t          d|i          z             }|j        dk    sJ 	 d d d            n# 1 swxY w Y   |j        d	k    sJ |d
                             d          sJ d S )Nz4allauth.account.adapter.DefaultAccountAdapter.logoutsaml_slsr   r   r   ?SAMLRequest   r   r   z4https://dev-123.us.auth0.com/samlp/456?SAMLResponse=)r   r$   r   r   
call_countr#   rB   )r   r*   r+   user_factorysls_saml_requestlogout_mockr0   s          r3   test_slsrT   g   s   	E	F	F ++J(;U'CDDD(89::;
 

 %*****+ + + + + + + + + + + + + + + s""""
&&>      s   A	A&&A*-A*provider_configidpdummyhttps://idp.org/sso/https://idp.saml.org/slo/cert)	entity_idsso_urlslo_urlx509certc                     |                      d          }t          ||d          }|d         d         dk    sJ |d         d         dk    sJ |d         d         d	d
ik    sJ |d         d         d	dik    sJ d S )N/r   rV   entityIdrW   r^   rZ   singleSignOnServiceurlrX   singleLogoutServicerY   )r$   r
   )rfrU   r(   configs       r3   +test_build_saml_config_without_metadata_urlrg   u   s     ffSkkGw??F%=$////%=$....%=./E;Q3RRRRR%=./E;V3WWWWWWWr5   )r[   metadata_urlc                 l   |                      d          }t          d          5 }ddddiddidd	i|_        t          ||d
          }d d d            n# 1 swxY w Y   |d         d         dk    sJ |d         d         dk    sJ |d         d         ddik    sJ |d         d         ddik    sJ d S )Nr`   zPonelogin.saml2.idp_metadata_parser.OneLogin_Saml2_IdPMetadataParser.parse_remoterV   rW   rc   rX   rY   rZ   )ra   rb   rd   r^   r   ra   r^   rb   rd   )r$   r   return_valuer
   )re   rU   r(   
parse_mockrf   s        r3   test_build_saml_configrl      sI    ffSkkG	Z
 
 D	#(-/E'F(-/J'K"	 #

 #7OUCCD D D D D D D D D D D D D D D %=$////%=$....%=./E;Q3RRRRR%=./E;V3WWWWWWWs   $AAA)unittest.mockr   urllib.parser   r   django.urlsr   django.utils.httpr   pytestallauth.account.modelsr   allauth.socialaccount.modelsr	   *allauth.socialaccount.providers.saml.utilsr
   markparametrizer4   r>   rF   rJ   rT   rg   rl    r5   r3   <module>rx      s	         + + + + + + + +       ' ' ' ' ' '  / / / / / / 6 6 6 6 6 6 H H H H H H *   !O !O !OHY Y Y     G G G	 	 	    $16"	 	
	 X X X  $ 6 	

 
X X
 
X X Xr5   