HEX
Server: Apache/2.4.65 (Debian)
System: Linux kubikelcreative 5.10.0-35-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64
User: www-data (33)
PHP: 8.4.13
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/fail2ban/tests/__pycache__/datedetectortestcase.cpython-39.pyc
a

���`Mi�@s�dZdZdZddlZddlZddlZddlmZddlm	Z	ddl
mZmZd	d
l
mZmZmZddlmZed�ZGd
d�de�Zed�ZGdd�dej�ZdS)z
Cyril Jaquierz Copyright (c) 2004 Cyril JaquierZGPL�N�)�DateDetector)�datedetector)�DatePatternRegex�DateTemplate�)�setUpMyTime�tearDownMyTime�LogCaptureTestCase)�	getLoggerZfail2banc@s�eZdZdd�Zdd�Zedd��Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!S)"�DateDetectorTestcCst�|�t�d|_dS�zCall before every test case.N)r
�setUpr�_DateDetectorTest__datedetector��self�r�E/usr/lib/python3/dist-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)	NZEPOCH�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)rZ999999999999999999rrr�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\|)r.rz"auth-error | %s | invalid passwordzParse epoch time failed: %rr)z	test%s123ztest-right | %stestztest%s | test-leftr/)rr0r(r1r*r+r,rrr�testGetEpochPatternhsz$DateDetectorTest.testGetEpochPatterncCs: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�ZUTCzUTC-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�debugrBr!�utcfromtimestampr#�assertRaises�
ValueError�setattr)r�dd�dtZlogdtZdtUTCZtzr*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
		r4)")FTr5N)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:00NrO)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 PMNrP)TT�1106513999.000N)TTz[1106513999.000]rQ)FTzaudit(1106513999.000:987)rQ)TT�no date lineNNrRz
== test %r�z
bogus-prefix )F�
word-boundaryz)[sshd] error: PAM: Authentication failurerTz  -- 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)	rDrErr!�assertNotEqualr#r%�	matchTime�name)rr(Zanchored�boundZsdateZrdateZshould_match�prefixr*ZlogtimeZlogUnix�logMatchZ	timeMatch�templaterVrrr�testVariousTimes�sP$
�������z!DateDetectorTest.testVariousTimescCs|�t|jj|jjd�dS)Nr)rGrHrr 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�mktimerCZ	timetuplerr!rUr#r%�range)rZmuZlogdateZlogTimerZ�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*)$rSZaaaacrz'(?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#ZregexrG�	Exception�getDate�	matchDater%r�patternr'r")r�trKrrr�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:2rqrprorrrorrg�g���A)rr r!r#r%)r�dprJZfmtrKrmrrr�testNotAnchoredCollisionMs
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 ...r8)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 testr^)zSep 16 21:30:26z[server mysqld[1020]: Sep 16 21:30:26 server mysqld: 030916 21:30:26 [Warning] Access deniedr8)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 deniedru)z051009 10:05:30z@server mysqld[1000]: 051009 10:05:30 [Warning] Access denied ...�2�== test: %rzLine: %sr)rrDrErdrVr"r#r%)rrJZdebit�line�cntre�matchr[rrr�testAmbiguousInOrderedTemplatesbs
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 deniedrA)r|r^rw)	rZlogLevelZ _DateDetectorTest__old_eff_levelrDZgetEffectiveLevelrdrErVr")rrJrerxryrzr[rrr�testLowLevelLogging{sz$DateDetectorTest.testLowLevelLoggingcCsBtd�}|�t|jd�|�d|j�t�}|�t|jd�dS)Nz
(%ExY%Exm%Exdz	(20050101zCompile %r failedrR)rrGrirkZassertLoggedrWrrj)rrmrrr�testWrongTemplate�s
z"DateDetectorTest.testWrongTemplateN)�__name__�
__module__�__qualname__rr�propertyrr-r2r3r6rNr\r]rfrnrtr{r}r~rrrrr(s"
1T*rz%Y-%m-%d[T ]%H:%M:%S(?:\.%f)?%zc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�CustomDateFormatsTestcCstj�|�t�dSr
)�unittest�TestCaserrrrrrr�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�r9rS�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)rCrF�iso8601rjr#rG�	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)&)r5Nz*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�rwrr)rrrDrEr r!r"�
isinstancer&r#r%)rZdefDD�matchedrsrxrJr)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:59rwrr)
rDrErr r!r"r�r&r#r%)rr�rsrxrJr)rrr�testVariousFormatSpecss



z,CustomDateFormatsTest.testVariousFormatSpecsN)rr�r�rrr�r�r�rrrrr��s
#Nr�)�
__author__Z
__copyright__Z__license__r�rbrCZserver.datedetectorrZserverrZserver.datetemplaterrZutilsrr	r
ZhelpersrrDrr�r�r�rrrr�<module>s s