Ë
    ûûàg·  ã                   óF  — 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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Zd dlm Z  d dl!m"Z" d dl#m$Z$m%Z%m&Z&m'Z' d dl(m)Z) ddl*m+Z+  ejX                  dd¬«      gZ- G d„ de«      Z.d„ Z/y)é    N)Úpatch)Úmessages)Úget_user_model)Úget_messages)ÚMessageMiddleware)ÚSessionMiddleware)ÚmailÚ
validators)ÚValidationError)ÚContextÚTemplate)ÚTestCase)ÚRequestFactory)Úoverride_settings)Úreverse)Úget_adapter)ÚEmailAddress)Úfilter_users_by_usernameÚurl_str_to_user_pkÚuser_pk_to_url_strÚuser_username)Úcontexté   )ÚUUIDUserz^[a-c]+$znot abc)ÚregexÚmessagec                   óî   — e Zd Zd„ Zd„ Zd„ Z ed¬«      d„ «       Z ed¬«      d„ «       Zd	„ Z	d
„ Z
d„ Z ed¬«      d„ «       Z eddg¬«      d„ «       Z edg¬«      d„ «       Z eddg¬«      d„ «       Zy)Ú
UtilsTestsc                 óJ   — t        j                  «       j                  | _        y ©N)ÚuuidÚuuid4ÚhexÚuser_id©Úselfs    ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/account/tests/test_utils.pyÚsetUpzUtilsTests.setUp%   s   € Ü—z‘z“|×'Ñ'ˆ�ó    c                 óÞ   — t        d«      5 }t        |_        | j                  t	        | j
                  «      t        j                  | j
                  «      «       d d d «       y # 1 sw Y   y xY w)Nú$allauth.account.utils.get_user_model)r   r   Úreturn_valueÚassertEqualr   r$   r!   ÚUUID)r&   Ú
mocked_gums     r'   Ú0test_url_str_to_pk_identifies_UUID_as_stringlikez;UtilsTests.test_url_str_to_pk_identifies_UUID_as_stringlike(   sU   € ÜÐ9Ó:ð 	X¸jÜ&.ˆJÔ#Ø×ÑÔ/°·±Ó=¼t¿y¹yÈÏÉÓ?VÔW÷	X÷ 	Xñ 	Xús   ŒAA#Á#A,c                 óÔ   — t        d«      5 }t        |_        t        ddd¬«      }| j                  t	        |«      |j
                  j                  «       d d d «       y # 1 sw Y   y xY w)Nr+   Tzjohn@example.comÚjohn)Ú	is_activeÚemailÚusername)r   r   r,   r-   r   Úpkr#   )r&   r/   Úusers      r'   Ú3test_pk_to_url_string_identifies_UUID_as_stringlikez>UtilsTests.test_pk_to_url_string_identifies_UUID_as_stringlike-   s[   € ÜÐ9Ó:ð 	D¸jÜ&.ˆJÔ#Ü dÐ2DÈvÔVˆDØ×ÑÔ/°Ó5°t·w±w·{±{ÔC÷	D÷ 	Dñ 	Dús   ŒA	AÁA'F)Ú ACCOUNT_PRESERVE_USERNAME_CASINGc                 óˆ   —  t        «       «       }t        |d«       | j                  t        |«      d«       t        dd«       y )NÚ	CamelCaseÚ	camelcaseÚFooBar©r   r   r-   r   ©r&   r7   s     r'   Útest_username_lower_casedz$UtilsTests.test_username_lower_cased3   ó8   € àŒ~ÓÓ!ˆÜ�d˜KÔ(Ø×Ñœ tÓ,¨kÔ:ä  ¨hÕ7r)   Tc                 óˆ   —  t        «       «       }t        |d«       | j                  t        |«      d«       t        dd«       y )Nr;   r<   Úfoobarr>   r?   s     r'   Útest_username_case_preservedz'UtilsTests.test_username_case_preserved;   rA   r)   c                 ó²   —  t        «       d¬«      }d}ddg}|D ];  }t        |«      }|j                  t        d|i«      «      }| j	                  ||«       Œ= y )Nzjohn<br/>doe)r5   zjohn&lt;br/&gt;doez){% load account %}{% user_display user %}z5{% load account %}{% user_display user as x %}{{ x }}r7   )r   r   Úrenderr   r-   )r&   r7   Úexpected_nameÚ	templatesÚtemplateÚtÚcontents          r'   Útest_user_displayzUtilsTests.test_user_displayC   se   € ØŒ~Ó¨Ô8ˆØ,ˆà7ØCð
ˆ	ð "ò 	5ˆHÜ˜Ó"ˆAØ—h‘hœw¨° ~Ó6Ó7ˆGØ×Ñ˜W mÕ4ñ	5r)   c                 ó¦  — t        «       j                  d«      }t        d„ «      j                  |«       t	        d„ «      j                  |«        t        «       «       }t        |d«       d|i}t        «       j                  |t        j                  d|«       t        |«      }|j                  d   j                  }|j                  |v sJ |«       ‚y )Nú/c                  ó   — y r    © ©Úrequests    r'   ú<lambda>z2UtilsTests.test_message_escaping.<locals>.<lambda>Q   ó   � r)   c                  ó   — y r    rP   rQ   s    r'   rS   z2UtilsTests.test_message_escaping.<locals>.<lambda>R   rT   r)   z'<8r7   zaccount/messages/logged_in.txtr   )r   Úgetr   Úprocess_requestr   r   r   r   Úadd_messager   ÚSUCCESSr   Ú_queued_messagesr   r5   )r&   rR   r7   r   ÚmsgsÚactual_messages         r'   Útest_message_escapingz UtilsTests.test_message_escapingO   s¶   € Ü Ó"×&Ñ& sÓ+ˆÜÑ.Ó/×?Ñ?ÀÔHÜÑ.Ó/×?Ñ?ÀÔHØŒ~ÓÓ!ˆÜ�d˜EÔ"Ø˜4�.ˆÜ‹×!Ñ!Ø”X×%Ñ%Ð'GÈô	
ô ˜GÓ$ˆØ×.Ñ.¨qÑ1×9Ñ9ˆØ�}‰} Ñ.Ð>°Ó>Ñ.r)   c                 ó   — d}t         j                  j                  r9ddlm} |j
                  j                  «       }dx|_        }|j                  «        t        «       j
                  j                  dd¬«      }t        «       j                  d«      }t        j
                  j                  |||j                  d	¬
«       | j!                  t"        j$                  d   j&                  dd  j)                  |«      «       y )NÚ
testserverr   )ÚSitez<enc&"test>Útestzuser@example.com)r5   r4   rN   T)Úconfirmr   )ÚallauthÚapp_settingsÚSITES_ENABLEDÚdjango.contrib.sites.modelsr`   ÚobjectsÚget_currentÚnameÚsaver   Úcreater   rV   r   Ú	add_emailr4   Ú
assertTruer	   ÚoutboxÚsubjectÚ
startswith)r&   Ú	site_namer`   ÚsiteÚurR   s         r'   Útest_email_escapingzUtilsTests.test_email_escaping]   s¿   € Ø ˆ	Ü×Ñ×-Ò-Ý8à—<‘<×+Ñ+Ó-ˆDØ$1Ð1ˆDŒI˜	Ø�I‰IŒKÜÓ×$Ñ$×+Ñ+°VÐCUÐ+ÓVˆÜ Ó"×&Ñ& sÓ+ˆÜ×Ñ×&Ñ& w°°1·7±7ÀDÐ&ÔIØ�‰œŸ™ A™×.Ñ.¨q¨rÐ2×=Ñ=¸iÓHÕIr)   z9allauth.account.tests.test_utils.test_username_validators)ÚACCOUNT_USERNAME_VALIDATORSc                 ód   — t        «       j                  d«       | j                  t        d„ «       y )NÚabcc                  ó4   — t        «       j                  d«      S )NÚdef)r   Úclean_usernamerP   r)   r'   rS   z4UtilsTests.test_username_validator.<locals>.<lambda>o   s   € ´;³=×3OÑ3OÐPUÓ3V€ r)   )r   rz   ÚassertRaisesr   r%   s    r'   Útest_username_validatorz"UtilsTests.test_username_validatorj   s%   € ô 	‹×$Ñ$ UÔ+Ø×Ñœ/Ñ+VÕWr)   Úallowed_hostr_   )ÚALLOWED_HOSTSc                 ó&  — t        j                  t        «       j                  d«      «      5  | j	                  t        «       j                  d«      «       | j                  t        «       j                  d«      «       d d d «       y # 1 sw Y   y xY w)NrN   zhttp://allowed_host/úhttp://other_host/)r   Úrequest_contextr   rV   rm   r   Úis_safe_urlÚassertFalser%   s    r'   Útest_is_safe_url_no_wildcardz'UtilsTests.test_is_safe_url_no_wildcardq   sm   € ä×$Ñ$¤^Ó%5×%9Ñ%9¸#Ó%>Ó?ñ 	NØ�O‰OœK›M×5Ñ5Ð6LÓMÔNØ×Ñœ[›]×6Ñ6Ð7KÓLÔM÷	N÷ 	Nñ 	Núó   ­ABÂBÚ*c                 ó&  — t        j                  t        «       j                  d«      «      5  | j	                  t        «       j                  d«      «       | j	                  t        «       j                  d«      «       d d d «       y # 1 sw Y   y xY w)NrN   zhttp://foobar.com/r€   ©r   r�   r   rV   rm   r   r‚   r%   s    r'   Útest_is_safe_url_wildcardz$UtilsTests.test_is_safe_url_wildcardw   sk   € ä×$Ñ$¤^Ó%5×%9Ñ%9¸#Ó%>Ó?ñ 	MØ�O‰OœK›M×5Ñ5Ð6JÓKÔLØ�O‰OœK›M×5Ñ5Ð6JÓKÔL÷	M÷ 	Mñ 	Múr…   c                 óÖ   — t        j                  t        «       j                  d«      «      5  | j	                  t        «       j                  d«      «       d d d «       y # 1 sw Y   y xY w)NrN   z/foo/barrˆ   r%   s    r'   Útest_is_safe_url_relative_pathz)UtilsTests.test_is_safe_url_relative_path}   sP   € ä×$Ñ$¤^Ó%5×%9Ñ%9¸#Ó%>Ó?ñ 	CØ�O‰OœK›M×5Ñ5°jÓAÔB÷	C÷ 	Cñ 	Cús   ­)AÁA(N)Ú__name__Ú
__module__Ú__qualname__r(   r0   r8   r   r@   rD   rL   r]   rt   r|   r„   r‰   r‹   rP   r)   r'   r   r   $   sÒ   „ ò(òXò
Dñ ¸Ô>ñ8ó ?ð8ñ ¸Ô=ñ8ó >ð8ò
5ò?òJñ Ø$_ôñXóðXñ  n°lÐ%CÔDñNó EðNñ
  c UÔ+ñMó ,ðMñ
  n°lÐ%CÔDñCó EñCr)   r   c                 óR   — | j                  t        d«      dz   «      }|d   dk(  sJ ‚y )NÚaccount_logoutz?next=badurlnameÚlocationz/badurlname)Úpostr   )Úauth_clientÚresps     r'   Útest_redirect_noreversematchr•   ƒ   s3   € ð ×ÑœGÐ$4Ó5Ð8JÑJÓK€DØ�
Ñ˜}Ò,Ð,Ñ,r)   )0r!   Úunittest.mockr   Údjango.contribr   Údjango.contrib.authr   Údjango.contrib.messages.apir   Ú"django.contrib.messages.middlewarer   Ú"django.contrib.sessions.middlewarer   Údjango.corer	   r
   Údjango.core.exceptionsr   Údjango.templater   r   Údjango.testr   Údjango.test.clientr   Údjango.test.utilsr   Údjango.urlsr   Úallauth.app_settingsrc   Úallauth.account.adapterr   Úallauth.account.modelsr   Úallauth.account.utilsr   r   r   r   Úallauth.corer   Útest_modelsr   ÚRegexValidatorÚtest_username_validatorsr   r•   rP   r)   r'   ú<module>r«      s|   ðÛ Ý å #Ý .Ý 4Ý @Ý @ß (Ý 2ß -Ý  Ý -Ý /Ý ã Ý /Ý /÷ó õ !å !ð €J×Ñ K¸ÔCðÐ ô
\C�ô \Có~-r)   