
    fq              
           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.                  j0                  di ddi       G d dee             Zy)    )get_user_model)RequestFactory)override_settings)reverse)app_settings)EmailAddress)SocialAccount)OAuth2TestsMixin)MockedResponseTestCasemocked_response   )FacebookProviderTN/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
d Z edd	d
ii      d        Z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y)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                 6    || j                   }t        d|      S )N   )facebook_datar   )selfdatas     i/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/facebook/tests.pyget_mocked_responsez!FacebookTests.get_mocked_response1   s    <%%Dc4((    c                      y)Nraymond.penners r   s    r    get_expected_to_strz!FacebookTests.get_expected_to_str6   s     r"   c                    t               }|j                  j                  d       | j                  | j	                                t
        j                  j                  d      }| j                  |j                  j                  d       y )Nr$   )username	630595557uidraymond)
r   objectscreateloginr!   r	   getassertEqualuserr)   )r   Usersocialaccounts      r    test_username_conflictz$FacebookTests.test_username_conflict9   sj    %67

4++-.%--11k1B++44i@r"   c                     | j                  | j                                t        j                  j	                  d      }| j                  |j                  j                  d       y )Nr*   r+   r$   r0   r!   r	   r.   r1   r2   r3   r)   )r   r5   s     r    test_username_based_on_providerz-FacebookTests.test_username_based_on_provider@   sM    

4++-.%--11k1B++446GHr"   c                     d}| j                  | j                  |             t        j                  j	                  d      }| j                  |j                  j                  d       y )Nz0{"id": "1234567", "name": "Harvey McGillicuddy"}r   1234567r+   harveyr8   )r   r   r5   s      r    0test_username_based_on_provider_with_simple_namez>FacebookTests.test_username_based_on_provider_with_simple_nameE   sV    A

4+++67%--11i1@++44h?r"   r   METHODjs_sdk)r   c                     t               j                  t        d            }i |_        | j                  j                  |      }| j                  d|v        y )Naccount_loginz"appId": "app123id")r   r1   r   sessionprovidermedia_js
assertTrue)r   requestscripts      r    test_media_jszFacebookTests.test_media_jsK   sI     !"&&w'?@''0-78r"   c                    t        ddiddddi| j                               5  | j                  j                  d ddi      }|j                  j
                  dk(  sJ |j                  j                  dk(  sJ 	 d d d        y # 1 sw Y   y xY w)	Naccess_token	app_tokenr   app123idTapp_idis_validdummyraymond.penners@example.com)r   r!   rD   verify_tokenr3   emailtoken)r   r0   s     r    test_token_authzFacebookTests.test_token_authX   s    [)( $ $$&	
 	0 MM..tng5NOE::##'DDDD;;$$///	0 	0 	0s   ABBc                 2   | j                   j                  t        d            }t        ddiddddi| j	                               5  | j                   j                  t        d      dd	i
      }| j                  |dd       d d d        y # 1 sw Y   y xY w)NrB   rK   rL   r   rM   TrN   facebook_login_by_tokenrQ   r;   r   Ffetch_redirect_response)clientr1   r   r   r!   postassertRedirects)r   resps     r    test_login_by_tokenz!FacebookTests.test_login_by_tokeng   s    {{w78[)( $ $$&	
 	 ;;##12$g. $ D   *E ! 	 	 	s   =BB	auth_typereauthenticateF)r?   r   r   c                 b   | j                   j                  t        d            }|j                  d   d   d   }t	        ddiddd	d
id|i| j                               5  | j                   j                  t        d      ddi      }| j                  |dd       d d d        y # 1 sw Y   y xY w)NrB   fb_dataloginOptions
auth_noncerK   rL   r   rM   TrN   rX   rQ   r;   r   FrY   )r[   r1   r   contextr   r!   r\   r]   )r   r^   nonces      r    "test_login_by_token_reauthenticatez0FacebookTests.test_login_by_token_reauthenticate{   s     {{w78Y'7E[)( $ 5!$$&

 	 ;;##12$g. $ D   *E ! 	 	 	s   =B%%B.r   Tc                 Z    | j                         }| j                  |j                         y N)_login_verifiedrF   verifiedr   emailaddresss     r    test_login_verifiedz!FacebookTests.test_login_verified   s"    ++---.r"   c                 Z    | j                         }| j                  |j                         y rj   )rk   assertFalserl   rm   s     r    test_login_unverifiedz#FacebookTests.test_login_unverified   s$    ++-../r"   c                     | j                  | j                                t        j                  j	                  d      S )NrR   )rT   )r0   r!   r   r.   r1   r&   s    r    rk   zFacebookTests._login_verified   s2    

4++-.##''.K'LLr"   rj   )__name__
__module____qualname__r   idprovider_idr   r!   r'   r6   r9   r>   r   rI   rV   r_   rh   ro   rr   rk   r%   r"   r    r   r      s     #%%KM0)
!AI
@ (!
990( " +-=>"'!
, 
=Mt<T/UV/ W/0M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   rD   r   EmailVerificationMethodNONEr   r%   r"   r    <module>r      st    . - /  < / 6 8 C C & ""+/GGLL'u)UVOM$h OMOMr"   