Ë
    ûûàgßE  ã                   óö   — 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
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d „ Z'y)!é    N)Ú
HTTPStatus)Úpatch)Úreverse)ÚassertTemplateUsed)ÚEmailAddress)Úget_adapter)ÚSocialAccount)ÚAuthProcessc                 ó€   — d|_         | j                   |d«      ddt        j                  dœ¬«      }t	        |d«       y )NFú+headless:socialaccount:redirect_to_providerÚdummyzhttps://unsafe.org/hack©ÚproviderÚcallback_urlÚprocess©Údataú'socialaccount/authentication_error.html)ÚHEADLESS_ONLYÚpostr
   ÚLOGINr   ©ÚclientÚheadless_reverseÚdbÚsettingsÚresps        úm/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/headless/socialaccount/tests/test_views.pyÚtest_bad_redirectr      sG   € Ø"€HÔØ�;‰;ÙÐFÓGàØ5Ü"×(Ñ(ñ
ð ó €Dô �tÐFÕGó    c                 ó˜   — | j                   |d«      ddt        j                  dœ¬«      }|j                  t        j
                  k(  sJ ‚y )Nr   r   ú/r   r   )r   r
   r   Ústatus_coder   ÚFOUND)r   r   r   r   s       r   Útest_valid_redirectr%      sN   € Ø�;‰;ÙÐFÓGàØÜ"×(Ñ(ñ
ð ó €Dð ×Ñœz×/Ñ/Ò/Ð/Ñ/r    c                 óò   — | j                   |d«      ddt        j                  dœ¬«      }t        |dd«      r |j                  t
        j                  k(  sJ ‚y |j                  t
        j                  k(  sJ ‚y )Nr   Úunknownr"   r   r   r   F)r   r
   r   Úgetattrr#   r   r$   ÚOKr   s        r   Útest_unknown_provider_redirectr*   (   sr   € Ø�;‰;ÙÐFÓGà!ØÜ"×(Ñ(ñ
ð ó €Dô ˆx˜¨%Ô0Ø×Ñ¤:×#3Ñ#3Ò3Ð3Ñ3à×Ñ¤:§=¡=Ò0Ð0Ñ0r    c                 ó  — t         j                  j                  ||d¬«      }t         j                  j                  ||d¬«      }| j                   |d«      «      }|j	                  «       }|d   t
        j                  k(  sJ ‚t        |d   «      dk(  sJ ‚| j                   |d«      |j                  |j                  dœd	¬
«      }|j                  t
        j                  k(  sJ ‚|j	                  «       t
        j                  ddddg|ddœddœgdœk(  sJ ‚t         j                  j                  |j                  ¬«      j                  «       rJ ‚t         j                  j                  |j                  ¬«      j                  «       sJ ‚y )NÚp123©Úuserr   ÚuidÚp456ú'headless:socialaccount:manage_providersÚstatusr   é   ©r   Úaccountúapplication/json©r   Úcontent_typezUnittest ServerzUnittest client_idÚprovider_redirectÚprovider_token)Ú	client_idÚflowsÚidÚname©Údisplayr   r/   )r2   r   )Úpk)r	   ÚobjectsÚcreateÚgetÚjsonr   r)   ÚlenÚdeleter   r/   r#   ÚfilterrA   Úexists)Úauth_clientr.   r   Úprovider_idÚaccount_to_delÚaccount_to_keepr   r   s           r   Útest_manage_providersrN   7   s“  € Ü"×*Ñ*×1Ñ1Ø˜K¨Vð 2ó €Nô $×+Ñ+×2Ñ2Ø˜K¨Vð 3ó €Oð �?‰?ÙÐBÓCó€Dð �9‰9‹;€DØ�‰>œZŸ]™]Ò*Ð*Ð*Üˆt�F‰|Ó Ò!Ð!Ð!Ø×ÑÙÐBÓCØ(×1Ñ1¸n×>PÑ>PÑQØ'ð ó €Dð
 ×ÑœzŸ}™}Ò,Ð,Ð,Ø�9‰9‹;Ü—-‘-ð -à!5Ø1Ð3CÐDØ%Ø-ñ	ð ñ	ð
ñò ð ð ô ×$Ñ$×+Ñ+¨~×/@Ñ/@Ð+ÓA×HÑHÔJÐJÐJÜ× Ñ ×'Ñ'¨?×+=Ñ+=Ð'Ó>×EÑEÔGÐGÑGr    c                 óÐ   — | j                   |d«      |ddœd¬«      }|j                  t        j                  k(  sJ ‚|j	                  «       t        j                  dddœgd	œk(  sJ ‚y )
Nr1   r'   r4   r6   r7   Úaccount_not_foundzUnknown account.©ÚcodeÚmessage©r2   Úerrors)rG   r#   r   ÚBAD_REQUESTrE   )rJ   r.   r   rK   r   s        r   Útest_disconnect_bad_requestrW   ]   sy   € Ø×ÑÙÐBÓCØ%°)Ñ<Ø'ð ó €Dð
 ×Ñœz×5Ñ5Ò5Ð5Ð5Ø�9‰9‹;Ü×(Ñ(Ø/Ð<NÑOÐPñò ð ñ r    c                 ó�  — |j                  «        |j                  dg¬«       | j                  |«       t        j                  j                  |d|¬«      }| j                   |d«      ||j                  dœd¬«      }|j                  t        j                  k(  sJ ‚|j                  «       t        j                  d	d
dœgdœk(  sJ ‚y )NÚpassword)Úupdate_fieldsÚ123©r.   r/   r   r1   r4   r6   r7   Úno_passwordz$Your account has no password set up.rQ   rT   )Úset_unusable_passwordÚsaveÚforce_loginr	   rB   rC   rG   r/   r#   r   rV   rE   )rJ   r.   r   rK   r5   r   s         r   Útest_disconnect_not_allowedra   j   sÆ   € Ø×ÑÔ Ø‡I�I˜Z˜L€IÔ)Ø×Ñ˜DÔ!Ü×#Ñ#×*Ñ*°¸%È+Ð*ÓV€GØ×ÑÙÐBÓCØ%°'·+±+Ñ>Ø'ð ó €Dð
 ×Ñœz×5Ñ5Ò5Ð5Ð5Ø�9‰9‹;Ü×(Ñ(à"Ð/UÑVð
ñò ð ñ r    c                 ó2  — t        j                  ddddœ«      }| j                   |d«      dd|it        j                  dœd	¬
«      }|j
                  t        j                  k(  sJ ‚t        j                  j                  dd¬«      j                  «       sJ ‚y )Né{   úa@b.comT©r=   ÚemailÚemail_verifiedú%headless:socialaccount:provider_tokenr   Úid_token©r   Útokenr   r6   r7   ©rf   Úverified)rE   Údumpsr   r
   r   r#   r   r)   r   rB   rH   rI   )r   r   r   ri   r   s        r   Útest_valid_tokenro   }   s    € Ü�z‰zàØØ"ñ	
ó€Hð �;‰;ÙÐ@ÓAàà˜Hðô #×(Ñ(ñ
ð (ð ó 
€Dð ×ÑœzŸ}™}Ò,Ð,Ð,Ü×Ñ×&Ñ&¨YÀÐ&ÓF×MÑMÔOÐOÑOr    c                 ó  — | j                   |d«      dd|d   d   d   dœt        j                  dœd	¬
«      }|j                  t        j
                  k(  sJ ‚|j                  «       }|t        j
                  ddddœgdœk(  sJ ‚y )Nrh   Úgoogler   ÚAPPSr   r;   ©ri   r;   rj   r6   r7   zInvalid token.Úinvalid_tokenrk   )rS   rR   ÚparamrT   )r   r
   r   r#   r   rV   rE   )r   r   r   Úgoogle_provider_settingsr   r   s         r   Útest_invalid_tokenrw   ”   s¦   € Ø�;‰;ÙÐ@ÓAà à#Ø5°fÑ=¸aÑ@ÀÑMñô #×(Ñ(ñ
ð (ð ó €Dð ×Ñœz×5Ñ5Ò5Ð5Ð5Ø�9‰9‹;€DØÜ×(Ñ(à(°/ÈGÑTð
ñò ð ñ r    c                 ó@  — d|_         |d   j                  dddœ«       dddd	œ}t        d
|¬«      5  | j                   |d«      dd|d   d   d   dœt        j
                  dœd¬«      }|j                  t        j                  k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)NÚ	mandatoryrr   Ú
client_id2Úsecret2)r;   Úsecretzuid-from-id-tokenrd   T)Úsubrf   rg   z?allauth.socialaccount.providers.google.views._verify_and_decode)Úreturn_valuerh   rq   r   r   r;   rs   rj   r6   r7   )	ÚACCOUNT_EMAIL_VERIFICATIONÚappendr   r   r
   r   r#   r   r)   )r   r   r   rv   r   Úuser_factoryri   r   s           r   Útest_valid_token_multiple_appsr‚   «   sÃ   € ð +6€HÔ'Ø˜VÑ$×+Ñ+Ø"¨iÑ8ôð +°YÐRVÑW€HÜ	ØIØô
ñ 1ð �{‰{ÙÐDÓEà$à 'Ø!9¸&Ñ!AÀ!Ñ!DÀ[Ñ!Qñô '×,Ñ,ñð ,ð ó 
ˆð ×Ñ¤:§=¡=Ò0Ð0Ñ0÷!1÷ 1ñ 1ús   ²ABÂBc                 ó^   — d|_         | j                  t        d«      «      }t        |d«       y)zlAuthentication errors use the regular "Third-Party Login Failure"
    template if headless is not used.
    FÚgoogle_callbackr   N)r   rD   r   r   )r   r   rv   r   r   s        r   Ú#test_auth_error_no_headless_requestr…   Æ   s+   € ð #€HÔØ�:‰:”gÐ/Ó0Ó1€DÜ�tÐFÕGr    c                 ón   —  || dd¬«      }| j                  t        d«      d|› �z   «      }|d   dk(  sJ ‚y)	zaAuthentication errors redirect to the next URL with ?error params for
    headless requests.
    Tú/foo©ÚheadlessÚnextr„   ú?state=Úlocationú&/foo?error=unknown&error_process=loginN)rD   r   )r   r   rv   Úsociallogin_setup_stateÚstater   s         r   Ú test_auth_error_headless_requestr�   Ï   sF   € ñ $ F°TÀÔG€EØ�:‰:”gÐ/Ó0°W¸U¸GÐ3DÑDÓE€DØ�
ÑÐGÒGÐGÑGr    c                 ól   — d| _         ddi| _        |j                  t        d«      «      }|d   dk(  sJ ‚y)úƒAuthentication errors redirect to a fallback error URL for headless-only,
    in case no next can be recovered from the state.
    TÚsocialaccount_login_errorú/3rdparty/failurer„   rŒ   zDhttp://testserver/3rdparty/failure?error=unknown&error_process=loginN©r   ÚHEADLESS_FRONTEND_URLSrD   r   )r   r   r   rv   r   s        r   Ú7test_auth_error_no_headless_state_request_headless_onlyr—   Ú   sJ   € ð "€HÔØ'BÐDWÐ&X€HÔ#Ø�:‰:”gÐ/Ó0Ó1€DàˆZÑØQò	Rðñ	Rr    c                 óŽ   —  ||dd¬«      }d| _         ddi| _        |j                  t        d«      d|› �z   «      }|d   d	k(  sJ ‚y
)r’   Tr‡   rˆ   r“   r”   r„   r‹   rŒ   r�   Nr•   )r   r   r   rv   rŽ   r�   r   s          r   Ú4test_auth_error_headless_state_request_headless_onlyr™   é   s\   € ñ $ F°TÀÔG€EØ!€HÔØ'BÐDWÐ&X€HÔ#Ø�:‰:”gÐ/Ó0°W¸U¸GÐ3DÑDÓE€DØ�
ÑÐGÒGÐGÑGr    c                 ó‚  — t        j                  ddddœ«      }t        d«      5 }d|_        | j	                   |d«      dd	|it
        j                  d
œd¬«      }|j                  t        j                  k(  sJ ‚	 d d d «       t        j                  j                  dd¬«      j                  «       rJ ‚y # 1 sw Y   Œ;xY w)Nrc   rd   Tre   úLallauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signupFrh   r   ri   rj   r6   r7   rl   )rE   rn   r   r~   r   r
   r   r#   r   Ú	FORBIDDENr   rB   rH   rI   )r   r   r   ri   Úiofsr   s         r   Útest_token_signup_closedrž   ö   sÒ   € Ü�z‰zàØØ"ñ	
ó€Hô 
ØVó
ð 8à	Ø!ˆÔØ�{‰{ÙÐDÓEà#à ðô '×,Ñ,ñð ,ð ó 

ˆð ×Ñ¤:×#7Ñ#7Ò7Ð7Ñ7÷8ô  ×#Ñ#×*Ñ*°ÀTÐ*ÓJ×QÑQÔSÐSÐSÐS÷!8ð 8ús   ¥AB5Â5B>c                 óÊ  — d|_         d|_        d|_        d}t        j                  d|i«      }| j                   |d«      dd|it        j                  d	œd
¬«      }|j                  t        j                  k(  sJ ‚|j                  «       d   d   D �cg c]  }|j                  d«      sŒ|‘Œ c}d   }|d   dk(  sJ ‚| j                   |d«      «      }|j                  t        j                  k(  sJ ‚|j                  «       g dddgdddœ|dœdddœdœt        j                  dœk(  sJ ‚| j                   |d«      ddid
¬«      }|j                  t        j                  k(  sJ ‚|j                  «       d   d   D �cg c]  }|j                  d«      sŒ|‘Œ c}d   }|d   dk(  sJ ‚t        j                  j                  d¬«      j!                  «       sJ ‚y c c}w c c}w )Nry   TFr[   r=   rh   r   ri   rj   r6   r7   r   r<   Ú
is_pendingr   Úprovider_signupú&headless:socialaccount:provider_signupÚDummyr9   r:   )r<   r=   r>   r?   r.   )r@   Úhas_usable_password)rf   r5   r.   )r   r2   rf   rd   Úverify_email)rf   )r   ÚACCOUNT_EMAIL_REQUIREDÚACCOUNT_USERNAME_REQUIREDrE   rn   r   r
   r   r#   r   ÚUNAUTHORIZEDrD   r)   r   rB   rH   rI   )	r   r   r   r   Úaccount_uidri   r   ÚfÚpending_flows	            r   Útest_provider_signupr¬     s  € Ø*5€HÔ'Ø&*€HÔ#Ø).€HÔ&Ø€KÜ�z‰zà�+ð	
ó€Hð
 �;‰;ÙÐ@ÓAàà˜Hðô #×(Ñ(ñ
ð (ð ó 
€Dð ×Ñœz×6Ñ6Ò6Ð6Ð6Ø#Ÿy™y›{¨6Ñ2°7Ñ;ÖS˜!¸q¿u¹uÀ\Õ?R’AÒSÐTUÑV€LØ˜ÑÐ!2Ò2Ð2Ð2à�:‰:Ñ&Ð'OÓPÓQ€DØ×ÑœzŸ}™}Ò,Ð,Ð,Ø�9‰9‹;àà"à1Ð3CÐDØ!Ø#ñð
 #ñð !'¸uÑEñ
ô —-‘-ñò ð ð ð" �;‰;ÙÐAÓBà�Yð
ð (ð ó €Dð ×Ñœz×6Ñ6Ò6Ð6Ð6Ø#Ÿy™y›{¨6Ñ2°7Ñ;ÖS˜!¸q¿u¹uÀ\Õ?R’AÒSÐTUÑV€LØ˜Ñ Ò/Ð/Ð/Ü×Ñ×&Ñ&¨YÐ&Ó7×>Ñ>Ô@Ð@Ñ@ùòA Tùò< Ts   ÂGÂ+GÅ?G ÆG c                 óJ  — d|_         d|_        d|_        t        j                  ddi«      }| j                   |d«      dd|it        j                  d	œd
¬«      }|j                  t        j                  k(  sJ ‚|j                  «       d   d   D �cg c]  }|j                  d«      sŒ|‘Œ c}d   }|d   dk(  sJ ‚t        d«      5 }d|_        | j                   |d«      ddid
¬«      }d d d «       |j                  t        j                  k(  sJ ‚y c c}w # 1 sw Y   Œ.xY w)Nry   TFr=   rc   rh   r   ri   rj   r6   r7   r   r<   r    r   r¡   r›   r¢   rf   rd   )r   r¦   r§   rE   rn   r   r
   r   r#   r   r¨   rD   r   r~   rœ   )	r   r   r   r   ri   r   rª   r«   r�   s	            r   Útest_signup_closedr®   J  sK  € Ø*5€HÔ'Ø&*€HÔ#Ø).€HÔ&Ü�z‰zà�#ð	
ó€Hð
 �;‰;ÙÐ@ÓAàà˜Hðô #×(Ñ(ñ
ð (ð ó 
€Dð ×Ñœz×6Ñ6Ò6Ð6Ð6Ø#Ÿy™y›{¨6Ñ2°7Ñ;ÖS˜!¸q¿u¹uÀ\Õ?R’AÒSÐTUÑV€LØ˜ÑÐ!2Ò2Ð2Ð2Ü	ØVó
ð 

à	Ø!ˆÔØ�{‰{ÙÐEÓFà˜ðð ,ð ó 
ˆ÷	

ð ×Ñœz×3Ñ3Ò3Ð3Ñ3ùò T÷

ð 

ús   ÂDÂ)DÃ$DÄD"c                 ó  —  ||ddd¬«      }|j                  t        d«      d|› �z   ddi¬	«      }|j                  t        j                  k(  sJ ‚|d
   dk(  sJ ‚t
        j                  j                  | dd¬«      j                  «       sJ ‚y )NÚconnectr‡   T©r   rŠ   r‰   Údummy_authenticater‹   r=   rc   r   rŒ   r   r[   r-   )	r   r   r#   r   r$   r	   rB   rH   rI   )r.   rJ   rŽ   r   r   r�   r   s          r   Útest_connectr³   o  s¤   € Ù#Ø˜Y¨V¸dô€Eð ×ÑÜÐ$Ó%¨'°%°Ð(9Ñ9à�#ð
ð ó €Dð ×Ñœz×/Ñ/Ò/Ð/Ð/Ø�
Ñ˜vÒ%Ð%Ð%Ü× Ñ ×'Ñ'¨T¸GÈÐ'ÓO×VÑVÔXÐXÑXr    c                 óÄ   — d|_          ||ddd¬«      }|j                  t        d«      d|› �z   ddi¬	«      }|j                  t        j
                  k(  sJ ‚|d
   dk(  sJ ‚y )NTr°   r‡   r±   r²   r‹   r=   rc   r   rŒ   z:/foo?error=reauthentication_required&error_process=connect)Ú!ACCOUNT_REAUTHENTICATION_REQUIREDr   r   r#   r   r$   )r.   rJ   rŽ   r   r   r   r�   r   s           r   Ú&test_connect_reauthentication_requiredr¶   ~  s‡   € ð 26€HÔ.á#Ø˜Y¨V¸dô€Eð ×ÑÜÐ$Ó%¨'°%°Ð(9Ñ9à�#ð
ð ó €Dð ×Ñœz×/Ñ/Ò/Ð/Ð/àˆZÑÐXÒXðÙXr    c                 óˆ  —  |«       }t         j                  j                  |dd¬«        ||t        j                  dd¬«      }|j                  t        d«      d|› �z   d	d
i¬«      }|j                  t        j                  k(  sJ ‚|d   dk(  sJ ‚t         j                  j                  | dd¬«      j                  «       rJ ‚y )Nr[   r   r\   r‡   Tr±   r²   r‹   r=   rc   r   rŒ   z0/foo?error=connected_other&error_process=connectr-   )r	   rB   rC   r
   ÚCONNECTr   r   r#   r   r$   rH   rI   )	r.   r�   rJ   rŽ   r   r   Ú
other_userr�   r   s	            r   Útest_connect_already_connectedrº   ’  sà   € ñ “€JÜ×Ñ× Ñ  j°eÀgÐ ÔNá#Øœ[×0Ñ0°vÈô€Eð ×ÑÜÐ$Ó%¨'°%°Ð(9Ñ9à�#ð
ð ó €Dð ×Ñœz×/Ñ/Ò/Ð/Ð/Ø�
ÑÐQÒQÐQÐQÜ×$Ñ$×+Ñ+Ø˜G¨ð ,ó ç�fƒhðð ð ð r    c                 ó2  — t        j                  ddddœ«      }|j                   |d«      dd|it        j                  dœd	¬
«      }|j
                  t        j                  k(  sJ ‚t        j                  j                  d| ¬«      j                  «       sJ ‚y )Nrc   rd   Tre   rh   r   ri   rj   r6   r7   r[   ©r/   r.   )rE   rn   r   r
   r¸   r#   r   r)   r	   rB   rH   rI   )r.   rJ   r   r   ri   r   s         r   Útest_token_connectr½   ª  s¢   € Ü�z‰zàØØ"ñ	
ó€Hð ×ÑÙÐ@ÓAàà˜Hðô #×*Ñ*ñ
ð (ð ó 
€Dð ×ÑœzŸ}™}Ò,Ð,Ð,Ü× Ñ ×'Ñ'¨E¸Ð'Ó=×DÑDÔFÐFÑFr    c                 óØ  —  |«       }t         j                  j                  |dd¬«       t        j                  ddddœ«      }|j                   |d«      dd	|it        j                  d
œd¬«      }t         j                  j                  d| ¬«      j                  «       rJ ‚|j                  t        j                  k(  sJ ‚|j                  «       t        j                  dddœgdœk(  sJ ‚y )Nr[   r   r\   rc   rd   Tre   rh   ri   rj   r6   r7   r¼   Úconnected_otherzDThe third-party account is already connected to a different account.rQ   rT   )r	   rB   rC   rE   rn   r   r
   r¸   rH   rI   r#   r   rV   )r.   rJ   r   r   r�   r¹   ri   r   s           r   Ú$test_token_connect_already_connectedrÀ   Á  s   € ñ “€JÜ×Ñ× Ñ  j°eÀgÐ ÔNÜ�z‰zàØØ"ñ	
ó€Hð ×ÑÙÐ@ÓAàà˜Hðô #×*Ñ*ñ
ð (ð ó 
€Dô ×$Ñ$×+Ñ+°¸DÐ+ÓA×HÑHÔJÐJÐJØ×Ñœz×5Ñ5Ò5Ð5Ð5Ø�9‰9‹;Ü×(Ñ(ð *Øañð
ñò ð ñ r    c                 óz   — | j                   |d«      ddid¬«      }|j                  t        j                  k(  sJ ‚y )Nr¢   rf   rd   r6   r7   )r   r#   r   ÚCONFLICTr   s        r   Ú test_provider_signup_not_pendingrÃ   æ  sI   € Ø�;‰;ÙÐAÓBà�Yð
ð (ð ó €Dð ×Ñœz×2Ñ2Ò2Ð2Ñ2r    c           	      ó"  — t        «       j                  d |«      }t        j                  ddddœ«      }t	        d«      5  t	        d«      5 }ddi|_        | j                   |d	«      ||j                  j                  |d
œt        j                  dœd¬«      }|j                  t        j                  k(  sJ ‚t        j                  j!                  d¬«      j#                  «       sJ ‚	 d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nrc   rd   Tre   z]allauth.socialaccount.providers.openid_connect.views.OpenIDConnectOAuth2Adapter.openid_configz7allauth.socialaccount.internal.jwtkit.verify_and_decoder}   r[   rh   )r;   ri   rj   r6   r7   )r/   )r   Úget_providerrE   rn   r   r~   r   Úappr;   r
   r   r#   r   r)   r	   rB   rH   rI   )r   r   r   Úopenid_connect_provider_idr   ri   Úvadr   s           r   Útest_valid_openid_connect_tokenrÉ   ñ  s  € ô ‹}×)Ñ)¨$Ð0JÓK€HÜ�z‰zàØØ"ñ	
ó€Hô 
Øgó
ñ Dô ÐLÓMð 	DÐQTØ % u˜~ˆCÔØ—;‘;Ù Ð!HÓIà :à%-§\¡\×%;Ñ%;Ø$,ñô  +×0Ñ0ñð 0ð ó ˆDð ×#Ñ#¤z§}¡}Ò4Ð4Ð4Ü ×(Ñ(×/Ñ/°EÐ/Ó:×AÑAÔCÐCÑC÷	D÷Dð D÷	Dð 	Dú÷Dð Dús$   ¿DÁBC9Ã(DÃ9D	Ã>DÄD)(rE   Úhttpr   Úunittest.mockr   Údjango.urlsr   Úpytest_django.assertsr   Úallauth.account.modelsr   Úallauth.socialaccount.adapterr   Úallauth.socialaccount.modelsr	   Ú.allauth.socialaccount.providers.base.constantsr
   r   r%   r*   rN   rW   ra   ro   rw   r‚   r…   r�   r—   r™   rž   r¬   r®   r³   r¶   rº   r½   rÀ   rÃ   rÉ   © r    r   ú<module>rÓ      s¢   ðÛ Ý Ý å å 4å /Ý 5Ý 6Ý Fò
Hò	0ò1ò#HòL
òò&Pò.ò.1ò6HòHòò
HòTò66Aòr"4òJYòò(ò0Gò."òJ3óDr    