
    f                     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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) 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)RequestFactory)override_settings)reverse)get_adapter)EmailAddress)filter_users_by_usernameurl_str_to_user_pkuser_pk_to_url_struser_username)context)TestCase   )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/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/account/tests/test_utils.pysetUpzUtilsTests.setUp%   s    zz|''    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#/=tyy?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#d2DvVD/5tww{{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    ~!dK(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
	 " 	5H"Ahhw~67GWm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~!dE"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1DI	IIK$$++VCU+V "&&s+&&w177D&IA..qr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    ;=3O3OPU3V 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OOKM556LMN[]667K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OOKM556JKLOOKM556J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OOKM55j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 nl%CDN EN
 cU+M ,M
 nl%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58JJKD
},,,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.test.clientr   django.test.utilsr   django.urlsr   allauth.app_settingsrc   allauth.account.adapterr   allauth.account.modelsr   allauth.account.utilsr   r   r   r   allauth.corer   allauth.testsr   test_modelsr   RegexValidatortest_username_validatorsr   r   rP   r)   r'   <module>r      s|      # . 4 @ @ ( 2 - - /   / /  ! " ! JKC 
\C \C~-r)   