HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /lib/python3/dist-packages/fail2ban/tests/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/fail2ban/tests/__pycache__/misctestcase.cpython-311.pyc
�

�Bd�H��D�dZdZdZddlZddlZddlZddlZddlZddlZddl	Z	ddl
m
Z
ddlmZddl
mZmZd	d
lmZmZmZmZmZmZmZmZmZd	dlmZGd�d
ej��Zd�Zd�Z Gd�dej��Z!Gd�de��Z"Gd�dej��Z#dS)zYaroslav Halchenkoz%Copyright (c) 2013 Yaroslav Halchenko�GPL�N)�glob)�StringIO�)�LogCaptureTestCase�logSys�)	�formatExceptionInfo�	mbasename�	TraceBack�FormatterWithTraceBack�	getLogger�getVerbosityFormat�
splitwords�
uni_decode�
uni_string)�MyTimec� �eZdZd�Zd�Zd�ZdS)�HelpersTestc��	td���#t��\}}|�|d��|�|d��YdSxYw)NzVery bad exception�
ValueError�rr
�assertEqual��self�name�argss   �=/usr/lib/python3/dist-packages/fail2ban/tests/misctestcase.py�testFormatExceptionInfoBasicz(HelpersTest.testFormatExceptionInfoBasic+sd��0�	�(�	)�	)�)��0�#�%�%�:�4�����D�,�'�'�'����D�.�/�/�/�/�/�/���s	��?Ac��	tdd���#t��\}}|�|d��|�|d��YdSxYw)NzVery badrz('Very bad', None)rrs   r�testFormatExceptionConvertArgsz*HelpersTest.testFormatExceptionConvertArgs3se��0�	�J��	%�	%�%��0�#�%�%�:�4�����D�,�'�'�'����D�.�/�/�/�/�/�/���s	��?Ac��|�td��g��|�td��g��|�td��g��|�td��dg��|�td��ddg��|�td��ddg��|�td��ddg��|�td��gd	���|�td��gd	���dS)
N�z  �1z 1 2 �2z 1, 2 , z 1
  2z	 1
  2, 3)r$r%�3)rr�rs r�testsplitwordszHelpersTest.testsplitwords<s(�����:�d�#�#�R�(�(�(����:�b�>�>�2�&�&�&����:�d�#�#�R�(�(�(����:�c�?�?�S�E�*�*�*����:�g�&�&��c�
�3�3�3����:�j�)�)�C��:�6�6�6����:�i�(�(�3��*�5�5�5����:�l�+�+�_�_�_�=�=�=����:�l�+�+�_�_�_�=�=�=�=�=�N)�__name__�
__module__�__qualname__rr!r(�r)rrr)sA������0�0�0�0�0�0�
>�
>�
>�
>�
>r)rc�z�ddl}|�|d���}t|�����S)NrT)�shell)�
subprocess�check_outputr�rstrip)�cmdr0�rets   r�_sh_callr5Is>���������s�$��/�/���3����� � � r)c� �td��S)Nz?fail2ban-python -c 'import sys; print(tuple(sys.version_info))')r5r-r)r�_getSysPythonVersionr7Ns���R�S�S�Sr)c�*��eZdZ�fd�Zd�Zd�Z�xZS)�	SetupTestc���tt|�����tj���tj�tj�	t��ddd��}tj�|��r|pd|_|jstj
d���t��}|tt!t"j����kr>tj
dtt!t"j�����d|�����dS)Nz..zsetup.pyzLSeems to be running not out of source distribution -- cannot locate setup.pyz-Seems to be running with python distribution z8 -- install can be tested only with system distribution )�superr9�setUp�unittest�F2B�
SkipIfFast�os�path�join�dirname�__file__�exists�setup�SkipTestr7�str�tuple�sys�version_info)rrF�sysVer�	__class__s   �rr<zSetupTest.setUpTs����	�4����� � � �
�,������
�'�,�,�r�w���x�0�0�$��j�
I�
I�%��w�~�~�e�$�$�.��6�$�$�*�	
��"�	�	�!�
"�
"�"� �!�!�&��s�5��)�*�*�+�+�+�+�	�	�	�DG��c�N^�H_�H_�D`�D`�D`�D`�bh�bh�j�
k�
k�k�,�+r)c��|jsdStj��}tjjtjkrdnd}	tj	tj�d|j�d|�|����|�tj
|����tj|��dS#tj|��wxYw)Nz >/dev/null 2>&1r#� z --dry-run install --root=)rF�tempfile�mkdtempr=r>�	log_level�logging�DEBUGr@�systemrJ�
executable�
assertTrue�listdir�shutil�rmtree)r�tmp�	supdbgouts   r�testSetupInstallDryRunz SetupTest.testSetupInstallDryRunds���	
��
�	�6�����#�$,�L�$:�g�m�$K�$K� � �QS�)���9�

�.�.�.�$�*�*�*�s�s�I�I�7�8�8�8��?�?�r�z�#���&�'�'�'�
�=��������6�=��������s
�AB,�,Cc�P��|jsdStj���tj�d��}tjjtj
krdnd}	|�tjtj�d|j�d��|����d���fd�}|tt!d�z������}gd	�}t#|���|��r�d
�}i}t#|���|��D][}tj��|��}	tj�|	��r|||	d����pd||<�\|�||d|�d
|�d��d|�����dD]W}
|�tj�tj��|
����d|
z����Xt+d�zdz���d��}|�t/|��dk��|D]\}|�tj�|��tj�tj�����]	t3j���tjtj�d|j�d|r|dznd����|r5tj�d��rt3jd��dSdSdS#t3j���tjtj�d|j�d|r|dznd����|r4tj�d��rt3jd��wwwxYw)N�buildz >/dev/nullr#rOz install --root=rc� ���fd�|D��S)Nc�D��g|]}|t���dzd���S)rN)�len)�.0�xr[s  �r�
<listcomp>zESetupTest.testSetupInstallRoot.<locals>.strippath.<locals>.<listcomp>�s+���&�&�&�q�A�c�#�h�h�q�j�k�k�N�&�&�&r)r-)�lr[s �r�	strippathz1SetupTest.testSetupInstallRoot.<locals>.strippaths���&�&�&�&�A�&�&�&�&r)z%s/*)�etc�usr�varc���g}tj|��D]?\�}}tj||z|��}|��fd�|D�����@|S)Nc3�X�K�|]$}tj��|��V��%dS�N)r@rArB)rc�f�bases  �r�	<genexpr>zISetupTest.testSetupInstallRoot.<locals>.recursive_glob.<locals>.<genexpr>�s3�����>�>�q�R�W�\�\�$��*�*�>�>�>�>�>�>r))r@�walk�fnmatch�filter�extend)�treeroot�pattern�results�dirs�files�	goodfilesros      @r�recursive_globz6SetupTest.testSetupInstallRoot.<locals>.recursive_glob�sl����W� �g�h�/�/�?�?�	��t�U��.����w�7�7�i�
�n�n�>�>�>�>�I�>�>�>�>�>�>�>��^r)�*zGot: z	 Needed: z under z. Files under new paths: ��msg)zetc/fail2ban/fail2ban.confzetc/fail2ban/jail.confz
Can't find %szfind z -name fail2ban-python�
z clean --allz 2>&1)rFrPrQr@rArEr=r>rRrSrTrrUrJrV�sortedr�set�
differencerBrWr5�splitrb�realpathrYrZ)
r�remove_buildr\rg�got�needr{ry�missing�missing_fullrn�
installedPathr[s
            @r�testSetupInstallRootzSetupTest.testSetupInstallRootts���	
��
�	�6�����#��W�^�^�G�,�,�,�,�'�|�5���F�F�m�m�B�)�8����B�I�

�.�.�.�$�*�*�*�c�c�9�9�6�7�7�89�;�;�;�'�'�'�'�'�
��6�$�v��|�,�,�-�-�	.�	.�3�
�
�
�4�
�$�i�i���3��� ����
�E��s�8�8�&�&�t�,�,�?�?���G�L�L��g�.�.�\��g�n�n�\�2�2�7�
�)�N�N�<��5�5�
6�
6�?�:>��7�^�^�	����$�$����T�T�T�3�3�3���
�� � � �
!�!�!�q��O�O�B�G�N�N�2�7�<�<��Q�#7�#7�8�8��a���!�!�!�!��G�c�M�+C�C�D�D�J�J�4�P�P�=��?�?�3�}�%�%��)�*�*�*�%�H�H�}�����W���m�$�$�b�g�&6�&6�s�~�&F�&F�H�H�H�H�H�
�=������9�

�.�.�.�$�*�*�*�y�&P�y�7�':�':�b�&P�R�S�S�S���r�w�~�~�g�.�.��
�M�'�����������	
�=������9�

�.�.�.�$�*�*�*�y�&P�y�7�':�':�b�&P�R�S�S�S���r�w�~�~�g�.�.��
�M�'���������s�"IL&�&A?N%)r*r+r,r<r]r��
__classcell__)rMs@rr9r9Rs[�������k�k�k�k�k� ��� ?�?�?�?�?�?�?r)r9c�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�TestsUtilsTestc�d�|�td��d��|�td��d��|�td��d��|�td��d��|�td��d��dS)	Nz	sample.py�samplez/long/path/sample.pyz/long/path/__init__.pyz
path.__init__z/long/path/base.pyz	path.basez/long/path/base)rrr's r�
testmbasenamezTestsUtilsTest.testmbasename�s������9�[�)�)�8�4�4�4����9�3�4�4�h�?�?�?����9�5�6�6��H�H�H����9�1�2�2�K�@�@�@����9�.�/�/��=�=�=�=�=r)c�N�|�tttjdkrdndd��ttjdkrdnd��td��td��tjdkrdtjvrtd��dSdSdS)N)�stest�testzf2b-test::non-existing-encodingstest�utest�PyPy)�assertRaises�	ExceptionrrJrKr�versionr's r�testUniConvertersz TestsUtilsTest.testUniConverters�s������I�z���4�'�'�G�G�V�6W�Y�Y�Y��S�-��5�5�k�k�:�G�G�G��[�����Z����������s�{�!:�!:�
�j��������!:�!:r)c���t}Gd�d��}|��}|�tjd|��|�dd��|���|�d|��|�dd��|�dtj��z��|d��}|�tjd	||��|�d
dd�
��|�d||��|�ddd�
��|�d��Gd�dtj	��}|j
}	t|j
��|_
|xj
|��gz
c_
|�tjd��|�d��||_
n#||_
wxYw|�d��dS)Nc��eZdZdd�Zd�ZdS)�,TestsUtilsTest.testSafeLogging.<locals>.Testrc��||_dSrm)�err)rr�s  r�__init__z5TestsUtilsTest.testSafeLogging.<locals>.Test.__init__�s
���D�H�H�Hr)c�2�|jrtd���dS)N�no represenation for test!u.conv-error (òðåòèé), unterminated utf Ï)r�r�r's r�__repr__z5TestsUtilsTest.testSafeLogging.<locals>.Test.__repr__�s"���x�K��1�2�2�2�J�Jr)N)r)r*r+r,r�r�r-r)r�Testr��s<����������K�K�K�K�Kr)r�ztest 1a: %r�	Tracebackr�ztest 1b: %rz.[phase 2] test error conversion by encoding %srztest 2a: %r, %sztest 2azError by logging handlerF��allztest 2b: %r, %sztest 2bz*[phase 3] test unexpected error in handlerc��eZdZd�ZdS)�5TestsUtilsTest.testSafeLogging.<locals>._ErrorHandlerc� �td���)Nzerror in handler test!)r�)r�records  r�handlez<TestsUtilsTest.testSafeLogging.<locals>._ErrorHandler.handle�s��
�,�
-�
-�-r)N)r*r+r,r�r-r)r�
_ErrorHandlerr��s#������.�.�.�.�.r)r�ztest 3aztest 3b�OK)�	DefLogSys�logrS�NOTICE�assertLogged�pruneLog�noticerJ�getdefaultencoding�Handler�handlers�list)rrr�r�r��_org_handlers      r�testSafeLoggingzTestsUtilsTest.testSafeLogging�s���&�K�K�K�K�K�K�K�K�
����$��*�*�W�^�]�D�1�1�1����K�!=�>�>�>��-�-�/�/�/��-�-�
�t�$�$�$����K�!=�>�>�>��-�-�@�3�CY�C[�C[�[�\�\�\�	
��a���$�	�*�*�W�^�.��d�;�;�;����I�9�u��E�E�E��-�-�!�4��.�.�.����I�9�u��E�E�E��-�-�<�=�=�=�.�.�.�.�.�g�o�.�.�.���,�"��&�/�*�*�6�?�	�?�?�}�}���'�'�?�?�	�:�:�g�n�i�(�(�(�	�=�=�����!�6�?�?��\�6�?�!�!�!�!��-�-������s
�(A'G�	G c�D���dD]�}t|���}d����fd��	t�d����n#t$r
|��}YnwxYwd|vr|�d|��nd|vr|�d|��|�d	|����dS)
N)TF)�compressc��t���rm)rr-r)r�
func_raisez0TestsUtilsTest.testTraceBack.<locals>.func_raise�s��
�,�,�r)c�@��|r�|dz
��dS���dS)Nrr-)�i�
deep_functionr�s ��rr�z3TestsUtilsTest.testTraceBack.<locals>.deep_function�s4������]�1�Q�3�������Z�\�\�\�\�\r)r�zfail2ban-testcases�>�coverage�:)r�printr�assertIn�assertNotIn)rr��tb�sr�r�s    @@r�
testTraceBackzTestsUtilsTest.testTraceBack�s�������h��8�$�$�$�2����������
�	�-�-��
�
������
�
�
�
�
����A�A�A�
����
 �1�$�$�	�M�M�#�q�����
�1�_�_����S�!�����=�=��a�����7�s�:�A�Ac�6�|jt||g|�Ri|��dSrm)�assertRaisesRegex�AssertionError)r�regexp�funr�kwargss     r�_testAssertionErrorREz$TestsUtilsTest._testAssertionErrorREs/���$�����F�t�F�F�F�v�F�F�F�F�Fr)c�X��d�}��t�jd|d����t�jd�jd����d�fd�����t�jdt
d����d	�fd
���dS)Nc� �t|���rm)�KeyErrorr}s r�_key_errz;TestsUtilsTest.testExtendedAssertRaisesRE.<locals>._key_errs��	�#���r)�^failed$�failed�
__failed__z$failed.* does not match .*__failed__c�<����d�jd��S)Nr�r�)r��failr's�r�<lambda>z;TestsUtilsTest.testExtendedAssertRaisesRE.<locals>.<lambda>!s ���4�%�%�k��I�|���r)r#rzJ0 AssertionError not raised X.* does not match .*AssertionError not raisedc�6����d�fd���S)Nz^0 AssertionError not raised X$c�<����dtd��S)Nr#r)r��intr's�rr�zMTestsUtilsTest.testExtendedAssertRaisesRE.<locals>.<lambda>.<locals>.<lambda>)s���D�&�&�s�C��3�3�r))r�r's�rr�z;TestsUtilsTest.testExtendedAssertRaisesRE.<locals>.<lambda>(s&���4�%�%�&H�3�3�3�3�5�5�r))r�r�r�r�r�r�)rr�s` r�testExtendedAssertRaisesREz)TestsUtilsTest.testExtendedAssertRaisesREs����������H���{��h�������N���{��I�|�������D��������
���N���s�C��,�,�,����j�5�5�5�5�����r)c�z����dgd�����dd����dd����dd�dD������dgd�����dd����dd����dd�dD������d�jdd����d	�jd
td������d�jd
d�dD������d�jdd����d�jdtd������d�jd
d�dD����t}����|�d����d����ddd�����ddd�����ddd�����ddd�������|�d����d����ddd�����dddd���tj
jdc}tj
_��ttj
�d��t������tj
�d�����d����tj
�d��d����tj
�d ��d ��dtj
_	��tj
�d!�����d����tj
�d��d"����tj
�d ��d ��|tj
_n#|tj
_wxYw��tj
�d��������|�d����d#�jd����d$�jdd����d%�jddd�����d&�jddd�����d'�jdddd(�)����d*�jddd�����d+�jdddd(�)����d$�jddd�����d
d
d,gid
d
d,gi����t&�jd
d
d,gid
d,d
gi����d
d-gd-d
g����d
d-ggd-d
ggd,�.����d
d-ggd-d
ggd�/����t&�fd0�����d
d
d-gid
d-d
gid�/����t&�fd1�����d2d-d3gd4d5gd6�gd5d4gd3d-gd7�d2gd�/����d2d-d3gd4d5gd6�gd5d4gd3d-gd7�d2gd8�.����t&�fd9�����d:d;gd<d;gggfd:d;gd;d<gggf����t+d=��t+d>������t&�jd=gd>g����t&�jd=ggd>gg����d?�jd
gd3d-g����d@�jd
d-gd3d-g��dS)AN�a)r��b�c�d�cbac3�&K�|]}|dk�|V��
dS�r�Nr-�rcr�s  rrpz;TestsUtilsTest.testExtendedAssertMethods.<locals>.<genexpr>1s&����3�3�A�!�s�(�(�a�(�(�(�(�3�3r))r�r�r��cbdc3�JK�|]}|dk�|���V��dSr���upperr�s  rrpz;TestsUtilsTest.testExtendedAssertMethods.<locals>.<genexpr>5s.����>�>�q�Q�#�X�X������X�X�X�X�>�>r)z'a' unexpectedly found in 'cba'z#1 unexpectedly found in \[0, 1, 2\]rr�z&'A' unexpectedly found in \['C', 'A'\]�Ac3�JK�|]}|dk�|���V��dSr�r�r�s  rrpz;TestsUtilsTest.testExtendedAssertMethods.<locals>.<genexpr><s.����@�@��q�C�x�x�1�7�7�9�9�x�x�x�x�@�@r)z'a' was not found in 'xyz'�xyzz5 was not found in \[0, 1, 2\]�z!'A' was not found in \['C', 'B'\]c3�JK�|]}|dk�|���V��dS)r�Nr�r�s  rrpz;TestsUtilsTest.testExtendedAssertMethods.<locals>.<genexpr>Bs.����=�=�a�A��H�H����	�	�H�H�H�H�=�=r)z
test "xyz"r�Tr��zyxF�test_zyxz
xxxx "xxx"c��dS�N�2r-r-r)rr�z:TestsUtilsTest.testExtendedAssertMethods.<locals>.<lambda>Ts��B�r)r��g9@c��dSr�r-r-r)rr�z:TestsUtilsTest.testExtendedAssertMethods.<locals>.<lambda>Ys��R�r)g@z.* was found in the logz+All of the .* were found present in the logzwas found in the logzwas not found in the logz&was not found in the log, waited 1e-06g���ư>)r��waitz"None among .* was found in the logz0None among .* was found in the log, waited 1e-06r	�B)�level��
nestedOnlyc�B����ddggddggdd���S�Nr�r�rT)r�r���assertSortedEqualr's�rr�z:TestsUtilsTest.testExtendedAssertMethods.<locals>.<lambda>zs2���D�,B�,B��#�J�<�3��*��Q�4�-C�-9�-9�r)c�F����dddgidddgidd���Sr�r�r's�rr�z:TestsUtilsTest.testExtendedAssertMethods.<locals>.<lambda>}s:���D�,B�,B��#�s���s�S�#�J�'�q�T�-C�-C�-C�r)�Z�C�E�F�r�r��r�r����c�X����dddgddgd�gddgddgd�dgd�	��S)
Nrr�rrrrrTr�r�r's�rr�z:TestsUtilsTest.testExtendedAssertMethods.<locals>.<lambda>�sP���D�,B�,B���S�z��c�
�	+�	+�,�c�3�Z�s�C�j�/Q�/Q�SV�.W��-C�-�-�r)r�A1�A2�ABC�CBAz\['A'\] != \['C', 'B'\]z\['A', 'B'\] != \['B', 'C'\])r�r�r��ranger�r��debugr��assertNotLoggedr=r>�fast�assertFalse�
isinstance�maxWaitTime�boolr�assertDictEqualr�r�rr�)rr�orgfasts`  r�testExtendedAssertMethodsz(TestsUtilsTest.testExtendedAssertMethods,s.	����-�-��)�)�)�*�*�*��-�-��*�+�+�+��-�-��U�����-�-��3�3��3�3�3�4�4�4����3����(�(�(����3�(�)�)�)����3��������3�>�>�E�>�>�>�?�?�?����?���S�%�!�!�!����C���Q��a���"�"�"����F���S�@�@�e�@�@�@�B�B�B����:��=�#�u�������>��=�!�U�1�X�X�������A��=�#�=�=�5�=�=�=�?�?�?��&��-�-�/�/�/��,�,�|�������L�!�!�!����F�E�t��,�,�,����v�u�%��0�0�0����z�5�d��3�3�3����F�E�u��-�-�-��-�-�/�/�/��,�,�|�������|�$�$�$����v�u�%��0�0�0����v�u�e���6�6�6�'�|�0�%��'�8�<�����:�h�l�6�6�t�<�<�d�C�C�D�D�D����8�<�+�+�J�J�7�7�9�9�2�>�>�>����8�<�+�+�B�/�/��4�4�4����8�<�+�+�C�0�0�$�7�7�7��(�,������H�L�,�,�Z�Z�8�8�:�:�B�?�?�?����H�L�,�,�R�0�0�#�6�6�6����H�L�,�,�S�1�1�4�8�8�8��8�<����w�8�<���������8�<�+�+�E�2�2�3�3�3��-�-�/�/�/��,�,�|�������7����'�'�'����K����v�/�/�/����4�����D��2�2�2����8���f�e���/�/�/����F���f�e��D��:�:�:����B���j�%�U��4�4�4����P���j�%�U���?�?�?����K�����E��3�3�3�����a��V�}�s�Q��F�m�4�4�4����N�D�$8��!�Q��=�3��A��-�!�!�!����#�s��c�3�Z�0�0�0����3��*���c�
�|�1��=�=�=����3��*���c�
�|���F�F�F����N�%9�%9�%9�%9�:�:�:����#��S�z�*�S�3��*�,=�%��P�P�P����N�%C�%C�%C�%C�D�D�D����#�c�3�Z�s�C�j�A�A�B�C�QT�:�]`�be�\f�Eg�Eg�il�Dm���������#�c�3�Z�s�C�j�A�A�B�C�QT�:�]`�be�\f�Eg�Eg�il�Dm�	��
�
�
����N�%�%�%�%�����������t��b�!�"�����t��b�!�"��������e���d�5�k�k�2�2�2����N�D�$:�U�G�e�W�M�M�M����N�D�$:�e�W�I���y�Q�Q�Q����7���C�5�3��*�.�.�.����<���C��:��S�z�3�3�3�3�3s
�B!R�Rc���|�td��d��|�tdd���d��|�tddd���d��dS)NrzA%(asctime)s %(name)-24s[%(process)d]: %(levelname)-7s %(message)sF)�paddingz<%(asctime)s %(name)s[%(process)d]: %(levelname)s %(message)s)�addtimerz0%(name)s[%(process)d]: %(levelname)s %(message)s)rrr's r�testVerbosityFormatz"TestsUtilsTest.testVerbosityFormat�s������%�a�(�(�F�H�H�H����%�a��7�7�7�A�C�C�C����%�a���F�F�F�5�7�7�7�7�7r)c�`�t��}t}d}td��}tj|��}|�||����|�|��|�d��|���}|�	|�
���d����|�d��}|�	|dk��|�
|d|�||dz|dzdz���dS)	Nz %(tb)s | %(tbc)s : %(message)s�fail2ban_tests�XXXz: XXX�|�
rr	)rr
rrS�
StreamHandler�setFormatter�
addHandler�error�getvaluerWr2�endswith�indexr)r�strout�	Formatter�fmtr�outr��pindexs        r�testFormatterWithTraceBackz)TestsUtilsTest.testFormatterWithTraceBack�s���:�:�&�$�)�	*�#��%�&�&�&���f�%�%�#����9�9�S�>�>�"�"�"����C�����,�,�u�����o�o���!��/�/�!�(�(�*�*�%�%�g�.�.�/�/�/��7�7�3�<�<�&��/�/�&�2�+�������1�W�f�W�:�q����&��(�Q�,�!6�7�8�8�8�8�8r)c��t}|�dtjj��|�dddd��|�d��dS)Nzlazy logging: %rr�rr	r�znot all arguments converted)r�rr=r>�log_lazyr�r�)rrs  r�testLazyLoggingzTestsUtilsTest.testLazyLogging�sT���&��,�,�!�8�<�#8�9�9�9��-�-���1�a� � � ����1�2�2�2�2�2r)N)
r*r+r,r�r�r�r�r�r�rrr.r1r-r)rr�r��s�������>�>�>����(�(�(�T���@G�G�G����,d3�d3�d3�L7�7�7�9�9�9�(3�3�3�3�3r)r�c��eZdZd�Zd�ZdS)�
MyTimeTestc��tj}|�|d��d��|�|d��d��|�|d��d��|�|d��d��|�|d��d	��|�|d
��d	��|�|d��d��|�t|d
����dzdzdzd��|�t|d����dzdzdzd��dS)N�1y6mo30w15d12h35m25si]��z2yy 3mo 4ww 10dd 5hh 30mm 20ssi$�mz>2 years 3 months 4 weeks 10 days 5 hours 30 minutes 20 secondsz!1 year + 1 month - 1 week + 1 dayi��zI2 * 0.5 yea + 1*1 mon - 3*1/3 wee + 2/2 day - (2*12 hou 3*20 min 80 sec) g@��Az(2*.5y+1*1mo-3*1/3w+2/2d-(2*12h3*20m80s) z!1ye -2mo -3we -4da -5ho -6mi -7seiQ	pz1 month�<�gp>@z1 yearg�v@)r�str2secondsr�float)r�str2secs  r�testStr2SecondszMyTimeTest.testStr2Seconds�sg����'����7�7�1�2�2�H�=�=�=����7�7�;�<�<�h�G�G�G����7�7�[�\�\�^f�g�g�g����7�7�>�?�?��J�J�J����7�7�f�g�g�is�t�t�t����7�7�E�F�F�
�S�S�S����7�7�>�?�?��J�J�J����5����+�+�,�,�r�1�B�6��;�W�E�E�E����5����*�*�+�+�b�0�2�5��:�F�C�C�C�C�Cr)c�2�d�}|�|d��d��|�|d��d��|�|d��d��|�|d��d	��|�|d
��d��|�|d��d
��|�|d��d��|�|d��d��|�|d��d��|�|d��d��|�|d��d��|�|d��d��|�|d��d��dS)Nc�D�ttj|����Srm)rHr�seconds2str)r�s rr�z(MyTimeTest.testSec2Str.<locals>.<lambda>�s��c�&�,�Q�/�/�0�0�r)i)z1y 3w 4di(�z1y 3dg�~A�1yi��z2w 1di�t�2wi�z	2d 7h 15mi�z2d 1hg��@z3h 31mi�2hi�1hiz59m 50s�;�59sr�0)r)r�sec2strs  r�testSec2StrzMyTimeTest.testSec2Str�s���0�0�'����7�7�9�%�%�*�=�=�=����7�7�9�%�%�'�:�:�:����7�7�<�(�(�$�7�7�7����7�7�8�$�$�'�:�:�:����7�7�;�'�'�$�7�7�7����7�7�/�0�0�+�>�>�>����7�7�<�(�(�'�:�:�:����7�7�9�%�%�(�;�;�;����7�7�8�$�$�$�7�7�7����7�7�6�?�?�$�7�7�7����7�7�7�#�#�)�<�<�<����7�7�2�;�;�%�8�8�8����7�7�1�:�:�#�6�6�6�6�6r)N)r*r+r,r;rGr-r)rr3r3�s5������D�D�D�7�7�7�7�7r)r3)$�
__author__�
__copyright__�__license__rSr@rJr=rPrYrrr�ior�utilsrrr��helpersr
rrr
rrrrr�
server.mytimer�TestCaserr5r7r9r�r3r-r)r�<module>rPs��("�
�7�
�������	�	�	�	�
�
�
�
���������
�
�
�
�����������������:�:�:�:�:�:�:�:�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�"�"�"�"�"�"�>�>�>�>�>�(�#�>�>�>�@!�!�!�
T�T�T�a�a�a�a�a��!�a�a�a�H}3�}3�}3�}3�}3�'�}3�}3�}3�@7�7�7�7�7��"�7�7�7�7�7r)