
    )JfK              
           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           G 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                       e Zd Zej        ZdZddZd Zd Z	d Z
 eddd	ii
          d             Zd Z edd	ddiddi
          d             Z edddii
          d             Zd Z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                 4    || j         }t          d|          S )N   )facebook_datar   )selfdatas     q/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/allauth/socialaccount/providers/facebook/tests.pyget_mocked_responsez!FacebookTests.get_mocked_response3   s    <%Dc4(((    c                 &   t                      }|j                            d           |                     |                                            t
          j                            d          }|                     |j        j	        d           d S )Nraymond.penners)username	630595557uidraymond)
r   objectscreateloginr!   r	   getassertEqualuserr%   )r   Usersocialaccounts      r    test_username_conflictz$FacebookTests.test_username_conflict8   s    %6777

4++--...%-11k1BB+4i@@@@@r"   c                     |                      |                                            t          j                            d          }|                     |j        j        d           d S )Nr&   r'   r$   r,   r!   r	   r*   r-   r.   r/   r%   )r   r1   s     r    test_username_based_on_providerz-FacebookTests.test_username_based_on_provider?   s\    

4++--...%-11k1BB+46GHHHHHr"   c                     d}|                      |                     |                     t          j                            d          }|                     |j        j        d           d S )Nz0{"id": "1234567", "name": "Harvey McGillicuddy"}r   1234567r'   harveyr4   )r   r   r1   s      r    0test_username_based_on_provider_with_simple_namez>FacebookTests.test_username_based_on_provider_with_simple_nameD   se    A

4+++66777%-11i1@@+4h?????r"   r   METHODjs_sdk)r   c                     t                                          t          d                    }i |_        | j                            |          }|                     d|v            d S )Naccount_loginz"appId": "app123id")r   r-   r   sessionprovidermedia_js
assertTrue)r   requestscripts      r    test_media_jszFacebookTests.test_media_jsJ   s_     !""&&w'?'?@@''00-788888r"   c                 `   | j                             t          d                    }t          ddiddddi|                                           5  | j                             t          d          dd	i
          }|                     |dd           d d d            d S # 1 swxY w Y   d S )Nr>   access_token	app_tokenr   app123idTapp_idis_validfacebook_login_by_tokendummyr7   r   Ffetch_redirect_response)clientr-   r   r   r!   postassertRedirects)r   resps     r    test_login_by_tokenz!FacebookTests.test_login_by_tokenW   s   {w7788[)( $  $$&&	
 	
 	 	 ;##122$g. $  D   *E !   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AB##B'*B'	auth_typereauthenticateF)r;   r   r   c                    | j                             t          d                    }t          j        |j        d                   d         d         }t          ddiddd	d
id|i|                                           5  | j                             t          d          ddi          }| 	                    |dd           d d d            d S # 1 swxY w Y   d S )Nr>   fb_dataloginOptions
auth_noncerG   rH   r   rI   TrJ   rM   rN   r7   r   FrO   )
rQ   r-   r   jsonloadscontextr   r!   rR   rS   )r   rT   nonces      r    "test_login_by_token_reauthenticatez0FacebookTests.test_login_by_token_reauthenticatek   sE    {w7788
4<	233NCLQ[)( $  5!$$&&

 

 	 	 ;##122$g. $  D   *E !   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s    ACCCr   Tc                 b    |                                  }|                     |j                   d S N)_login_verifiedrB   verifiedr   emailaddresss     r    test_login_verifiedz!FacebookTests.test_login_verified   s.    ++---.....r"   c                 b    |                                  }|                     |j                   d S rb   )rc   assertFalserd   re   s     r    test_login_unverifiedz#FacebookTests.test_login_unverified   s0    ++--./////r"   c                     |                      |                                            t          j                            d          S )Nzraymond.penners@example.com)email)r,   r!   r   r*   r-   )r   s    r    rc   zFacebookTests._login_verified   s;    

4++--...#''.K'LLLr"   rb   )__name__
__module____qualname__r   idprovider_idr   r!   r2   r5   r:   r   rE   rU   r`   rg   rj   rc    r"   r    r   r      sj        #%KM0) ) ) )
A A AI I I
@ @ @ (!
  9 9 9  ( " +-=>"' !
    , 
=Mt<T/UVVV/ / WV/0 0 0M M M M Mr"   r   )r\   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   r@   r   EmailVerificationMethodNONEr   rr   r"   r    <module>r      s\    . . . . . . - - - - - - / / / / / /       < < < < < < / / / / / / 6 6 6 6 6 6 8 8 8 8 8 8 C C C C C C C C C C & & & & & & ""+/GL'u)U)UV  }M }M }M }M }M$h }M }M }M }M }Mr"   