%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3/dist-packages/twisted/logger/test/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3/dist-packages/twisted/logger/test/__pycache__/test_legacy.cpython-312.pyc

�

Ϫ�f	9���dZddlZddlmZddlmZmZddlmZddl	m
Z
ddlmZddl
mZmZdd	lmZdd
lmZddlmZdd
lmZmZddlmZmZddlmZGd�dej>�Z Gd�dej>�Z!y)z+
Test cases for L{twisted.logger._legacy}.
�N)�time)�List�cast)�implementer)�BrokenMethodImplementation)�verifyObject)�context�log)�Failure)�unittest�)�formatEvent)�ILogObserver�LogEvent)�LegacyLogObserverWrapper�publishToNewObserver)�LogLevelc���eZdZdZdd�Zdd�Zdedefd�Zdedefd�Zdd	�Z	dd
�Z
dd�Zdd�Zdd
�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdedefd�Zdd�Zdd�Zdd�Zdd�Zy)�LegacyLogObserverWrapperTestsz0
    Tests for L{LegacyLogObserverWrapper}.
    �returnNc��ttjd��}t|�}	t	t|�y#t
$r}|j
|�Yd}~yd}~wwxYw)zD
        L{LegacyLogObserverWrapper} is an L{ILogObserver}.
        c��y�N�)�es �A/usr/lib/python3/dist-packages/twisted/logger/test/test_legacy.py�<lambda>z>LegacyLogObserverWrapperTests.test_interface.<locals>.<lambda>"s��N)r�	legacyLogrrrr�fail)�self�legacyObserver�observerrs    r�test_interfacez,LegacyLogObserverWrapperTests.test_interfacesL���i�4�4�n�E��+�N�;��	���x�0��)�	��I�I�a�L�L��	�s�9�	A�A�Ac��ttj�Gd�d��}t|��}|j	t|�d�y)zJ
        L{LegacyLogObserverWrapper} returns the expected string.
        c�<�eZdZdefd�Zdejddfd�Zy)�?LegacyLogObserverWrapperTests.test_repr.<locals>.LegacyObserverrc��y)Nz<Legacy Observer>r�r!s r�__repr__zHLegacyLogObserverWrapperTests.test_repr.<locals>.LegacyObserver.__repr__0s��*r�	eventDictNc��yrr)r!r+s  r�__call__zHLegacyLogObserverWrapperTests.test_repr.<locals>.LegacyObserver.__call__3s��r)�__name__�
__module__�__qualname__�strr*r�	EventDictr-rrr�LegacyObserverr'.s'��
+�#�
+�
�)�*=�*=�
�$�
rr3z+LegacyLogObserverWrapper(<Legacy Observer>)N)rrrr�assertEqual�repr)r!r3r#s   r�	test_reprz'LegacyLogObserverWrapperTests.test_repr)sJ��

�Y�+�+�	,�	�	�
-�	�,�N�,<�=������h��)V�Wr�eventc���g�ttj�fd��}t|�}||�|j	t��d��dS)z�
        Send an event to a wrapped legacy observer and capture the event as
        seen by that observer.

        @param event: an event

        @return: the event as observed by the legacy wrapper
        c�&���j|�Sr)�append)r�eventss �rrz7LegacyLogObserverWrapperTests.observe.<locals>.<lambda>Es����
�
�a�@P�r�r)rrrrr4�len)r!r7r"r#r;s    @r�observez%LegacyLogObserverWrapperTests.observe:sL���"$���i�4�4�6P�Q��+�N�;���������V��a�(��a�y�rc�&�|jdt��|jdd�|jdtj�|j	t|��}|j
�D]\}}|j||��|S)z�
        Send an event to a wrapped legacy observer and verify that its data is
        preserved.

        @param event: an event

        @return: the event as observed by the legacy wrapper
        �log_time�
log_system�-�	log_level)�
setdefaultrr�infor>�dict�items�assertIn)r!r7�observed�key�values     r�forwardAndVerifyz.LegacyLogObserverWrapperTests.forwardAndVerifyLs~��	����T�V�,�
����s�+�
����h�m�m�4��<�<��U��,�� �+�+�-�	)�J�C���M�M�#�x�(�	)��rc�<�|jtdd���y)ze
        Basic forwarding: event keys as observed by a legacy observer are the
        same.
        r<r
��foo�barN)rLrFr)s r�test_forwardz*LegacyLogObserverWrapperTests.test_forwardcs��
	
���d�q�a�0�1rc�x�t�}|jt|���}|j|d|�y)zc
        The new-style C{"log_time"} key is copied to the old-style C{"time"}
        key.
        )r@rN�rrLrFr4�r!�stampr7s   r�	test_timez'LegacyLogObserverWrapperTests.test_timejs4��
����%�%�d�E�&:�;������v���.rc��t�}|jt|dz|���}|j|d|�y)zr
        The new-style C{"log_time"} key does not step on a pre-existing
        old-style C{"time"} key.
        r<)r@rrNrSrTs   r�test_timeAlreadySetz1LegacyLogObserverWrapperTests.test_timeAlreadySetss:��
����%�%�d�E�A�I�E�&J�K������v���.rc�d�|jtd���}|j|dd�y)zg
        The new-style C{"log_system"} key is copied to the old-style
        C{"system"} key.
        rO)rA�systemN�rLrFr4�r!r7s  r�test_systemz)LegacyLogObserverWrapperTests.test_system|s-��
�%�%�d�e�&<�=������x��%�0rc�f�|jtdd���}|j|dd�y)zv
        The new-style C{"log_system"} key does not step on a pre-existing
        old-style C{"system"} key.
        rOrP)rArZrZNr[r\s  r�test_systemAlreadySetz3LegacyLogObserverWrapperTests.test_systemAlreadySet�s/��
�%�%�d�e�E�&J�K������x��%�0rc��tt�tj��}|j	t|��}|j|dd�y)zy
        If the new-style C{"log_system"} key is absent, the old-style
        C{"system"} key is set to C{"-"}.
        )r@rCrZrBN)rFrrrEr>r4)r!r7rIs   r�
test_noSystemz+LegacyLogObserverWrapperTests.test_noSystem�s=���d�f��
�
�>���<�<��U��,������(�+�S�1rc�T�|jttjd���|jttjd���|jttj
d���|jttjd���y)z�
        If explicitly set, the C{isError} key will be preserved when forwarding
        from a new-style logging emitter to a legacy logging observer,
        regardless of log level.
        r<)rC�isErrorrN)rLrFrrE�warn�error�criticalr)s r�test_levelNotChangez1LegacyLogObserverWrapperTests.test_levelNotChange�sj��	
���d�X�]�]�A�F�G����d�X�]�]�A�F�G����d�X�^�^�Q�G�H����d�X�->�->��J�Krc�z�|jttj���}|j	d|�y)a)
        The new-style C{"log_level"} key is not translated to the old-style
        C{"logLevel"} key.

        Events are forwarded from the old module from to new module and are
        then seen by old-style observers.
        We don't want to add unexpected keys to old-style events.
        )rC�logLevelN)rLrFrrE�assertNotInr\s  r�test_pythonLogLevelNotSetz7LegacyLogObserverWrapperTests.test_pythonLogLevelNotSet�s-���%�%�d�X�]�]�&C�D������U�+rc�d�|jtd���}|j|dd�y)a
        If a stdlib log level was provided as a string (eg. C{"WARNING"}) in
        the legacy "logLevel" key, it does not get converted to a number.
        The documentation suggested that numerical values should be used but
        this was not a requirement.
        �WARNING�ririNr[r\s  r�test_stringPythonLogLevelz7LegacyLogObserverWrapperTests.test_stringPythonLogLevel�s6���%�%��"�
�
��
	
����z�*�I�6rc�`�|jt��}|j|dd�y)z�
        The old-style C{"message"} key is added, even if no new-style
        C{"log_format"} is given, as it is required, but may be empty.
        �messagerNr[r\s  r�test_messagez*LegacyLogObserverWrapperTests.test_message�s+��
�%�%�d�f�-������y�)�2�.rc�d�|jtd���}|j|dd�y)zV
        The old-style C{"message"} key is not modified if it already exists.
        rN)rqrqNr[r\s  r�test_messageAlreadySetz4LegacyLogObserverWrapperTests.test_messageAlreadySet�s.���%�%�d�>�&B�C������y�)�>�:rc��|jtdd���}|jtj|�d�y)z�
        Formatting is translated such that text is rendered correctly, even
        though old-style logging doesn't use PEP 3101 formatting.
        z
Hello, {who}!�world)�
log_format�who�
Hello, world!N�rLrFr4r�textFromEventDictr\s  r�test_formatz)LegacyLogObserverWrapperTests.test_format�s6��
�%�%�d�o�7�&S�T������4�4�U�;�_�Mrc��|jtdd���}|jtj|�d�y)zo
        Using the message key, which is special in old-style, works for
        new-style formatting.
        zHello, {message}!rv)rwrqryNrzr\s  r�test_formatMessagez0LegacyLogObserverWrapperTests.test_formatMessage�s<��
�%�%��/��A�
��	
����4�4�U�;�_�Mrc��|jtdd���}|jtj|�d�y)zd
        Formatting is not altered if the old-style C{"format"} key already
        exists.
        zHello!zHowdy!)rw�formatNrzr\s  r�test_formatAlreadySetz3LegacyLogObserverWrapperTests.test_formatAlreadySet�s6��
�%�%�d�h�x�&P�Q������4�4�U�;�X�Fr�valuesc�d�ttd��}|jtd|dd�|���S)z�
        Create a new-style event with a captured failure.

        @param values: Additional values to include in the event.

        @return: the new event
        znyargh!�	oopsie...)�log_failurerwr)r�RuntimeErrorrLrF)r!r��failures   r�eventWithFailurez.LegacyLogObserverWrapperTests.eventWithFailure�s8���,�y�1�2���$�$��G�W��G��G�
�	
rc��|j�}|j|d|d�|j|d�|j|dd�y)z}
        Captured failures in the new style set the old-style C{"failure"},
        C{"isError"}, and C{"why"} keys.
        r�r�rc�whyr�N)r��assertIs�
assertTruer4r\s  r�test_failurez*LegacyLogObserverWrapperTests.test_failure�sO��
�%�%�'���
�
�e�I�&��m�(<�=�����i�(�)�����u��{�3rc�z�ttd��}|j|��}|j|d|�y)�v
        Captured failures in the new style do not step on a pre-existing
        old-style C{"failure"} key.
        zWeak salsa!)r�r�N)rr�r�r�)r!r�r7s   r�test_failureAlreadySetz4LegacyLogObserverWrapperTests.test_failureAlreadySet�s9��
�,�}�5�6���%�%�g�%�6���
�
�e�I�&��0rc�R�|jd��}|j|dd�y)zv
        Captured failures in the new style do not step on a pre-existing
        old-style C{"isError"} key.
        r�rcrcN�r�r4r\s  r�test_isErrorAlreadySetz4LegacyLogObserverWrapperTests.test_isErrorAlreadySets,��
�%�%�a�%�0������y�)�1�-rc�R�|jd��}|j|dd�y)r��blah)r�r�Nr�r\s  r�test_whyAlreadySetz0LegacyLogObserverWrapperTests.test_whyAlreadySets+��
�%�%�&�%�1������u��v�.r�rN)r.r/r0�__doc__r$r6rr>rLrQrVrXr]r_rargrkrorrrtr|r~r��objectr�r�r�r�r�rrrrrs����	�X�"�X��(��$�h��8��.2�/�/�1�1�2�	L�
,�7�/�;�N�N�G�
��
�H�
�4�1�.�/rrc��eZdZdZdd�Zdededejfd�Z	dd�Z
dd	�Zdd
�Zdd�Z
dd�Zdd
�Zdd�Zdd�Zdd�Zdd�Zy)�PublishToNewObserverTestsz,
    Tests for L{publishToNewObserver}.
    rNc�d�g|_tt|jj�|_yr)r;rrr:r#r)s r�setUpzPublishToNewObserverTests.setUps!��&(����\�4�;�;�+=�+=�>��
rrqr�c���tjtj�xsij	�}|j|�||d<t
�|d<d|vrd|d<|S)a
        Return a basic old-style event as would be created by L{legacyLog.msg}.

        @param message: a message event value in the legacy event format
        @param values: additional event values in the legacy event format

        @return: a legacy event
        rqrrcr)r	�getr�ILogContext�copy�updater)r!rqr�r7s    r�legacyEventz%PublishToNewObserverTests.legacyEvents^�����Y�2�2�3�9�r�?�?�A��
���V��"��i�����f�
��E�!� �E�)���rc��t|j|j�tj�|jt
|j�d�y)z6
        The observer is called exactly once.
        r<N)rr#r�rr{r4r=r;r)s r�
test_observedz'PublishToNewObserverTests.test_observed/sA��	��M�M�4�+�+�-�y�/J�/J�	
�	
����T�[�[�)�1�-rc���t|j|j�tj�|j|jdd|jdd�y)zc
        The old-style C{"time"} key is copied to the new-style C{"log_time"}
        key.
        rr@rN�rr#r�rr{r4r;r)s rrVz#PublishToNewObserverTests.test_time8sR��
	��M�M�4�+�+�-�y�/J�/J�	
�	
������Q��
�3�T�[�[��^�F�5K�Lrc���dtdtfd�}|jdd�}||�}t|j||�|jt
|jd�|�y)z�
        A published old-style event should format as text in the same way as
        the given C{textFromEventDict} callable would format it.
        r7rc�Z�djtdj|d���S)N�� rq)�join�reversed)r7s rr{zAPublishToNewObserverTests.test_message.<locals>.textFromEventDictHs$���7�7�8�C�H�H�U�9�-=�$>�?�@�@rzHello,zworld!rN)rr1r�rr#r4rr;)r!r{r7�texts    rrrz&PublishToNewObserverTests.test_messageBsd��	A�X�	A�#�	A�� � ��8�4�� ��'���T�]�]�E�3D�E�����T�[�[��^�4�d�;rc���t|j|j�tj�|j|jddtj�y)zL
        Published event should have log level of L{LogLevel.info}.
        rrCN)	rr#r�rr{r4r;rrEr)s r�test_defaultLogLevelz.PublishToNewObserverTests.test_defaultLogLevelQsI��	��M�M�4�+�+�-�y�/J�/J�	
�	
������Q���4�h�m�m�Drc���t|j|jd��tj�|j|jddtj�y)z�
        If C{"isError"} is set to C{1} (true) on the legacy event, the
        C{"log_level"} key should get set to L{LogLevel.critical}.
        r<r�rrCN)	rr#r�rr{r4r;rrfr)s r�test_isErrorz&PublishToNewObserverTests.test_isErrorZsP��
	��M�M�4�+�+�A�+�6�	�8S�8S�	
�	
������Q���4�h�6G�6G�Hrc���t|j|jtj��t
j�|j|jddtj�y)z�
        If the old-style C{"logLevel"} key is set to a standard library logging
        level, using a predefined (L{int}) constant, the new-style
        C{"log_level"} key should get set to the corresponding log level.
        rnrrCN)rr#r��
py_loggingrmrr{r4r;rrdr)s r�test_stdlibLogLevelz-PublishToNewObserverTests.test_stdlibLogLeveldsV��	��M�M����j�&8�&8��9��'�'�	
�
	
������Q���4�h�m�m�Drc���t|j|jd��tj�|j|jddtj�y)z�
        If the old-style C{"logLevel"} key is set to a standard library logging
        level, using a string value, the new-style C{"log_level"} key should
        get set to the corresponding log level.
        rmrnrrCN)	rr#r�rr{r4r;rrdr)s r�test_stdlibLogLevelWithStringz7PublishToNewObserverTests.test_stdlibLogLevelWithStringqsP��	��M�M����i��0��'�'�	
�
	
������Q���4�h�m�m�Drc��t|j|jd��tj�|jd|jd�y)z�
        If the old-style C{"logLevel"} key is set to a standard library logging
        level, using an unknown value, the new-style C{"log_level"} key should
        not get set.
        zFoo!!!!!rnrCrN)rr#r�rr{rjr;r)s r�test_stdlibLogLevelWithGarbagez8PublishToNewObserverTests.test_stdlibLogLevelWithGarbage~sG��	��M�M����j��1��'�'�	
�
	
����d�k�k�!�n�5rc��t|j|j�tj�|j|jddd�y)z�
        Published event should have a namespace of C{"log_legacy"} to indicate
        that it was forwarded from legacy logging.
        r�
log_namespace�
log_legacyNr�r)s r�test_defaultNamespacez/PublishToNewObserverTests.test_defaultNamespace�sE��
	��M�M�4�+�+�-�y�/J�/J�	
�	
������Q���8�,�Grc���t|j|j�tj�|j|jdd|jdd�y)zg
        The old-style C{"system"} key is copied to the new-style
        C{"log_system"} key.
        rrArZNr�r)s rr]z%PublishToNewObserverTests.test_system�sR��
	��M�M�4�+�+�-�y�/J�/J�	
�	
������Q���5�t�{�{�1�~�h�7O�Prr�)r.r/r0r�r�r1r�rr2r�r�rVrrr�r�r�r�r�r�r]rrrr�r�se���?��C��6��i�>Q�>Q��".�M�
<�E�I�E�E�6�H�Qrr�)"r��loggingr�r�typingrr�zope.interfacer�zope.interface.exceptionsr�zope.interface.verifyr�twisted.pythonr	r
r�twisted.python.failurer�
twisted.trialr�_formatr�_interfacesrr�_legacyrr�_levelsr�TestCaserr�rrr�<module>r�s^������&�@�.�4�*�"�!�0�D��y/�H�$5�$5�y/�xHQ�� 1� 1�HQr

Zerion Mini Shell 1.0