HEX
Server: LiteSpeed
System: Linux 112.webhostingindonesia.co.id 5.14.0-570.62.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 10:10:59 EST 2025 x86_64
User: iyfwylsv (10313)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //lib/python3.9/site-packages/fail2ban/tests/__pycache__/datedetectortestcase.cpython-39.pyc
a

����z&�@s�dZdZdZddlZddlZddlZddlmZddlm	Z	ddl
mZmZd	d
l
mZmZmZddlmZed�ZGd
d�de�Zed�ZGdd�dej�ZdS)z
Cyril Jaquierz Copyright (c) 2004 Cyril Jaquier�GPL�N�)�DateDetector)�datedetector)�DatePatternRegex�DateTemplate�)�setUpMyTime�tearDownMyTime�LogCaptureTestCase)�	getLogger�fail2banc@s�eZdZdd�Zdd�Zedd��Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#S)$�DateDetectorTestcCst�|�t�d|_dS�zCall before every test case.N)r�setUpr	�_DateDetectorTest__datedetector��self�r�G/usr/lib/python3.9/site-packages/fail2ban/tests/datedetectortestcase.pyr*s
zDateDetectorTest.setUpcCst�|�t�dS�zCall after every test case.N)r�tearDownr
rrrrr0s
zDateDetectorTest.tearDowncCs"|jdurt�|_|j��|jS)N)rr�addDefaultTemplaterrrrr5s

zDateDetectorTest.datedetectorcCs�t�|_|j�d�dD]v}dD]l}||}|d}|j�|�}|�|d|f�|\}}|�t|�|�|�|�	d�t
|�t
|�df�q qdD]4}dD]*}||}|d}|j�|�}|�|�q�q�dS)	N�EPOCH�i�C�Cl�o�&��%s�[%s]z[%s.555]zaudit(%s.555:101)�* [sshd] error: PAM: Authentication failure�Parse epoch time for %s failedrz.555)�	123456789Z9999999999999999�1138049999A�A1138049999)rr�appendTemplater�getTime�
assertTrue�assertEqual�intZassertIn�group�str�assertFalse)r�dateUnix�date�log�datelog�matchlogrrr�testGetEpochTime<s"&z!DateDetectorTest.testGetEpochTimecCs�t�|_|j�d�dD]|}dD]r}dD]h}||}||}|d}|j�|�}|�|d|f�|\}}|�t|�|�|�|�d�t	|��q(q qdD]4}d	D]*}||}|d}|j�|�}|�
|�q�q�dS)
NZLEPOCH�ri�i@Br)rrrz
audit(%s:101)rrr)r Z999999999999999999r!r"r�rrr#rr$r%r&r'r(r)r*)r�factr+r,�dateLongr-r.r/rrr�testGetEpochMsTimeQs&z#DateDetectorTest.testGetEpochMsTimecCs�t�|_|j�d�dD]j}dD]`}||}d|}|j�|�}|�|d|f�|\}}|�t|�|�|�|�d�t	|��q qdD]"}||}|j�|�}|�
|�q�dS)Nz(?<=\|\s){LEPOCH}(?=\s\|)r1rz"auth-error | %s | invalid passwordzParse epoch time failed: %rr)z	test%s123ztest-right | %stestztest%s | test-leftr2)rr3r+r4r-r.r/rrr�testGetEpochPatternhsz$DateDetectorTest.testGetEpochPatterncCs`t�|_|j�d�d}|j�|�}|d}|�t|d�||�d�|�d��gddg�dS)Nz^type=\S+ msg=audit\(({EPOCH})z,type=USER_AUTH msg=audit(1106513999.000:987)rriO�A�1106513999.000)	rrr#rr$r&r'�start�end)r�liner.�	timeMatchrrr�testGetEpochPatternCut{sz'DateDetectorTest.testGetEpochPatternCutcCs:d}d}|j�|�\}}|�||�|�|�d�d�dS)Nz9Jan 23 21:59:59 [sshd] error: PAM: Authentication failure��}�Ar�Jan 23 21:59:59)rr$r&r()rr-r+r.r/rrr�testGetTime�s
zDateDetectorTest.testGetTimec Cs~t�}|�d�tj}d}|ddddd�}d||dddd	d�fd
||fd||ddddd
�fd||ddddd�fd||ddddd�fd||ddddd�fd||ddddd�fd||ddddd�fd||ddddd�fd||ddddd�fd||ddddd�fd||ddddd�fd||dddd	d
�fd|d|fd
|d|fd|d|fd|d|fd
|d|ddddd�fd|d|ddddd�fd
|d|dddd d�fd|d!|dddd d�fd|d"|fd|d#|ddddd�fd|d$|ddddd�fd|d%|dddd	d
�ffD]V\}}}t�d&||�||_|�|�\}}	|�|�}
|�|
|d'|
||||jf��q
|�	t
t|d(d)�d|_dS)*Nz#^%ExY-%Exm-%Exd %H:%M:%S(?: ?%Exz)?z2017-01-23 15:00:00i�r��rzUTC+0300��UTCzUTC-0430��zGMT+12��ZCETz+0100zCEST-01ZCEST�
z+0200zCET+01zCET+0100zCET+0130z GMTz -1045��-z -10:45z +0945�z +09:45z Zz CETz CESTz	 CET+0130z== test %r with TZ %rz3wrong offset %r != %r by %r with default TZ %r (%r)�
default_tzzWRONG-TZ)rr#�datetime�logSys�debugrLr$�utcfromtimestampr&�assertRaises�
ValueError�setattr)r�dd�dtZlogdtZdtUTC�tzr-Zdesiredr.�_�valrrr�testDefaultTimeZone�sN
� 
�z$DateDetectorTest.testDefaultTimeZonecCs�d}dD�]�\}}}}|dur*|dkr*|}t�d||||f�|dudf|dfdfD�]Z\}}||d	}|sz|d
krzqVt�d||�|j�|�}	|r�|�|	dd||||f�|	\}
}|�|
|d
|||
|f�|�|�d�|�n|�|	dd|||	f�|j�|�\}}
}|j�||�}	t�d|�r4|
jnd�|�r�|�|	dd||||f�|	\}
}|�|
|d|||
|f�|�|�d�|�n|�|	dd|||	f�t�d�qVqdS)zKTest detection of various common date/time formats f2b should understand
		r=)")FTr>N)FFzSun Jan 23 21:59:59 2005N)FFzSun Jan 23 21:59:59N)FFzSun Jan 23 2005 21:59:59N)FTz2005/01/23 21:59:59N)FTz2005.01.23 21:59:59N)FTz23/01/2005 21:59:59N)FTz23/01/05 21:59:59N)FTz23/Jan/2005:21:59:59N)FTz23/Jan/2005:21:59:59 +0100N)FTz01/23/2005:21:59:59N�FTz2005-01-23 21:59:59N)FTz2005-01-23 21:59:59,000N)FTz23-Jan-2005 21:59:59N)FTz23-Jan-2005 21:59:59.02N)FTz23-Jan-2005 21:59:59 +0100N)FTz23-01-2005 21:59:59N�TTZ
1106513999N)FTz01-23-2005 21:59:59.252N)FFz@4000000041f4104f00000000N)FTz2005-01-23T20:59:59.252ZN)FTz2005-01-23T15:59:59-05:00NrZ)FTZ20050123T215959N)FTz20050123 215959N)TTz<01/23/05@21:59:59>N)FTz050123 21:59:59N)TTzJan-23-05 21:59:59N)FTzJan 23, 2005 9:59:59 PMNr[)TTr7N)TTz[1106513999.000]r7)FTzaudit(1106513999.000:987)r7)TT�no date lineNNr\z
== test %r�z
bogus-prefix )F�
word-boundaryz)[sshd] error: PAM: Authentication failurer^z  -- test %-5s for %rzMgetTime retrieved nothing: failure for %s by prefix %r, anchored: %r, log: %sz@getTime comparison failure for %s: by prefix %r "%s" is not "%s"rz;getTime should have not matched for %r by prefix %r Got: %sz  -- found - %rFz@getTime comparison failure for %s by prefix %r: "%s" is not "%s"z  -- OK)	rNrOrr$�assertNotEqualr&r(�	matchTime�name)rr+Zanchored�boundZsdateZrdateZshould_match�prefixr-ZlogtimeZlogUnix�logMatchr;�templater`rrr�testVariousTimes�sP$
�������z!DateDetectorTest.testVariousTimescCs|�t|jj|jjd�dS)Nr)rQrRrr#Z	templatesrrrr�testAllUniqueTemplateNamess
�z+DateDetectorTest.testAllUniqueTemplateNamesc
Cs�t�t�dddddd����}|j�d�}|�|d�|\}}|�||�|�|�d�d	�t	d�D]2}|j�d
�\}}|�||�|�|�d�d�qd|j�d�\}}|�||�|�|�d�d	�dS)Ni��
�r�%�z#2012/10/11 02:37:17 [error] 18434#0rz2012/10/11 02:37:17z#11/10/2012 02:37:17 [error] 18434#0z11/10/2012 02:37:17)
�time�mktimerM�	timetuplerr$r_r&r(�range)r�muZlogdateZlogTimerd�irrr�testFullYearMatch_gh130sz(DateDetectorTest.testFullYearMatch_gh130cCs�t�}|�d�|�|jd�|�t|jd�|�|�d��d�d�t	�}d|_
|�d|jv�d}|�|�d	|d	��d�|�|�|�|��d�|�d
}|�|�|��t	�}d|_
|�d|jv�d
}|�|�d	|��|�|�|d	��|�|�d|d��d�|�|�|�|��d�|�d}|�|�|��t	�}d|_
|�d|jv�d}|�|�|��d�|�d}|�|�|��d�|�d}|�|�|��d�|�dS)Nz^a{3,5}b?c*$z^(a{3,5}b?c*)$r]Zaaaacrz'(?iu)**time:%ExY%Exm%ExdT%ExH%ExM%ExS**z**zTIME:20050102T010203�XzTIME:50050102T010203z'{^LN-BEG}time:%ExY%Exm%ExdT%ExH%ExM%ExS�^ztime:20050102T010203z##z...z	^%Y %b %dz(?iu)z2005 jun 03z2005 Jun 03z2005 JUN 03)
rZsetRegexr&�regexrQ�	Exception�getDate�	matchDater(r�patternr*r%)r�trUrrr�testDateTemplate,s:
  z!DateDetectorTest.testDateTemplatecCs`dD]V}t�}|�|�dD]<}dD]2}|�||�}|�|d|d��fd|f�q$qqdS)N)z%H:%M:%Sz
{UNB}%H:%M:%S)z%s testz%8s testztest %sztest %8s)	�00:01:02�00:01:2�00:1:2�0:1:2r~r}r|rr|rrg�g���A)rr#r$r&r()r�dprT�fmtrUrzrrr�testNotAnchoredCollisionVs
z)DateDetectorTest.testNotAnchoredCollisioncCsp|j}dD]`\}}}t�d|||f�t|�D]:}t�d|�|�|�\}}|�|�|�|�d�|�q.q
dS)N))z030324  0:03:59z9some free text 030324  0:03:59 -- 2003-03-07 17:05:01 ...r)z2003-03-07 17:05:01z+some free text 2003-03-07 17:05:01 test ...rA)z030324  0:04:00z{server mysqld[1000]: 030324  0:04:00 [Warning] Access denied ... foreign-input just some free text 2003-03-07 17:05:01 testrh)zSep 16 21:30:26z[server mysqld[1020]: Sep 16 21:30:26 server mysqld: 030916 21:30:26 [Warning] Access deniedrA)z2005-10-07 06:09:42zEserver mysqld[5906]: 2005-10-07 06:09:42 5907 [Warning] Access denied�)z2005-10-08T15:26:18.237955zFserver mysqld[5906]: 2005-10-08T15:26:18.237955 6 [Note] Access deniedr�)z051009 10:05:30z@server mysqld[1000]: 051009 10:05:30 [Warning] Access denied ...�2�== test: %rzLine: %sr)rrNrOror`r%r&r()rrTZdebitr:�cntrq�matchrerrr�testAmbiguousInOrderedTemplatesks
z0DateDetectorTest.testAmbiguousInOrderedTemplatescCs�z�tj|_tjt��dkr*t��dt_|j}d}dD]P\}}t|||d�D]4}t�d|||f�|�||�\}}|�|�qRq8W|jt_n
|jt_0dS)Nrr))�Gserver mysqld[5906]: 2005-10-07 06:09:%02i 5907 [Warning] Access deniedr)zCserver mysqld[5906]: 051007 06:10:%02i 5907 [Warning] Access deniedrK)r�rhr�)	rZlogLevelZ _DateDetectorTest__old_eff_levelrN�getEffectiveLevelrorOr`r%)rrTrqr:r�r�rerrr�testLowLevelLogging�sz$DateDetectorTest.testLowLevelLoggingcCsBtd�}|�t|jd�|�d|j�t�}|�t|jd�dS)Nz
(%ExY%Exm%Exdz	(20050101zCompile %r failedr\)rrQrvrxZassertLoggedrarrw)rrzrrr�testWrongTemplate�s
z"DateDetectorTest.testWrongTemplateN)�__name__�
__module__�__qualname__rr�propertyrr0r5r6r<r?rYrfrgrrr{r�r�r�r�rrrrr(s$
	1T*rz%Y-%m-%d[T ]%H:%M:%S(?:\.%f)?%zc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�CustomDateFormatsTestcCstj�|�t�dSr)�unittest�TestCaserr	rrrrr�szCustomDateFormatsTest.setUpcCstj�|�t�dSr)r�r�rr
rrrrr�szCustomDateFormatsTest.tearDownc
Cs\tj�t�d�d�}|�|t�ddddd��|�ttjd�|�ttj|�|�t�d�d�|�t�d�d�|�t�d	�d�|�t�d
�d�tj�t�d�d�}|�|t�ddddd��tj�t�d
�d�}|�|t�ddddd��tj�t�d�d�}|�|t�ddddd��tj�t�d�d�}|�|t�ddddd��dS)Nz2007-01-25T12:00:00Zri�r�rBr]�Zz2007-01-01T120:00:00Zz2007-13-01T12:00:00Zz2007-01-25T12:00:00+0400�z2007-01-25T12:00:00+04:00z2007-01-25T12:00:00-0400�z2007-01-25T12:00:00-04)rMrP�iso8601rwr&rQ�	TypeError)rr,rrr�testIso8601�sR����������z!CustomDateFormatsTest.testIso8601cCs�t�}|��dD]�\}}}t�d|||f�|dur<|}nt�}|�|�|�|�}|r�|�|�t|t�r�|�	||d�
d��q�|�	||d�q|�	|d�qdS)N)))r>Nz*Test failure Jan 23 21:59:59 for 192.0.2.1)FNz7Test failure TestJan 23 21:59:59.011 2015 for 192.0.2.1)FNz3Test failure Jan 23 21:59:59123456789 for 192.0.2.1)�Aug 8 11:25:50Nz@Aug 8 11:25:50 20030f2329b8 Authentication failed from 192.0.2.1)r�NzB[Aug 8 11:25:50] 20030f2329b8 Authentication failed from 192.0.2.1)zAug 8 11:25:50 2014NzEAug 8 11:25:50 2014 20030f2329b8 Authentication failed from 192.0.2.1)�20:00:00 01.02.2003z%H:%M:%S %d.%m.%Y$z 192.0.2.1 at 20:00:00 01.02.2003)�[20:00:00 01.02.2003]�\[%H:%M:%S %d.%m.%Y\]�192.0.2.1[20:00:00 01.02.2003])r�r��[20:00:00 01.02.2003]192.0.2.1)r�z\[%H:%M:%S %d.%m.%Y\]$r�)r�z^\[%H:%M:%S %d.%m.%Y\]r�)�[17/Jun/2011 17:00:45]z^\[%d/%b/%Y %H:%M:%S\]z4[17/Jun/2011 17:00:45] Attempt, IP address 192.0.2.1)r��\[%d/%b/%Y %H:%M:%S\]z3Attempt [17/Jun/2011 17:00:45] IP address 192.0.2.1)r�r�z:Attempt IP address 192.0.2.1, date: [17/Jun/2011 17:00:45])F�%H:%M:%S %d.%m.%Y�192.0.2.1x20:00:00 01.02.2003)Fr��20:00:00 01.02.2003x192.0.2.1)r��**%H:%M:%S %d.%m.%Y**r�)r�r�r�)z*20:00:00 01.02.2003*z\**%H:%M:%S %d.%m.%Y\**ztest*20:00:00 01.02.2003*test)r�r�z192.0.2.1 20:00:00 01.02.2003)r�r�z20:00:00 01.02.2003 192.0.2.1)Nz%Y-%Exm-%Exd %ExH:%ExM:%ExS�)0000-12-30 00:00:00 - 2003-12-30 00:00:00)�2003-12-30 00:00:00z%ExY-%Exm-%Exd %ExH:%ExM:%ExSr�)r�Nr�)z
200333 010203z
%Y%m%d %H%M%S�)text:200333 010203 | date:20031230 010203)�20031230 010203�%ExY%Exm%Exd %ExH%ExM%ExSr�)r�Nr�)z20030101 000000r��!00001230 010203 - 20030101 000000)N�"{^LN-BEG}%ExY%Exm%Exd %ExH%ExM%ExSr�)r�r�z!20031230 010203 - 20030101 000000)�20031230010203�#{^LN-BEG}%ExY%Exm%Exd%ExH%ExM%ExS**Z2003123001020320030101000000)r�r�z#2003123001020320030101000000)r�r�z##2003123001020320030101000000)r�z!{^LN-BEG}%ExY%Exm%Exd%ExH%ExM%ExSz[20031230010203]20030101000000)��=`��A�.{^LN-BEG}%ExY-%Exm-%Exd %ExH:%ExM:%ExS(?: %z)?� [2003-12-30 01:02:03] server ...)r��.{^LN-BEG}%ExY-%Exm-%Exd %ExH:%ExM:%ExS(?: %Z)?r�)��Eg��Ar��$[2003-12-30 01:02:03 UTC] server ...)r�r�r�)r�r��"[2003-12-30 01:02:03 Z] server ...)r�r�z&[2003-12-30 01:02:03 +0000] server ...)r�r�r�r�rr)rrrNrOr#r$r%�
isinstancer)r&r()rZdefDD�matchedr�r:rTr,rrr�testAmbiguousDatePattern�s>



z.CustomDateFormatsTest.testAmbiguousDatePatterncCs�dD]�\}}}t�d|||f�t�}|�|�|�|�}|r||�|�t|t�rj|�||d�	d��q�|�||d�q|�|d�qdS)N)
)g�?�|�Az^%B %Exd %I:%ExM:%ExS**zJanuary 23 12:59:59)g�'�\�Az^%y %U %A %ExH:%ExM:%ExS**�01 11 Wednesday 21:59:59)g���W�Az^%y %W %A %ExH:%ExM:%ExS**r�)g��Z�A�^%y %W %w %ExH:%ExM:%ExS**z01 11 0 21:59:59)g�'�Y�Ar�z01 11 6 21:59:59)g�O���A�^%ExH:%ExM:%ExS**z21:59:59)g@X���Ar�z00:00:01)g���M�Az^%m/%d %ExH:%ExM:%ExS**z09/01 21:59:59)g8=M�Az^%Y-%m-%d**z
2004-09-01)g@DM�Az
^%Y-%m-%d%z**z2004-09-01Zr�rr)
rNrOrr#r$r%r�r)r&r()rr�r�r:rTr,rrr�testVariousFormatSpecs$s



z,CustomDateFormatsTest.testVariousFormatSpecsN)r�r�r�rrr�r�r�rrrrr��s
#Qr�)�
__author__�
__copyright__�__license__r�rlrMZserver.datedetectorr�serverrZserver.datetemplaterr�utilsr	r
rZhelpersrrNrr�r�r�rrrr�<module>s |