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: //usr/lib/python3.9/site-packages/fail2ban/tests/__pycache__/failmanagertestcase.cpython-39.pyc
a

���f���@spdZdZdZddlZddlmZddlmZmZddl	m
Z
dd	lmZGd
d�dej
�ZGdd
�d
ej
�ZdS)z
Cyril Jaquierz Copyright (c) 2004 Cyril Jaquier�GPL�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__��F/usr/lib/python3.9/site-packages/fail2ban/tests/failmanagertestcase.pyr%szAddFailure.setUpcstt|���dS)zCall after every test case.N)rr	�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_gd�}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)
Nr)zabc
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)rrrZ
getMaxTimeZ
setMaxTimerrrr�testFailManagerMaxTimezs
z!AddFailure.testFailManagerMaxTimecCs6|��|j�d�|j�d�|�|j��d�dS)Nrz
111.111.1.111r)rrZ
delFailurerr rrrr�testDel�szAddFailure.testDelcCs.|��d}|j�|�|�|j��d�dS)Ng�5f�Ar�rr�cleanuprr �r�	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�getID�
assertTrue�
isinstance�strr�repr�assertFalseZsetTimeZgetTime)rr'Z
ticket_strZticket_reprrrr�	testbanOK�s,
��
�zAddFailure.testbanOKcCs(|��|j�d�|�t|jj�dS)Nr#)rrr2�assertRaisesrr3rrrr�
testbanNOK�szAddFailure.testbanNOKcCsP|��|j��}|�|��d�|j��}|�|��d�|�t|jj�dS)Nr)rrr3ZassertNotEqualr4r;r)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)
rZ_FailManager__bgSvcrr5�idZservicer9�rangeZ_BgService__thresholdZ_BgService__serviceTime)rZbgSvcZfailManager2ndZbgSvc2rrrr�
testBgService�s zAddFailure.testBgService)�__name__�
__module__�__qualname__rrrr!r(r)r*r/r0r:r<r=r@�
__classcell__rrrrr	#s2r	cs<eZdZ�fdd�Z�fdd�Zedd��Zdd�Z�ZS)	�FailmanagerComplexcs(tt|���t�|_tj|_dt_dS)r
rN)rrErrZ _FailmanagerComplex__failManagerr�logLevel�_FailmanagerComplex__saved_llrrrrr�szFailmanagerComplex.setUpcstt|���|jt_dS�N)rrErrGrrFrrrrr�szFailmanagerComplex.tearDownccszGdd�dt�}d}gd�}||krvtddd�D],}||dkrT||d7<q^d||<q0|||�fV|d7}qdS)	Nc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z)FailmanagerComplex._ip_range.<locals>._ipcSsd�tt|��S)N�.)�join�mapr7rrrr�__str__�sz1FailmanagerComplex._ip_range.<locals>._ip.__str__cSst|�SrH�r7rrrr�__repr__�sz2FailmanagerComplex._ip_range.<locals>._ip.__repr__cSst|�SrHrMrrrr�__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)rArBrCrLrNrOrTrrrr�_ip�srUr)�rrrr����r)�listr?)ZmaxipsrUr�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.255rXz	127.0.1.0z127.0.3.233i��z
127.0.255.255i��z	127.1.0.0)r\�unittestZF2B�fastrr7)rr�iprrr�testCheckIPGenerator�sz'FailmanagerComplex.testCheckIPGenerator)	rArBrCrr�staticmethodr\rarDrrrrrE�s

rE)�
__author__�
__copyright__�__license__r^�serverrZserver.failmanagerrrZserver.ipdnsrZ
server.ticketrZTestCaser	rErrrr�<module>s2