Ë
    ûûàg~4  ã            
       ó  — d dl Z d dlZd dlmZ 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Zd dlmZ d dlmZ d dlmZmZ d dlm Z  d dl!mZ 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. ej^                  d„ «       Z0 eddejb                  jd                  ¬«       G d„ de*e«      «       Z3 eddddddœii¬ «       G d!„ d"e3«      «       Z4d#„ Z5ejl                  jo                  d$d%d&g«      ejl                  jo                  d'd(dg«      d)„ «       «       Z8ejl                  jo                  d*ddd+d,id-d.fdd(d+d,id-d/fddd0d,id1d/fg«      ejl                  jo                  d2d(dg«      d3„ «       «       Z9y)4é    N)Úimport_module)ÚMockÚpatch©Úsettings)ÚUser)Úmail)ÚTestCase)ÚRequestFactory)Úoverride_settings)Úreverse)Úapp_settings)Úget_adapter)ÚEmailAddressÚEmailConfirmation)Úuser_signed_up)ÚSocialAccountÚSocialToken)Ú
jwt_encode)ÚGoogleOAuth2Adapter)ÚOAuth2TestsMixin)Úmocked_responseé   )ÚGoogleProviderc                 ó$   — ddddddœii| _         | S )NÚgoogleÚAPPÚapp123idÚdummy©Ú	client_idÚkeyÚsecret©ÚSOCIALACCOUNT_PROVIDERSr   s    új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/google/tests.pyÚsettings_with_google_providerr'      s.   € ð 	ØØ'ØØ!ñð
ð(€HÔ$ð €Oó    T)ÚSOCIALACCOUNT_AUTO_SIGNUPÚACCOUNT_SIGNUP_FORM_CLASSÚACCOUNT_EMAIL_VERIFICATIONc                   óŠ  ‡ — e Zd Zej                  Zˆ fd„Zd„ Zd„ Zdd„Z	 e
d¬«      d„ «       Zd„ Zd	„ Zd
„ Zd„ Z e
d¬«      d„ «       Zd„ Zd„ Z e
ej(                  j*                  ej(                  j,                  ¬«      d„ «       Z e
ej(                  j0                  ej(                  j0                  ¬«      d„ «       Zˆ xZS )ÚGoogleTestsc                 ó>   •— t         ‰| �  «        d| _        i | _        y ©Nzraymond.penners@example.com)ÚsuperÚsetUpÚemailÚidentity_overwrites)ÚselfÚ	__class__s    €r&   r1   zGoogleTests.setUp4   s   ø€ Ü‰‰ŒØ2ˆŒ
Ø#%ˆÕ r(   c                  ó   — yr/   © ©r4   s    r&   Úget_expected_to_strzGoogleTests.get_expected_to_str9   s   € Ø,r(   c                 ó¸   — t        t        j                  «       «      }d}d||dd| j                  ddddd	d
d||dz   dœ}|j                  | j                  «       |S )Nr   úhttps://accounts.google.comÚ108204268033311374519úexample.comTÚHK6E_P6Dh8Y93mRNtsDB1QúRaymond Pennersú+https://lh5.googleusercontent.com/photo.jpgÚRaymondÚPennersÚené  )ÚissÚazpÚaudÚsubÚhdr2   Úemail_verifiedÚat_hashÚnameÚpictureÚ
given_nameÚfamily_nameÚlocaleÚiatÚexp)ÚintÚtimer2   Úupdater3   )r4   Únowr!   Úpayloads       r&   Úget_google_id_token_payloadz'GoogleTests.get_google_id_token_payload<   sl   € Ü”$—)‘)“+ÓˆØˆ	à0ØØØ*ØØ—Z‘ZØ"Ø/Ø%ØDØ#Ø$ØØØ˜‘=ñ
ˆð" 	�‰�t×/Ñ/Ô0Øˆr(   c                 ól   — ddddt        | j                  «       d«      dœ}t        j                  |«      S )NÚtestacrD   zfhttps://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openidÚBearerr#   )Úaccess_tokenÚ
expires_inÚscopeÚ
token_typeÚid_token)r   rX   ÚjsonÚdumps)r4   Úwith_refresh_tokenÚdatas      r&   Úget_login_response_jsonz#GoogleTests.get_login_response_jsonS   s9   € à$ØØ}Ø"Ü" 4×#CÑ#CÓ#EÀxÓPñ
ˆô �z‰z˜$ÓÐr(   F)r)   c                 ó^   — | j                  d ¬«      }| j                  |t        d«      «       y )N©Ú	resp_mockÚsocialaccount_signup)ÚloginÚassertRedirectsr   )r4   Úresps     r&   Ú
test_loginzGoogleTests.test_login]   s(   € à�z‰z DˆzÓ)ˆØ×Ñ˜T¤7Ð+AÓ#BÕCr(   c                 ó4  — dt        j                   «       dz
  ddœ}|j                  «       D ]^  \  }}| j                  |«      5  ||i| _        | j	                  d ¬«      }| j                  |dt        t        dd«      z  «       d d d «       Œ` y # 1 sw Y   ŒkxY w)	Nz
not-googler   Úfoo)rE   rR   rG   rg   z%socialaccount/authentication_error.%sÚACCOUNT_TEMPLATE_EXTENSIONÚhtml)rT   ÚitemsÚsubTestr3   rj   ÚassertTemplateUsedÚgetattrr   )r4   Úwrong_claim_valuesr"   Úvaluerl   s        r&   Ú test_wrong_id_token_claim_valuesz,GoogleTests.test_wrong_id_token_claim_valuesb   s¤   € àÜ—9‘9“; ‘?Øñ
Ðð
 -×2Ñ2Ó4ò 	‰JˆC�Ø—‘˜cÓ"ñ Ø,/°¨<�Ô(Ø—z‘z¨D�zÓ1�Ø×'Ñ'ØØ;ÜœhÐ(DÀfÓMñNô÷ð ñ	÷ð ús   ÁA BÂB	c                 óÈ   — dddœ| _         | j                  d ¬«       t        j                  j	                  | j
                  ¬«      }| j                  |j                  d«       y )Nu   æ˜Žu   å°�)rN   rO   rg   ©r2   zraymond.penners)r3   rj   r   ÚobjectsÚgetr2   ÚassertEqualÚusername)r4   Úusers     r&   Útest_username_based_on_emailz(GoogleTests.test_username_based_on_emailr   sM   € Ø27ÈÑ#NˆÔ Ø�
‰
˜Tˆ
Ô"Ü�|‰|×Ñ d§j¡jÐÓ1ˆØ×Ñ˜Ÿ™Ð(9Õ:r(   c                 óª  — ddi| _         | j                  d ¬«       t        j                  j	                  | j
                  d¬«      }| j                  t        j                  j                  | j
                  ¬«      j                  «       «       |j                  j                  j                  «       d   }| j                  |j                  d   d«       y )	NrJ   Trg   )r2   Úverified©Úemail_address__emailr   rN   rA   )r3   rj   r   r{   r|   r2   ÚassertFalser   ÚfilterÚexistsr   Úsocialaccount_setÚallr}   Ú
extra_data)r4   Úemail_addressÚaccounts      r&   Útest_email_verifiedzGoogleTests.test_email_verifiedx   sª   € Ø$4°dÐ#;ˆÔ Ø�
‰
˜Tˆ
Ô"Ü$×,Ñ,×0Ñ0°t·z±zÈDÐ0ÓQˆØ×ÑÜ×%Ñ%×,Ñ,À$Ç*Á*Ð,ÓM×TÑTÓVô	
ð  ×$Ñ$×6Ñ6×:Ñ:Ó<¸QÑ?ˆØ×Ñ˜×+Ñ+¨LÑ9¸9ÕEr(   c                 ó    ‡ ‡— g Šˆ ˆfd„}t        j                  |«       ‰ j                  d ¬«       ‰ j                  t	        ‰«      dkD  «       y )Nc                 óæ   •— |d   }‰j                  |j                  j                  t        j                  «       ‰j                  |j                  j
                  |«       ‰j                  | «       y )NÚsociallogin)r}   rŒ   Úproviderr   Úidr   Úappend)ÚsenderÚrequestr   Úkwargsr�   r4   Úsent_signalss        €€r&   Úon_signed_upz<GoogleTests.test_user_signed_up_signal.<locals>.on_signed_up…   sY   ø€ Ø  Ñ/ˆKØ×Ñ˜[×0Ñ0×9Ñ9¼>×;LÑ;LÔMØ×Ñ˜[×0Ñ0×5Ñ5°tÔ<Ø×Ñ Õ'r(   rg   r   )r   Úconnectrj   Ú
assertTrueÚlen)r4   r˜   r—   s   ` @r&   Útest_user_signed_up_signalz&GoogleTests.test_user_signed_up_signal‚   sA   ù€ Øˆõ	(ô 	×Ñ˜|Ô,Ø�
‰
˜Tˆ
Ô"Ø�‰œ˜LÓ)¨AÑ-Õ.r(   )ÚACCOUNT_EMAIL_CONFIRMATION_HMACc                 óv  — ddi| _         | j                  d ¬«      }t        j                  j	                  | j
                  ¬«      }| j                  |j                  «       | j                  t        j                  j                  | j
                  ¬«      j                  «       «       | j                  |d«       y )NrJ   Frg   rz   rƒ   z3account/email/email_confirmation_signup_subject.txt)r3   rj   r   r{   r|   r2   r…   r‚   rš   r   r†   r‡   rt   )r4   rl   r‹   s      r&   Útest_email_unverifiedz!GoogleTests.test_email_unverified�   s–   € à$4°eÐ#<ˆÔ Ø�z‰z DˆzÓ)ˆÜ$×,Ñ,×0Ñ0°t·z±zÐ0ÓBˆØ×Ñ˜×/Ñ/Ô0Ø�‰Ü×%Ñ%×,Ñ,À$Ç*Á*Ð,ÓM×TÑTÓVô	
ð 	×ÑØÐGõ	
r(   c                 ó  — t        t        j                  «      }|j                  «       }|j	                  «        |j
                  | j                  j                  t        j                  <   t        «       j                  d«      }| j                  j                  |_        t        «       }|j                  || j                  «       |j                  j	                  «        ddi| _        | j!                  d ¬«       t"        j$                  j                  | j                  ¬«      }| j'                  |j(                  «       | j+                  t,        j$                  j/                  | j                  ¬«      j1                  «       «       y )Nú/rJ   Frg   rz   rƒ   )r   r   ÚSESSION_ENGINEÚSessionStoreÚsaveÚsession_keyÚclientÚcookiesÚSESSION_COOKIE_NAMEr   r|   ÚsessionÚget_account_adapterÚstash_verified_emailr2   r3   rj   r   r{   rš   r‚   r…   r   r†   r‡   )r4   ÚengineÚstorer•   Úadapterr‹   s         r&   Útest_email_verified_stashedz'GoogleTests.test_email_verified_stashedœ   s  € äœx×6Ñ6Ó7ˆØ×#Ñ#Ó%ˆØ�
‰
ŒØ<A×<MÑ<Mˆ�‰×ÑœH×8Ñ8Ñ9Ü Ó"×&Ñ& sÓ+ˆØŸ+™+×-Ñ-ˆŒÜ%Ó'ˆØ×$Ñ$ W¨d¯j©jÔ9Ø�‰×ÑÔà$4°eÐ#<ˆÔ Ø�
‰
˜Tˆ
Ô"Ü$×,Ñ,×0Ñ0°t·z±zÐ0ÓBˆØ�‰˜×.Ñ.Ô/Ø×ÑÜ×%Ñ%×,Ñ,À$Ç*Á*Ð,ÓM×TÑTÓVõ	
r(   c                 óî  — d}t         j                  j                  dd|¬«      }|j                  d«       |j	                  «        t
        j                  j                  ||dd¬«       | j                  j                  |j                  d¬«       |ddœ| _	        | j                  d d	¬
«       | j                  t        j                  j                  |t        j                  ¬«      j                  «       «       | j!                  t
        j                  j                  |¬«      j#                  «       d«       | j!                  t
        j                  j                  ||¬«      j#                  «       d«       y )Nzuser@example.comr   T)r~   Ú	is_activer2   Útest)r   r2   Úprimaryr‚   )r~   Úpassword)r2   rJ   r™   )rh   Úprocess)r   r‘   )r   r   )r   r2   )r   r{   ÚcreateÚset_passwordr¤   r   r¦   rj   r~   r3   rš   r   r†   r   r’   r‡   r}   Úcount)r4   r2   r   s      r&   Útest_account_connectz GoogleTests.test_account_connect°   s"  € Ø"ˆÜ�|‰|×"Ñ"¨F¸dÈ%Ð"ÓPˆØ×Ñ˜&Ô!Ø�	‰	ŒÜ×Ñ×#Ñ#¨°UÀDÐSWÐ#ÔXØ�‰×Ñ 4§=¡=¸6ÐÔBØ-2ÀdÑ#KˆÔ Ø�
‰
˜T¨9ˆ
Ô5à�‰Ü×!Ñ!×(Ñ(¨d¼^×=NÑ=NÐ(ÓO×VÑVÓXô	
ð 	×Ñœ×-Ñ-×4Ñ4¸$Ð4Ó?×EÑEÓGÈÔKØ×Ñœ×-Ñ-×4Ñ4¸$ÀeÐ4ÓL×RÑRÓTÐVWÕXr(   )r+   Ú SOCIALACCOUNT_EMAIL_VERIFICATIONc                 óR  — ddi| _         | j                  d ¬«       t        j                  j	                  | j
                  ¬«      }| j                  |j                  «       | j                  t        j                  j                  | j
                  ¬«      j                  «       «       y )NrJ   Frg   rz   rƒ   )r3   rj   r   r{   r|   r2   r…   r‚   r   r†   r‡   )r4   r‹   s     r&   Ú&test_social_email_verification_skippedz2GoogleTests.test_social_email_verification_skippedÁ   s‚   € ð
 %5°eÐ#<ˆÔ Ø�
‰
˜Tˆ
Ô"Ü$×,Ñ,×0Ñ0°t·z±zÐ0ÓBˆØ×Ñ˜×/Ñ/Ô0Ø×ÑÜ×%Ñ%×,Ñ,À$Ç*Á*Ð,ÓM×TÑTÓVõ	
r(   c                 ó  — ddi| _         | j                  d ¬«       | j                  t        t        j
                  «      d«       | j                  d ¬«       | j                  t        t        j
                  «      d«       y )NrJ   Frg   r   )r3   rj   r}   r›   r	   Úoutboxr8   s    r&   Ú'test_social_email_verification_optionalz3GoogleTests.test_social_email_verification_optionalÎ   s_   € ð
 %5°eÐ#<ˆÔ Ø�
‰
˜Tˆ
Ô"Ø×ÑœœTŸ[™[Ó)¨1Ô-Ø�
‰
˜Tˆ
Ô"Ø×ÑœœTŸ[™[Ó)¨1Õ-r(   )T)Ú__name__Ú
__module__Ú__qualname__r   r’   Úprovider_idr1   r9   rX   re   r   rm   rx   r€   r�   rœ   rŸ   r¯   r¹   Úaccount_settingsÚEmailVerificationMethodÚ	MANDATORYÚNONEr¼   ÚOPTIONALr¿   Ú__classcell__)r5   s   @r&   r-   r-   ,   sæ   ø„ ð !×#Ñ#€Kô&ò
-òó. ñ °Ô7ñDó 8ðDòò ;òFò/ñ °uÔ=ñ

ó >ð

ò
ò(Yñ" Ø#3×#KÑ#K×#UÑ#UØ)9×)QÑ)Q×)VÑ)Vôñ
ó	ð
ñ Ø#3×#KÑ#K×#TÑ#TØ)9×)QÑ)Q×)ZÑ)Zôñ.ó	ô.r(   r-   r   r   r   r   r    r$   c                   ó   — e Zd ZdZy)ÚAppInSettingsTestszI
    Run the same set of tests but without having a SocialApp entry.
    N)rÀ   rÁ   rÂ   Ú__doc__r7   r(   r&   rË   rË   Ú   s   „ ñð 	r(   rË   c                 óž  — |j                   j                  ddi«       t        d«      5 }t        ddi«      5  t        d«      5 }t        d«      5 }dd	d
ddddddddddddœ|_        ddddœ|_        t        «       }||_        d|j                  _        |j                  t        d«      dddœ«      }|j                  dk(  sJ ‚t        j                  j                  d
¬«      }|j                  j                  dk(  sJ ‚	 d d d «       d d d «       d d d «       d d d «       y # 1 sw Y   Œ"xY w# 1 sw Y   Œ&xY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w) NÚg_csrf_tokenÚcsrfz?allauth.socialaccount.internal.jwtkit.jwt.get_unverified_headerÚdummykidz-----BEGIN CERTIFICATE-----z?allauth.socialaccount.internal.jwtkit.load_pem_x509_certificatez0allauth.socialaccount.internal.jwtkit.jwt.decoder;   r!   Ú123subr=   zraymond@example.comTr>   r?   r@   rA   rB   rC   é{   iÈ  )rE   rG   rH   rI   r2   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   ÚRS256ÚJWT)ÚalgÚkidÚtypr"   Úgoogle_login_by_tokenr   )Ú
credentialrÎ   i.  )Úuid)r§   Úloadr   r   Úreturn_valuer   Ú
public_keyÚpostr   Ústatus_coder   r{   r|   r   r2   )	Údbr¦   r'   Úg_u_hÚload_pemÚdecodeÚpemrl   Úsocialaccounts	            r&   Útest_login_by_tokenræ   í   s‹  € Ø
‡N�N×Ñ˜¨Ð0Ô1Ü	ØIó
ð (Mà	Ü˜jÐ*GÐHÓIñ %	MÜØQóð $MàÜØFóð !Màà<Ø*Ø'Ø+Ø!6Ø*.Ø#;Ø 1Ø#PØ&/Ø'0Ø"&Ø"Ø"ñ+�FÔ'ð"  'Ø)Ø$ñ*�EÔ&ô
 ›&�CØ,/�HÔ)Ø27�C—N‘NÔ/Ø!Ÿ;™;ÜÐ 7Ó8Ø'.ÀÑGó�Dð  ×+Ñ+¨sÒ2Ð2Ð2Ü$1×$9Ñ$9×$=Ñ$=À(Ð$=Ó$K�MØ(×-Ñ-×3Ñ3Ð7LÒLÐLÑL÷C!M÷$M÷%	M÷(Mð (M÷!Mð !Mú÷$Mð $Mú÷%	Mð %	Mú÷(Mð (MúsS   ©E·D7ÁD+ÁB.D	Ã>D+ÄD7ÄEÄD(Ä$D+Ä+D4Ä0D7Ä7E 	Ä<EÅEzid_key,verified_key)r’   rJ   )rH   Úverified_emailr‚   Fc                 ó.  — ddi}d|| <   |||<   t        «       j                  d t        j                  «      }|j	                  |«      dk(  sJ ‚|j                  |«      }t        |«      dk(  sJ ‚|d   j                  |k(  sJ ‚|d   j                  dk(  sJ ‚y )Nr2   za@b.comÚ123r   r   )	r   Úget_providerr   r’   Úextract_uidÚextract_email_addressesr›   r‚   r2   )Úid_keyÚverified_keyr‚   r'   rà   rd   r‘   Úemailss           r&   Útest_extract_datarð     s¨   € ð 	�ð€Dð €Dˆ�LØ!€DˆÑÜ‹}×)Ñ)¨$´×0AÑ0AÓB€HØ×Ñ Ó%¨Ò.Ð.Ð.Ø×-Ñ-¨dÓ3€FÜˆv‹;˜!ÒÐÐØ�!‰9×Ñ Ò)Ð)Ð)Ø�!‰9�?‰?˜iÒ'Ð'Ñ'r(   zKfetch_userinfo,id_token_has_picture,response,expected_uid, expected_picturer`   ré   úuid-from-id-tokenúpic-from-id-tokenúpic-from-userinfor\   úuid-from-userinfoÚdid_fetch_access_tokenc                 ó  — t        j                  t        ddddœ¬«      5  ddi}|rd|d	<   t        d
|¬«      5 }	d }
d }t        |
«      }||_        ||_        t        «       }|j                  |
||| «      }|j                  j                  |k(  sJ ‚|j                  j                  d	   |k(  sJ ‚| j                  d«      s|	j                  rJ ‚|	j                  d   d   | k(  sJ ‚d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NÚ_fetch_user_inforô   ró   )r’   rM   )rÜ   rH   rñ   rò   rM   z?allauth.socialaccount.providers.google.views._verify_and_decoder`   r   Úverify_signature)r   Úobjectr   rõ   Úfetch_userinfor   Úcomplete_loginrŒ   rÚ   rŠ   r|   ÚcalledÚ	call_args)Úresponser'   rà   rú   Úexpected_uidÚexpected_pictureÚid_token_has_picturerõ   r`   Údecode_mockr•   Úappr®   Útokenrj   s                  r&   Útest_complete_login_variantsr  2  s8  € ô& 
�‰ÜØà%Ø*ñ
ô
ñ ð Ð.Ð/ˆÙØ"5ˆH�YÑÜØMØ!ô
ð 	ð ØˆGØˆCÜ)¨'Ó2ˆGØ-CˆGÔ*Ø%3ˆGÔ"Ü“MˆEØ×*Ñ*¨7°C¸ÀÓIˆEØ—=‘=×$Ñ$¨Ò4Ð4Ð4Ø—=‘=×+Ñ+¨IÑ6Ð:JÒJÐJÐJØ—<‘< 
Ô+Ø&×-Ò-Ð-Ð-à"×,Ñ,¨QÑ/Ð0BÑCØ.Ð.òð ð ÷!	÷ð ÷	ð 	ú÷ð ús#    D¹B,C6Ã%DÃ6C?	Ã;DÄD):ra   rT   Ú	importlibr   Úunittest.mockr   r   Údjango.confr   Údjango.contrib.auth.modelsr   Údjango.corer	   Údjango.testr
   Údjango.test.clientr   Údjango.test.utilsr   Údjango.urlsr   ÚpytestÚallauth.accountr   rÄ   Úallauth.account.adapterr   rª   Úallauth.account.modelsr   r   Úallauth.account.signalsr   Úallauth.socialaccount.adapterÚallauth.socialaccount.modelsr   r   Ú,allauth.socialaccount.providers.apple.clientr   Ú,allauth.socialaccount.providers.google.viewsr   Úallauth.socialaccount.testsr   Úallauth.testsr   r‘   r   Úfixturer'   rÅ   rÆ   r-   rË   ræ   ÚmarkÚparametrizerð   r  r7   r(   r&   ú<module>r     s¾  ðÛ Û Ý #ß %å  Ý +Ý Ý  Ý -Ý /Ý ã å <Ý Fß BÝ 2Ý 5ß CÝ CÝ LÝ 8Ý )å $ð ‡�ñ
ó ð
ñ Ø"Ø"Ø/×GÑG×QÑQôô
f.Ð" Hó f.óð
f.ñR àØØ'ØØ!ñð
ðô
ô	˜ó 	ó
ð	ò*MðZ ‡�×ÑØà Ø!ðóð ‡�×Ñ˜ e¨T ]Ó3ñ(ó 4óð(ð  ‡�×ÑØQà	ˆt�j %Ð(Ð*=Ð?RÐSØ	ˆu�z 5Ð)Ð+>Ð@SÐTØ	ˆt�n eÐ,Ð.AÐCVÐWðóð ‡�×ÑÐ1°E¸4°=ÓAñ'ó Bóñ'r(   