o
    ˷e                     @   s   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mZ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 )    )expectedFailure)override_settings)reverse)consumer)SocialAccount)MockTestCasepatch)get_user_model   )views)AXAttributec                
   @   sN   e Zd Zdd Zedd Ze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   c/var/www/ideatree/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http://me.yahoo.comr   login.yahooapis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Yahoor   )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$   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/   r0   r1   r   CONTACT_EMAILr2   r3   r   r4   r5   assertEqual
extra_data)r   r   r6   r   r-   rI   r7   r8   r9   r:   r;   socialaccountr   r   r    test_login_with_extra_attributesB   sl   "z,OpenIDTests.test_login_with_extra_attributesN)	__name__
__module____qualname__r   r   r<   r   r   rO   r   r   r   r   r      s(    
%r   N)unittestr   django.testr   django.urlsr   openid.consumerr   allauth.socialaccount.modelsr   allauth.testsr   r   r	   allauth.utilsr
    r   utilsr   r   r   r   r   r   <module>   s    