o
    Lf                     @   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   m/var/www/html/humari/django-venv/lib/python3.10/site-packages/allauth/socialaccount/providers/openid/tests.pytest_discovery_failure   s   z"OpenIDTests.test_discovery_failurec           
   
   C   sF  | j ttjtdd}d|d v sJ td}t }t }||_||_	t }||_t
j|_d|_tdJ}td6}t }t }	||_|	|_i |_tjd	gi|	_| j td
}| j|ddd t jjd	d W d    n1 suw   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)r   r   r   r   loginr   r   r   return_valuecompleter   SUCCESSstatusidentity_urlfromSuccessResponser   PERSON_FIRST_NAMEassertRedirectsr   objectsget)
r   r   consumer_mockr   r,   complete_responsesr_mockfr_mock	sreg_mockax_mockr   r   r   
test_login   sV   "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    r?   r!   r"   r#   zraymond@example.comr$   rA   	123456789r%   r&   Fr'   )user__first_namer@   )r   r   r   r   r   r*   r   r   r+   r,   endpoint
server_urlr   r-   r.   r/   r0   r   CONTACT_EMAILr1   r2   r   r3   r4   assertEqual
extra_data)r   r   r5   r   r,   rI   r6   r7   r8   r9   r:   socialaccountr   r   r    test_login_with_extra_attributesA   sl   "z,OpenIDTests.test_login_with_extra_attributesN)__name__
__module____qualname__r   r;   r   r   rO   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    