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__/failmanagertestcase.cpython-38.pyc
U

]^
#�@spdZdZdZddlZddlmZddlmZmZddl	m
Z
dd	lmZGd
d�dej
�ZGdd
�d
ej
�ZdS)z
Cyril Jaquierz Copyright (c) 2004 Cyril JaquierZGPL�N�)�failmanager)�FailManager�FailManagerEmpty)�IPAddr)�
FailTicketcs�eZdZ�fdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Z�ZS)�
AddFailurecs tt|���d|_t�|_dS)�Call before every test case.N)�superr�setUp�_AddFailure__itemsr�_AddFailure__failManager��self��	__class__��D/usr/lib/python3/dist-packages/fail2ban/tests/failmanagertestcase.pyr%szAddFailure.setUpcstt|���dS)zCall after every test case.N)r
r�tearDownrrrrr+szAddFailure.tearDowncCs~ddgddgddgddgddgddgddgddgddgddgddgddgdd	gg
|_|jD]}|j�t|d
|d��qZdS)N�
193.168.0.128g�;f�Az
87.142.124.10�
100.100.10.10ge��Ag�e��Ag�f��Ag�g��A��h��Ar�)rr
�
addFailurer)r�irrr�_addDefItems/s �
zAddFailure._addDefItemscCsZ|��|�|j��d�|�|j��d�|j�d�|�|j��d�|j�d�dS)N��
r)r�assertEqualr
�sizeZgetFailTotalZsetFailTotalrrrr�testFailManagerAdd@szAddFailure.testFailManagerAddcCsd}||j_ddddg}d}|D]4}|d8}tdd	||g�}|�d
�|j�|�q |jj}|�t|�d
�|d}|�|��t|��|�t|�	��|�|�|�	�|t|�|d��tdd|�}|�t|��|j�|�|jj}|�t|�d
�|d}|�|��dt|��|�t|�	��|�|�|�	�|t|�|d��|j�|�|jj}|�t|�d
�|d}|�|��dt|�d
�|�t|�	��|�|�|�	�|t|�|d��d|j_|j�|�|jj}|d}|�t|�	��d�|�
d�dS)
Nrzabc
z123
zABC
z1234
�P�
z	127.0.0.1i�њ;ri�њ;r)r
�
maxMatchesrZ
setAttemptrZ_FailManager__failListr�lenZ
getAttemptZ
getMatchesZ
setMatches)rr#Zfailuresr�f�ticketZmanFailListrrr�testFailManagerAdd_MaxMatchesHsJ
   z(AddFailure.testFailManagerAdd_MaxMatchescCsH|��|�|j��d�|j�d�|�|j��d�|j�d�dS)NiXr)rrr
Z
getMaxTimeZ
setMaxTimerrrr�testFailManagerMaxTimezs
z!AddFailure.testFailManagerMaxTimecCs6|��|j�d�|j�d�|�|j��d�dS)Nrz
111.111.1.111r)rr
Z
delFailurerrrrrr�testDel�szAddFailure.testDelcCs.|��d}|j�|�|�|j��d�dS)Ng�5f�Ar�rr
Zcleanuprr�rZ	timestamprrr�
testCleanupOK�szAddFailure.testCleanupOKcCs.|��d}|j�|�|�|j��d�dS)Ng�9f�Arr*r+rrr�testCleanupNOK�szAddFailure.testCleanupNOKcCs�|��|j�d�|j��}|�|��d�|�t|��tt	f��t|�}t
|�}|�|d�|�|d�|�|�|�d�|�|�
�d�|�t|�d�dS)N�rz]FailTicket: ip=193.168.0.128 time=1167605999.0 bantime=None bancount=0 #attempts=5 matches=[]rz]FailTicket: ip=193.168.0.128 time=1000002000.0 bantime=None bancount=0 #attempts=5 matches=[])rr
�setMaxRetry�toBanr�getIP�
assertTrue�
isinstance�strr�repr�assertFalseZsetTimeZgetTime)rr&Z
ticket_strZticket_reprrrr�	testbanOK�s,
��
�zAddFailure.testbanOKcCs(|��|j�d�|�t|jj�dS)Nr")rr
r/�assertRaisesrr0rrrr�
testbanNOK�szAddFailure.testbanNOKcCsP|��|j��}|�|��d�|j��}|�|��d�|�t|jj�dS)Nr)rr
r0ZassertNotEqualr1r8r)rr&rrr�
testWindow�s

zAddFailure.testWindowcCs�|jj}t�}|j}|�t|�t|�k�d}|�|�dd��|�|���td|j�D]}|�|���qZd|_	|�|���d|_	td|j�D]}|�|���q�|�|�dd��|�|�dd��dS)NTri�F)
r
Z_FailManager__bgSvcrr2�id�servicer6�rangeZ_BgService__thresholdZ_BgService__serviceTime)rZbgSvcZfailManager2ndZbgSvc2rrrr�
testBgService�s zAddFailure.testBgService)�__name__�
__module__�__qualname__rrrr r'r(r)r,r-r7r9r:r>�
__classcell__rrrrr#s2rcs<eZdZ�fdd�Z�fdd�Zedd��Zdd�Z�ZS)	�FailmanagerComplexcs(tt|���t�|_tj|_dt_dS)r	rN)r
rCrrZ _FailmanagerComplex__failManagerr�logLevel�_FailmanagerComplex__saved_llrrrrr�szFailmanagerComplex.setUpcstt|���|jt_dS�N)r
rCrrErrDrrrrr�szFailmanagerComplex.tearDownccs~Gdd�dt�}d}ddddg}||krztddd�D],}||dkrX||d7<qbd||<q4|||�fV|d7}q dS)	Nc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z)FailmanagerComplex._ip_range.<locals>._ipcSsd�tt|��S)N�.)�join�mapr4rrrr�__str__�sz1FailmanagerComplex._ip_range.<locals>._ip.__str__cSst|�SrF�r4rrrr�__repr__�sz2FailmanagerComplex._ip_range.<locals>._ip.__repr__cSst|�SrFrKrrrr�__key__�sz1FailmanagerComplex._ip_range.<locals>._ip.__key__cSs0t|dd>|dd>B|dd>B|dB�S)Nr�r�r�r)�intrrrr�__hash__�sz2FailmanagerComplex._ip_range.<locals>._ip.__hash__N)r?r@rArJrLrMrRrrrr�_ip�srSr�r����r)�listr=)ZmaxipsrSr�c�nrrr�	_ip_range�s

zFailmanagerComplex._ip_rangecCs�|�tjjsdnd�D]�\}}|dkr8|�t|�d�q|dkrR|�t|�d�q|dkrl|�t|�d�q|dkr�|�t|�d	�q|d
kr|�t|�d�qdS)Nii��z127.0.0.255rVz	127.0.1.0z127.0.3.233i��z
127.0.255.255i��z	127.1.0.0)rZ�unittestZF2BZfastrr4)rrZiprrr�testCheckIPGenerator�sz'FailmanagerComplex.testCheckIPGenerator)	r?r@rArr�staticmethodrZr]rBrrrrrC�s

rC)�
__author__Z
__copyright__Z__license__r\ZserverrZserver.failmanagerrrZserver.ipdnsrZ
server.ticketrZTestCaserrCrrrr�<module>s2