HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/fail2ban/tests/__pycache__/misctestcase.cpython-38.pyc
U

]^�B�@sdZdZdZddlZddlZddlZddlZddlZddlZddl	Z	ddl
m
Z
ddlmZddl
mZmZd	d
lmZmZmZmZmZmZmZmZd	dlmZGdd
�d
ej�Zejdkr�dd�Zndd�Zdd�Z Gdd�dej�Z!Gdd�de�Z"Gdd�dej�Z#dS)zYaroslav Halchenkoz%Copyright (c) 2013 Yaroslav HalchenkoZGPL�N)�glob)�StringIO�)�LogCaptureTestCase�logSys�)�formatExceptionInfo�	mbasename�	TraceBack�FormatterWithTraceBack�	getLogger�
splitwords�
uni_decode�
uni_string)�MyTimec@s$eZdZdd�Zdd�Zdd�ZdS)�HelpersTestcCs@ztd��Wn.t�\}}|�|d�|�|d�YnXdS)NzVery bad exception�
ValueError�rr�assertEqual��self�name�args�r�=/usr/lib/python3/dist-packages/fail2ban/tests/misctestcase.py�testFormatExceptionInfoBasic+s
z(HelpersTest.testFormatExceptionInfoBasiccCsBztdd��Wn.t�\}}|�|d�|�|d�YnXdS)NzVery badrz('Very bad', None)rrrrr�testFormatExceptionConvertArgs3s
z*HelpersTest.testFormatExceptionConvertArgscCs�|�td�g�|�td�g�|�td�g�|�td�dg�|�td�ddg�|�td�ddg�|�td�ddg�|�td�ddd	g�dS)
N�z  �1z 1 2 �2z 1, 2 , z 1
  2z	 1
  2, 3�3)rr
�rrrr�testsplitwords<szHelpersTest.testsplitwordsN)�__name__�
__module__�__qualname__rrr"rrrrr)s	r�r�cCs"ddl}|j|dd�}t|���S)NrT)�shell)�
subprocessZcheck_outputr�rstrip��cmdr)Zretrrr�_sh_callHsr-cCs,ddl}|j|d|jd�j��}t|���S)NrT)r(�stdout)r)�Popen�PIPEr.�readrr*r+rrrr-MscCstd�S)Nz?fail2ban-python -c 'import sys; print(tuple(sys.version_info))')r-rrrr�_getSysPythonVersionRsr2cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)�	SetupTestcs�tt|���tj��tj�tj�	t
�ddd�}tj�|�rB|pDd|_|jsbt
jdkrbt�d��t�}|ttt
j��kr�t�dttt
j��|f��dS)Nz..zsetup.pyr&zLSeems to be running not out of source distribution -- cannot locate setup.pyziSeems to be running with python distribution %s -- install can be tested only with system distribution %s)�superr3�setUp�unittest�F2BZ
SkipIfFast�os�path�join�dirname�__file__�exists�setup�sys�version_infoZSkipTestr2�str�tuple)rr>ZsysVer��	__class__rrr5Xs
���zSetupTest.setUpc	Csj|js
dSt��}tjjtjkr$dnd}z0t
�dtj
|j||f�|�t
�|��W5t�	|�XdS)Nz >/dev/null 2>&1rz2%s %s --dry-run install --disable-2to3 --root=%s%s)r>�tempfile�mkdtempr6r7�	log_level�logging�DEBUG�shutil�rmtreer8�systemr?�
executable�
assertTrue�listdir)r�tmp�	supdbgoutrrr�testSetupInstallDryRunhs�z SetupTest.testSetupInstallDryRunc
s�|js
dSt���tj�d�}tjjt	j
kr2dnd}�zN|�t�
dtj|j�|f�d��fdd	�}|ttd
����}ddd
g}t|��|��rdd�}i}t|��|�D]4}tj��|�}	tj�|	�r�|||	d��p�d||<q�|j||d||�|fd�dD]*}
|jtj�tj��|
��d|
d��qtd�d��d�}|�t|�dk�|D]$}|�tj�|�tj�tj���q^W5t���t�
dtj|j|�r�|dndf�|�r�tj�d��r�t�d�XdS)NZbuildz >/dev/nullrz%s %s clean --all%sz 2>&1z(%s %s install --disable-2to3 --root=%s%srcs�fdd�|D�S)Ncs g|]}|t��dd��qS)rN)�len)�.0�x�rPrr�
<listcomp>�szESetupTest.testSetupInstallRoot.<locals>.strippath.<locals>.<listcomp>r)�lrVrr�	strippath�sz1SetupTest.testSetupInstallRoot.<locals>.strippathz%s/*�etcZusr�varcsFg}t�|�D]2\�}}t�|||�}|��fdd�|D��q|S)Nc3s|]}tj��|�VqdS�N)r8r9r:)rT�f��baserr�	<genexpr>�szISetupTest.testSetupInstallRoot.<locals>.recursive_glob.<locals>.<genexpr>)r8�walk�fnmatch�filter�extend)Ztreeroot�patternZresults�dirs�filesZ	goodfilesrr^r�recursive_glob�s
z6SetupTest.testSetupInstallRoot.<locals>.recursive_glob�*z6Got: %s Needed: %s under %s. Files under new paths: %s��msg)zetc/fail2ban/fail2ban.confzetc/fail2ban/jail.confz
Can't find %szfind z -name fail2ban-python�
)r>rErFr8r9r=r6r7rGrHrIrJrKrLr?rMr�sortedr�set�
differencer:rNr-�splitrS�realpath)rZremove_buildrQrYZgotZneedrhrgZmissingZmissing_fullr]Z
installedPathrrVr�testSetupInstallRootxs`
��
��
���

�
�zSetupTest.testSetupInstallRoot)r#r$r%r5rRrr�
__classcell__rrrCrr3Vsr3c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TestsUtilsTestcCsT|�td�d�|�td�d�|�td�d�|�td�d�|�td�d�dS)	Nz	sample.pyZsamplez/long/path/sample.pyz/long/path/__init__.pyz
path.__init__z/long/path/base.pyz	path.basez/long/path/base)rr	r!rrr�
testmbasename�s
zTestsUtilsTest.testmbasenamecCsP|�tttjdkrdndd�ttjdkr.dnd�td�td�td�dS)N)�stest�testzf2b-test::non-existing-encodingstest�utestÏ)�assertRaises�	Exceptionrr?r@rr!rrr�testUniConverters�s�z TestsUtilsTest.testUniConverterscCs"t}Gdd�d�}|�}|�tjd|�|�dd�|��|�d|�|�dd�|�dt���|d�}|�tjd	||�|jd
ddd
�|�d||�|jdddd
�|�d�Gdd�dtj	�}|j
}z:t|j
�|_
|j
|�g7_
|�tjd�|�d�W5||_
X|�d�dS)Nc@seZdZddd�Zdd�ZdS)z,TestsUtilsTest.testSafeLogging.<locals>.TestrcSs
||_dSr\)�err)rr{rrr�__init__�sz5TestsUtilsTest.testSafeLogging.<locals>.Test.__init__cSs|jrtd��ndSdS)N�no represenation for test!u.conv-error (òðåòèé), unterminated utf Ï)r{ryr!rrr�__repr__�s
z5TestsUtilsTest.testSafeLogging.<locals>.Test.__repr__N)r)r#r$r%r|r~rrrr�Test�s
rztest 1a: %r�	Tracebackr}ztest 1b: %rz.[phase 2] test error conversion by encoding %srztest 2a: %r, %sztest 2azError by logging handlerF��allztest 2b: %r, %sztest 2bz*[phase 3] test unexpected error in handlerc@seZdZdd�ZdS)z5TestsUtilsTest.testSafeLogging.<locals>._ErrorHandlercSstd��dS)Nzerror in handler test!)ry)r�recordrrr�handle�sz<TestsUtilsTest.testSafeLogging.<locals>._ErrorHandler.handleN)r#r$r%r�rrrr�
_ErrorHandler�sr�ztest 3aztest 3bZOK)�	DefLogSys�logrHZNOTICE�assertLogged�pruneLog�noticer?�getdefaultencodingZHandlerZhandlers�list)rrrrwr�Z_org_handlerrrr�testSafeLogging�s0
zTestsUtilsTest.testSafeLoggingc	s�dD]�}t|d�}dd����fdd��zt�d��Wntk
rR|�}YnXd|krj|�d	|�nd
|kr~|�d	|�|�d|�qdS)N)TF)�compresscSs
t��dSr\)rrrrr�
func_raise�sz0TestsUtilsTest.testTraceBack.<locals>.func_raisecs|r�|d�n��dS)Nrr)�i��
deep_functionr�rrr��sz3TestsUtilsTest.testTraceBack.<locals>.deep_functionrvzfail2ban-testcases�>Zcoverage�:)r
�printr�assertIn�assertNotIn)rr��tb�srr�r�
testTraceBack�s
zTestsUtilsTest.testTraceBackcOs|jt||f|�|�dSr\)ZassertRaisesRegex�AssertionError)rZregexpZfunr�kwargsrrr�_testAssertionErrorREsz$TestsUtilsTest._testAssertionErrorREcsrdd�}��t�jd|d���t�jd�jd���d�fdd����t�jd	td
���d�fdd��dS)
NcSst|��dSr\)�KeyErrorrjrrr�_key_errsz;TestsUtilsTest.testExtendedAssertRaisesRE.<locals>._key_err�^failed$Zfailed�
__failed__z$failed.* does not match .*__failed__cs��d�jd�S)Nr�r�)r��failrr!rr�<lambda>$s�z;TestsUtilsTest.testExtendedAssertRaisesRE.<locals>.<lambda>rrzJ0 AssertionError not raised X.* does not match .*AssertionError not raisedcs��d�fdd��S)Nz^0 AssertionError not raised X$cs��dtd�S)Nrr)r��intrr!rrr�,�zMTestsUtilsTest.testExtendedAssertRaisesRE.<locals>.<lambda>.<locals>.<lambda>)r�rr!rrr�+s
�)rxr�r�r�r�r�)rr�rr!r�testExtendedAssertRaisesREs2��
��
�z)TestsUtilsTest.testExtendedAssertRaisesREcs���dddddg���dd���dd���ddd�dD����ddddg���dd	���dd
���ddd�dD����d�jdd���d
�jdttd�����d�jddd�dD����d�jdd���d�jdttd�����d�jddd�dD��t}���|�d���d��jdddd��j	dddd��j	dddd��jdddd����|�d ���	d��j	dddd��j	ddddd�t
jjd}t
j_��
tt
j�d�t����t
j�d!d"���d#���t
j�d$�d$���t
j�d%�d%�dt
j_zF��t
j�d&d"���d#���t
j�d$�d'���t
j�d%�d%�W5|t
j_X��
t
j�d�����|�d���d(�j	d���d)�j	dd��jd*�j	dddd��jd+�jdddd��jd,�jdddd-d.��jd/�jdddd��jd0�jdddd-d.��jd)�j	dddd���ddd1giddd1gi���t�jddd1gidd1dgi���dd2gd2dg��jdd2ggd2dggd1d3��jdd2ggd2dggdd4���t�fd5d"���jddd2gidd2dgidd4���t�fd6d"���jd7d2d8gd9d:gd;�gd:d9gd8d2gd<�d7gdd4��jd7d2d8gd9d:gd;�gd:d9gd8d2gd<�d7gd=d3���t�fd>d"����d?�jdgd8d2g���d@�jdd2gd8d2g�dS)AN�a�b�c�d)r�r�r�r�Zcbacss|]}|dkr|VqdS�r�Nr�rTr�rrrr`4sz;TestsUtilsTest.testExtendedAssertMethods.<locals>.<genexpr>)r�r�r�Zcbdcss|]}|dkr|��VqdSr���upperr�rrrr`8sz'a' unexpectedly found in 'cba'z#1 unexpectedly found in \[0, 1, 2\]rrvz&'A' unexpectedly found in \['C', 'A'\]�Acss|]}|dkr|��VqdSr�r�r�rrrr`?sz'a' was not found in 'xyz'Zxyzz5 was not found in \[0, 1, 2\]�z!'A' was not found in \['C', 'B'\]css|]}|dkr|��VqdS)r�Nr�r�rrrr`Esz
test "xyz"rwTr�ZzyxFZtest_zyxz
xxxx "xxx"cSsdS�N�2rrrrrr�Wr�z:TestsUtilsTest.testExtendedAssertMethods.<locals>.<lambda>r��g9@cSsdSr�rrrrrr�\r�g@z.* was found in the logz+All of the .* were found present in the logzwas found in the logzwas not found in the logz&was not found in the log, waited 1e-06g���ư>)r��waitz"None among .* was found in the logz0None among .* was found in the log, waited 1e-06r�B)�level)�
nestedOnlycs�jddggddggddd�S�Nr�r�rT)r�r���assertSortedEqualrr!rrr�}s
�cs"�jdddgidddgiddd�Sr�r�rr!rrr��s


��Z�C�E�F�r�r��r�r����cs0��dddgddgd�gddgddgd�dg�S)Nr�r�r�r�r�r�r�r�rr!rrr��s�z\['A'\] != \['C', 'B'\]z\['A', 'B'\] != \['B', 'C'\])r�r�r�r��ranger�r��debugr�ZassertNotLoggedr6r7ZfastZassertFalse�
isinstanceZmaxWaitTime�boolrZassertDictEqualrxr�r�)rrZorgfastrr!r�testExtendedAssertMethods/s�
���
��





��������


� ,�,���z(TestsUtilsTest.testExtendedAssertMethodscCs�t�}t}d}td�}t�|�}|�||��|�|�|�d�|��}|�	|�
��d��|�d�}|�	|dk�|�
|d|�||d|dd��dS)	Nz %(tb)s | %(tbc)s : %(message)sZfail2ban_testsZXXXz: XXX�|�
rr)rrrrHZ
StreamHandlerZsetFormatterZ
addHandler�error�getvaluerNr*�endswith�indexr)rZstroutZ	FormatterZfmtr�outr�Zpindexrrr�testFormatterWithTraceBack�s



z)TestsUtilsTest.testFormatterWithTraceBackcCs2t}|�dtjj�|�dddd�|�d�dS)Nzlazy logging: %rrwrrrvznot all arguments converted)r�r�r6r7Zlog_lazyr�r�)rrrrr�testLazyLogging�szTestsUtilsTest.testLazyLoggingN)r#r$r%rurzr�r�r�r�r�r�r�rrrrrt�s* ^rtc@seZdZdd�ZdS)�
MyTimeTestcCs�tj}|�|d�d�|�|d�d�|�|d�d�|�|d�d�|�|d�d	�|�|d
�d	�|�|d�d�|�t|d
��dddd�|�t|d��dddd�dS)NZ1y6mo30w15d12h35m25si]��z2yy 3mo 4ww 10dd 5hh 30mm 20ssi$�mz>2 years 3 months 4 weeks 10 days 5 hours 30 minutes 20 secondsz!1 year + 1 month - 1 week + 1 dayi��zI2 * 0.5 yea + 1*1 mon - 3*1/3 wee + 2/2 day - (2*12 hou 3*20 min 80 sec) g@��Az(2*.5y+1*1mo-3*1/3w+2/2d-(2*12h3*20m80s) z!1ye -2mo -3we -4da -5ho -6mi -7seiQ	pz1 month�<�gp>@z1 yearg�v@)rZstr2secondsr�float)rZstr2secrrr�testStr2Seconds�s zMyTimeTest.testStr2SecondsN)r#r$r%r�rrrrr��sr�)$�
__author__Z
__copyright__Z__license__rHr8r?r6rErJrbr�iorZutilsrrr�Zhelpersrr	r
rrr
rrZ
server.mytimerZTestCaserr@r-r2r3rtr�rrrr�<module>s.(

dp