o
    "4g                      @   s   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ dd	lmZ dd
lmZ G dd deZdS )    )Mockpatch)get_user_model)override_settings)reverse)consumer)SocialAccount)TestCase   )views)AXAttributec                	   @   sF   e Zd Zdd Zdd Zeddeddd	d
gdgiiddd ZdS )OpenIDTestsc                 C   s2   | j tdtdd}| d|jd jv  dS )z
        This used to generate a server 500:
        DiscoveryFailure: No usable OpenID services found
        for http://www.google.com/
        openid_loginzhttp://www.google.comopenidr   formN)clientpostr   dict
assertTruecontexterrors)selfresp r   u/var/www/html/authentication-server/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/openid/tests.pytest_discovery_failure   s   z"OpenIDTests.test_discovery_failurec              
   C   sp  | j ttjtdd}d|d v sJ td}t }t }||_||_	t }||_t
j|_d|_td_}tdK}t }t }	||_|	|_i |_tjd	gi|	_| j td
}| j|ddd t jjd	d tjj|jd}
|
 }| | |j W d    n1 sw   Y  W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )N!https://steamcommunity.com/openidr   steamcommunity.com/openid/loginlocation=allauth.socialaccount.providers.openid.views._openid_consumerhttp://dummy/john/9allauth.socialaccount.providers.openid.utils.SRegResponse:allauth.socialaccount.providers.openid.utils.FetchResponseraymondopenid_callback/accounts/profile/Ffetch_redirect_response)
first_name)uid)r   r   r   r   loginr   r   r   return_valuecompleter   SUCCESSstatusidentity_urlfromSuccessResponser   PERSON_FIRST_NAMEassertRedirectsr   objectsgetr   get_provider_accountassertEqualto_str)r   r   consumer_mockr   r-   complete_responsesr_mockfr_mock	sreg_mockax_mocksocial_accountaccountr   r   r   
test_login   s`   "zOpenIDTests.test_loginr   SERVERSyahooYahoohttp://me.yahoo.com)phone)http://axschema.org/contact/phone/defaultT)idname
openid_urlextra_attributes)SOCIALACCOUNT_PROVIDERSc              
   C   s  t dd | jttjtdd}W d    n1 sw   Y  d|d v s*J t d}t }t }t }||_||_	t }||_||_
d|j
_tj|_d	|_t d
Z}t dF}t }	t }
|	|_|
|_i |	_tjdgtjdgddgi|
_| jtd}| j|ddd tjjdd}| |jdd W d    n1 sw   Y  W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nz8allauth.socialaccount.providers.openid.views.QUERY_EMAILTr   r   r   r   r    rE   r!   r"   r#   zraymond@example.comr$   rG   	123456789r%   r&   Fr'   )user__first_namerF   )r   r   r   r   r   r+   r   r   r,   r-   endpoint
server_urlr   r.   r/   r0   r1   r   CONTACT_EMAILr2   r3   r   r4   r5   r7   
extra_data)r   r   r9   r   r-   rO   r:   r;   r<   r=   r>   socialaccountr   r   r    test_login_with_extra_attributesF   sl   "z,OpenIDTests.test_login_with_extra_attributesN)__name__
__module____qualname__r   rA   r   r   rT   r   r   r   r   r      s$    *r   N)unittest.mockr   r   django.contrib.authr   django.testr   django.urlsr   openid.consumerr   allauth.socialaccount.modelsr   allauth.testsr	    r   utilsr   r   r   r   r   r   <module>   s    