File: //lib/python3/dist-packages/fail2ban/tests/__pycache__/failmanagertestcase.cpython-312.pyc
�
�ogf
# � � � d Z dZdZddlZddlmZ ddlmZmZ ddl m
Z
dd lmZ G d
� dej � Z G d� d
ej � Zy)z
Cyril Jaquierz Copyright (c) 2004 Cyril Jaquier�GPL� N� )�failmanager)�FailManager�FailManagerEmpty)�IPAddr)�
FailTicketc �j � � e Zd Z� fd�Z� fd�Zd� Zd� Zd� Zd� Zd� Z d� Z
d � Zd
� Zd� Z
d� Zd
� Z� xZS )�
AddFailurec �V �� t t | � � 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.pyr zAddFailure.setUp% s! �� ��
�D��!��$�,�"�}�$�� c �* �� t t | � � y)zCall after every test case.N)r r �tearDownr s �r r zAddFailure.tearDown+ s �� ��
�D�"�$r c �� � ddgddgddgddgddgddgddgddgddgddgddgddgdd gg
| _ | j D ]- }| j j t |d
|d � � �/ y )N�
193.168.0.128g �;f�Az
87.142.124.10�
100.100.10.10g e��Ag �e��Ag �f��Ag �g��A� �h��Ar � )r r �
addFailurer )r �is r �_addDefItemszAddFailure._addDefItems/ s� � �"�L�1�
�<� (�
�<� (�
�<� (�
�<� (�
�<� (�
�<� (�
�<� (�
�<� (�
�<� (�
�<� (�
�<� (�
�<� (�*�$�,� �<�<� 9�a���� � ��A�a�D�!�A�$�!7�8�9r c � � | j � | j | j j � d� | j | j j � d� | j j d� | j | j j � d� | j j d� y )N� �
r )r �assertEqualr �size�getFailTotal�setFailTotal�r s r �testFailManagerAddzAddFailure.testFailManagerAdd@ s� � ��������4�%�%�*�*�,�a�0����4�%�%�2�2�4�b�9����!�!�!�$����4�%�%�2�2�4�a�8����!�!�"�%r c �� � d}|| j _ g d�}d}|D ]D }|dz }t dd|z
|g� }|j d� | j j |� �F | j j
}| j
t |� d� |d }| j
|j � t |� � | j
t |j � � |� | j
|j � |t |� |z
d � t dd|� }|j t |� � | j j |� | j j
}| j
t |� d� |d }| j
|j � dt |� z � | j
t |j � � |� | j
|j � |t |� |z
d � | j j |� | j j
}| j
t |� d� |d }| j
|j � dt |� z dz � | j
t |j � � |� | j
|j � |t |� |z
d � d | j _ | j j |� | j j
}|d }| j
t |j � � d � |j d � y )
Nr )zabc
z123
zABC
z1234
�P �
z 127.0.0.1i�њ;r i�њ;r )r �
maxMatchesr �
setAttemptr �_FailManager__failListr$ �len�
getAttempt�
getMatches�
setMatches)r r- �failuresr �f�ticket�manFailLists r �testFailManagerAdd_MaxMatchesz(AddFailure.testFailManagerAdd_MaxMatchesH s� � ��*�",�$����
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�r c �8 � | j � | j | j j � d� | j j d� | j | j j � d� | j j d� y )NiX r# )r r$ r �
getMaxTime�
setMaxTimer( s r �testFailManagerMaxTimez!AddFailure.testFailManagerMaxTimez st � ��������4�%�%�0�0�2�C�8�������#����4�%�%�0�0�2�B�7�������$r c �� � | j � | j j d� | j j d� | j | j j � d� y )Nr z
111.111.1.111r )r r �
delFailurer$ r% r( s r �testDelzAddFailure.testDel� sU � �����������0�������0����4�%�%�*�*�,�a�0r c � � | j � d}| j j |� | j | j j � d� y )Ng �5f�Ar �r r �cleanupr$ r% �r � timestamps r �
testCleanupOKzAddFailure.testCleanupOK� �F � ������)������Y�'����4�%�%�*�*�,�a�0r c � � | j � d}| j j |� | j | j j � d� y )Ng �9f�Ar rA rC s r �testCleanupNOKzAddFailure.testCleanupNOK� rF r c �d � | j � | j j d� | j j � }| j |j � d� | j
t |j � t t f� � t |� }t |� }| j |d� | j |d� | j | � |j d� | j |j � d� | j t |� d� y )N� r z]FailTicket: ip=193.168.0.128 time=1167605999.0 bantime=None bancount=0 #attempts=5 matches=[]r z]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)r r6 �
ticket_str�ticket_reprs r � testbanOKzAddFailure.testbanOK� s� � �������� � ��#����#�#�%�&����6�<�<�>�?�3��/�/�*�V�\�\�^�c�6�]�;�<� �6�{�*��V��+����
�b�d� ����b�d� ���v�:���.�.������6�>�>�#�\�2�����v�;�b�dr c � � | j � | j j d� | j t | j j
� y )Nr, )r r rK �assertRaisesr rL r( s r �
testbanNOKzAddFailure.testbanNOK� s? � �������� � ��$����$�d�&8�&8�&>�&>�?r c �` � | j � | j j � }| j |j � d� | j j � }| j |j � d� | j t | j j � y )Nr )r r rL �assertNotEqualrM rY r )r r6 s r �
testWindowzAddFailure.testWindow� s � ��������#�#�%�&����f�l�l�n�o�6����#�#�%�&����f�l�l�n�o�6����$�d�&8�&8�&>�&>�?r c �� � | j j }t � }|j }| j t |� t |� k( � d }| j |j dd� � | j
|j � � t d|j � D ]! }| j
|j � � �# d|_ | j |j � � d|_ t d|j � D ]! }| j
|j � � �# | j |j dd� � | j
|j dd� � y )NTr i �F)
r �_FailManager__bgSvcr rN �id�servicerR �range�_BgService__threshold�_BgService__serviceTime)r �bgSvc�failManager2nd�bgSvc2r s 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__r r r r) r8 r<