HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ns3133907 6.8.0-86-generic #87-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 18:03:36 UTC 2025 x86_64
User: cssnetorguk (1024)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/fail2ban/tests/__pycache__/failmanagertestcase.cpython-312.pyc
�

�ogf
#���dZdZdZddlZddlmZddlmZmZddl	m
Z
dd	lmZGd
�dej�ZGd�d
ej�Zy)z
Cyril Jaquierz Copyright (c) 2004 Cyril Jaquier�GPL�N�)�failmanager)�FailManager�FailManagerEmpty)�IPAddr)�
FailTicketc�j��eZdZ�fd�Z�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Z�xZS)�
AddFailurec�V��tt|��d|_t	�|_y)�Call before every test case.N)�superr�setUp�_AddFailure__itemsr�_AddFailure__failManager��self�	__class__s ��D/usr/lib/python3/dist-packages/fail2ban/tests/failmanagertestcase.pyrzAddFailure.setUp%s!����
�D��!��$�,�"�}�$��c�*��tt|��y)zCall after every test case.N)rr�tearDownrs �rrzAddFailure.tearDown+s����
�D�"�$rc���ddgddgddgddgddgddgddgddgddgddgddgddgdd	gg
|_|jD]-}|jjt|d
|d���/y)N�
193.168.0.128g�;f�Az
87.142.124.10�
100.100.10.10ge��Ag�e��Ag�f��Ag�g��A��h��Ar�)rr�
addFailurer	)r�is  r�_addDefItemszAddFailure._addDefItems/s���"�L�1�
�<�	(�
�<�	(�
�<�	(�
�<�	(�
�<�	(�
�<�	(�
�<�	(�
�<�	(�
�<�	(�
�<�	(�
�<�	(�
�<�	(�*�$�,��<�<�9�a���� � ��A�a�D�!�A�$�!7�8�9rc��|j�|j|jj�d�|j|jj	�d�|jjd�|j|jj	�d�|jjd�y)N��
r)r �assertEqualr�size�getFailTotal�setFailTotal�rs r�testFailManagerAddzAddFailure.testFailManagerAdd@s����������4�%�%�*�*�,�a�0����4�%�%�2�2�4�b�9����!�!�!�$����4�%�%�2�2�4�a�8����!�!�"�%rc���d}||j_gd�}d}|D]D}|dz}tdd|z
|g�}|jd�|jj	|��F|jj
}|j
t|�d�|d}|j
|j�t|��|j
t|j��|�|j
|j�|t|�|z
d�tdd|�}|jt|��|jj	|�|jj
}|j
t|�d�|d}|j
|j�dt|�z�|j
t|j��|�|j
|j�|t|�|z
d�|jj	|�|jj
}|j
t|�d�|d}|j
|j�dt|�zdz�|j
t|j��|�|j
|j�|t|�|z
d�d	|j_|jj	|�|jj
}|d}|j
t|j��d	�|jd�y)
Nr)zabc
z123
zABC
z1234
�P�
z	127.0.0.1i�њ;ri�њ;r)r�
maxMatchesr	�
setAttemptr�_FailManager__failListr$�len�
getAttempt�
getMatches�
setMatches)rr-�failuresr�f�ticket�manFailLists       r�testFailManagerAdd_MaxMatchesz(AddFailure.testFailManagerAdd_MaxMatchesHs����*�",�$����
2�(��!��)�a���7�1��{�J��N�Q�C�8�6�	���Q����� � ��(�	)��"�"�9�9�+����3�{�#�Q�'��{�#�&����6�$�$�&��H�
�6����3�v�(�(�*�+�Z�8����6�$�$�&���X���1K�1L�(M�N��k�?�H�=�&����C��M�"�������'��"�"�9�9�+����3�{�#�Q�'��{�#�&����6�$�$�&��C��M�(9�:����3�v�(�(�*�+�Z�8����6�$�$�&���X���1K�1L�(M�N�������'��"�"�9�9�+����3�{�#�Q�'��{�#�&����6�$�$�&��C��M�(9�A�(=�>����3�v�(�(�*�+�Z�8����6�$�$�&���X���1K�1L�(M�N�"#�$����������'��"�"�9�9�+��{�#�&����3�v�(�(�*�+�Q�/����D�rc�8�|j�|j|jj�d�|jj	d�|j|jj�d�|jj	d�y)NiXr#)r r$r�
getMaxTime�
setMaxTimer(s r�testFailManagerMaxTimez!AddFailure.testFailManagerMaxTimezst���������4�%�%�0�0�2�C�8�������#����4�%�%�0�0�2�B�7�������$rc���|j�|jjd�|jjd�|j|jj	�d�y)Nrz
111.111.1.111r)r r�
delFailurer$r%r(s r�testDelzAddFailure.testDel�sU������������0�������0����4�%�%�*�*�,�a�0rc��|j�d}|jj|�|j|jj	�d�y)Ng�5f�Ar�r r�cleanupr$r%�r�	timestamps  r�
testCleanupOKzAddFailure.testCleanupOK��F�������)������Y�'����4�%�%�*�*�,�a�0rc��|j�d}|jj|�|j|jj	�d�y)Ng�9f�ArrArCs  r�testCleanupNOKzAddFailure.testCleanupNOK�rFrc�d�|j�|jjd�|jj�}|j	|j�d�|j
t|j�ttf��t|�}t|�}|j	|d�|j	|d�|j|�|jd�|j	|j�d�|j	t|�d�y)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=[])r r�setMaxRetry�toBanr$�getID�
assertTrue�
isinstance�strr�repr�assertFalse�setTime�getTime)rr6�
ticket_str�ticket_reprs    r�	testbanOKzAddFailure.testbanOK�s���������� � ��#����#�#�%�&����6�<�<�>�?�3��/�/�*�V�\�\�^�c�6�]�;�<��6�{�*��V��+����
�b�d�����b�d����v�:���.�.������6�>�>�#�\�2�����v�;�b�drc��|j�|jjd�|jt|jj
�y)Nr,)r rrK�assertRaisesrrLr(s r�
testbanNOKzAddFailure.testbanNOK�s?��������� � ��$����$�d�&8�&8�&>�&>�?rc�`�|j�|jj�}|j|j	�d�|jj�}|j|j	�d�|jt|jj�y)Nr)r rrL�assertNotEqualrMrYr)rr6s  r�
testWindowzAddFailure.testWindow�s���������#�#�%�&����f�l�l�n�o�6����#�#�%�&����f�l�l�n�o�6����$�d�&8�&8�&>�&>�?rc���|jj}t�}|j}|jt	|�t	|�k(�d}|j|jdd��|j
|j��td|j�D]!}|j
|j���#d|_	|j|j��d|_	td|j�D]!}|j
|j���#|j|jdd��|j
|jdd��y)NTri�F)
r�_FailManager__bgSvcrrN�id�servicerR�range�_BgService__threshold�_BgService__serviceTime)r�bgSvc�failManager2nd�bgSvc2rs     r�
testBgServicezAddFailure.testBgService�s"��
�
�
�
0�
0�%��=�.��-�-�&��/�/�"�U�)�r�&�z�)�*��&��/�/�%�-�-��d�+�,����5�=�=�?�#���E�/�/�0�%�a����E�M�M�O�$�%�#.�%���/�/�%�-�-�/�"�"-�%����E�/�/�0�%�a����E�M�M�O�$�%��/�/�%�-�-��t�,�-����5�=�=���-�.r)�__name__�
__module__�__qualname__rrr r)r8r<r?rErHrWrZr]rh�
__classcell__�rs@rrr#sH���%�%�9�"&�0�d%�1�1�1�d�6@�
@�/rrc�>��eZdZ�fd�Z�fd�Zed��Zd�Z�xZS)�FailmanagerComplexc���tt|��t�|_t
j|_dt
_y)r
r"N)rrorr� _FailmanagerComplex__failManagerr�logLevel�_FailmanagerComplex__saved_llrs �rrzFailmanagerComplex.setUp�s0�����D�'�)�"�}�$���(�(�$�/��+�rc�T��tt|��|jt_y�N)rrorrsrrrrs �rrzFailmanagerComplex.tearDown�s�����D�*�,����+�rc#��K�Gd�dt�}d}gd�}||krFtddd�D]}||dkr||xxdz
cc<nd||<� |||�f��|dz
}||kr�Eyy�w)	Nc�$�eZdZd�Zd�Zd�Zd�Zy)�)FailmanagerComplex._ip_range.<locals>._ipc�@�djtt|��S)N�.)�join�maprPr(s r�__str__z1FailmanagerComplex._ip_range.<locals>._ip.__str__�s���8�8�C��T�N�#�#rc��t|�Sru�rPr(s r�__repr__z2FailmanagerComplex._ip_range.<locals>._ip.__repr__�����t�9�rc��t|�Srurr(s r�__key__z1FailmanagerComplex._ip_range.<locals>._ip.__key__�r�rc�T�t|ddz|ddzz|ddzz|dz�S)Nr�r�r�r")�intr(s r�__hash__z2FailmanagerComplex._ip_range.<locals>._ip.__hash__�s8����a��B���a��B��.��a��A��=��Q��G�H�HrN)rirjrkr}r�r�r��rr�_iprx�s��$���Irr�r)�rrrr"����r)�listrb)�maxipsr�r�c�ns     r�	_ip_rangezFailmanagerComplex._ip_range�s�����	I�D�	I��!��!�	�F�
��!�A�b�M�
�q���t�c�z��q�T�Q�Y�T�
��A�a�D�	
�
�S��V�����6�1�	
�F�
�s�AA$�"A$c��|jtjjsdnd�D]�\}}|dk(r|j	t|�d��'|dk(r|j	t|�d��H|dk(r|j	t|�d��i|dk(r|j	t|�d	���|d
k(s��|j	t|�d���y)Nii��z127.0.0.255r�z	127.0.1.0z127.0.3.233i��z
127.0.255.255i��z	127.1.0.0)r��unittest�F2B�fastr$rP)rr�ips   r�testCheckIPGeneratorz'FailmanagerComplex.testCheckIPGenerator�s����~�~�8�<�<�+<�+<�e�$�G�
+�e�a���3�h����S��W�m�,�	�S�����S��W�k�*�	�T�	����S��W�m�,�	�U�
����S��W�o�.�	�U�
����S��W�k�*�
+r)	rirjrkrr�staticmethodr�r�rlrms@rroro�s&����)�
�
��
�,+rro)�
__author__�
__copyright__�__license__r��serverr�server.failmanagerrr�server.ipdnsr�
server.ticketr	�TestCaserror�rr�<module>r�sL��.�
�2�
���� �>�!�&�n/��"�"�n/�b1+��*�*�1+r