o
    LfK                  	   @   s   d dl 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 d d
lmZmZmZ ddlmZ edddejjdi ddidG dd deeZdS )    N)get_user_model)RequestFactory)override_settings)reverse)app_settings)EmailAddress)SocialAccount)OAuth2TestsMixin)MockedResponseTestCasemocked_response   )FacebookProviderT/accounts/profile/facebookF)AUTH_PARAMSVERIFIED_EMAIL)SOCIALACCOUNT_AUTO_SIGNUPACCOUNT_SIGNUP_FORM_CLASSLOGIN_REDIRECT_URLACCOUNT_EMAIL_VERIFICATIONSOCIALACCOUNT_PROVIDERSc                   @   s   e Zd ZejZdZd!ddZdd Zdd Z	d	d
 Z
edddiiddd Zdd Zeddddiddiddd Zedddiiddd Zdd Zdd  ZdS )"FacebookTestsa  
        {
           "id": "630595557",
           "name": "Raymond Penners",
           "first_name": "Raymond",
           "last_name": "Penners",
           "email": "raymond.penners@example.com",
           "link": "https://www.facebook.com/raymond.penners",
           "username": "raymond.penners",
           "birthday": "07/17/1973",
           "work": [
              {
                 "employer": {
                    "id": "204953799537777",
                    "name": "IntenCT"
                 }
              }
           ],
           "timezone": 1,
           "locale": "nl_NL",
           "verified": true,
           "updated_time": "2012-11-30T20:40:33+0000"
        }Nc                 C   s   |d u r| j }td|S )N   )facebook_datar
   )selfdata r   o/var/www/html/humari/django-venv/lib/python3.10/site-packages/allauth/socialaccount/providers/facebook/tests.pyget_mocked_response3   s   
z!FacebookTests.get_mocked_responsec                 C   sD   t  }|jjdd | |   tjjdd}| |jj	d d S )Nraymond.penners)username	630595557uidraymond)
r   objectscreateloginr   r   getassertEqualuserr!   )r   Usersocialaccountr   r   r   test_username_conflict8   s
   z$FacebookTests.test_username_conflictc                 C   s0   |  |   tjjdd}| |jjd d S )Nr"   r#   r    r(   r   r   r&   r)   r*   r+   r!   )r   r-   r   r   r   test_username_based_on_provider?   s   z-FacebookTests.test_username_based_on_providerc                 C   s8   d}|  | j|d tjjdd}| |jjd d S )Nz0{"id": "1234567", "name": "Harvey McGillicuddy"}r   1234567r#   harveyr/   )r   r   r-   r   r   r   0test_username_based_on_provider_with_simple_nameD   s   z>FacebookTests.test_username_based_on_provider_with_simple_namer   METHODjs_sdk)r   c                 C   s4   t  td}i |_| j|}| d|v  d S )Naccount_loginz"appId": "app123id")r   r)   r   sessionprovidermedia_js
assertTrue)r   requestscriptr   r   r   test_media_jsJ   s   zFacebookTests.test_media_jsc                 C   s|   | j td}tddiddddi|   | j jtddd	id
}| j|ddd W d    d S 1 s7w   Y  d S )Nr7   access_token	app_tokenr   app123idTapp_idis_validfacebook_login_by_tokendummyr1   r   Ffetch_redirect_response)clientr)   r   r   r   postassertRedirects)r   respr   r   r   test_login_by_tokenW   s$   
"z!FacebookTests.test_login_by_token	auth_typereauthenticateF)r5   r   r   c                 C   s   | j td}t|jd d d }tddiddd	d
id|i|   | j jtdddid}| j	|ddd W d    d S 1 sFw   Y  d S )Nr7   fb_dataloginOptions
auth_noncer?   r@   r   rA   TrB   rE   rF   r1   r   FrG   )
rI   r)   r   jsonloadscontextr   r   rJ   rK   )r   rL   noncer   r   r   "test_login_by_token_reauthenticatek   s(   
"z0FacebookTests.test_login_by_token_reauthenticater   Tc                 C      |   }| |j d S N)_login_verifiedr;   verifiedr   emailaddressr   r   r   test_login_verified   s   z!FacebookTests.test_login_verifiedc                 C   rX   rY   )rZ   assertFalser[   r\   r   r   r   test_login_unverified   s   z#FacebookTests.test_login_unverifiedc                 C   s   |  |   tjjddS )Nzraymond.penners@example.com)email)r(   r   r   r&   r)   )r   r   r   r   rZ      s   zFacebookTests._login_verifiedrY   )__name__
__module____qualname__r   idprovider_idr   r   r.   r0   r4   r   r>   rM   rW   r^   r`   rZ   r   r   r   r   r      s8    


	
r   )rS   django.contrib.authr   django.test.clientr   django.test.utilsr   django.urlsr   allauth.accountr   account_settingsallauth.account.modelsr   allauth.socialaccount.modelsr   allauth.socialaccount.testsr	   allauth.testsr
   r   r   r9   r   EmailVerificationMethodNONEr   r   r   r   r   <module>   s&    