o
    ¯b  ã                   @   sj   d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZmZ G d	d
„ d
e	jƒZdS )z+
Test cases for L{twisted.logger._buffer}.
é    )ÚListÚcast)ÚBrokenMethodImplementation)ÚverifyObject)Úunittesté   )ÚLimitedHistoryLogObserver)ÚILogObserverÚLogEventc                   @   s.   e Zd ZdZd
dd„Zd
dd„Zd
dd	„ZdS )ÚLimitedHistoryLogObserverTestsz1
    Tests for L{LimitedHistoryLogObserver}.
    ÚreturnNc              
   C   sJ   t dƒ}ztt|ƒ W dS  ty$ } z|  |¡ W Y d}~dS d}~ww )zH
        L{LimitedHistoryLogObserver} provides L{ILogObserver}.
        r   N)r   r   r	   r   Úfail)ÚselfÚobserverÚe© r   úA/usr/lib/python3/dist-packages/twisted/logger/test/test_buffer.pyÚtest_interface   s   €ÿz-LimitedHistoryLogObserverTests.test_interfacec                 C   sZ   d}dd„ t |d ƒD ƒ}t|ƒ}|D ]}||ƒ qg }| tt|jƒ¡ |  ||¡ dS )zY
        L{LimitedHistoryLogObserver} saves history in the order it is received.
        é   c                 S   ó   g | ]}t |d �‘qS ©)Ún©Údict©Ú.0r   r   r   r   Ú
<listcomp>&   ó    z=LimitedHistoryLogObserverTests.test_order.<locals>.<listcomp>r   N©Úranger   ÚreplayTor   r	   ÚappendÚassertEqual©r   ÚsizeÚeventsr   ÚeventÚ	outEventsr   r   r   Ú
test_order!   s   
z)LimitedHistoryLogObserverTests.test_orderc                 C   sd   d}dd„ t |d ƒD ƒ}t|ƒ}|D ]}||ƒ qg }| tt|jƒ¡ |  || d… |¡ dS )z‰
        When more events than a L{LimitedHistoryLogObserver}'s maximum size are
        buffered, older events will be dropped.
        r   c                 S   r   r   r   r   r   r   r   r   6   r   z=LimitedHistoryLogObserverTests.test_limit.<locals>.<listcomp>r   Nr   r#   r   r   r   Ú
test_limit0   s   
z)LimitedHistoryLogObserverTests.test_limit)r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r(   r)   r   r   r   r   r      s
    


r   N)r-   Útypingr   r   Úzope.interface.exceptionsr   Úzope.interface.verifyr   Útwisted.trialr   Ú_bufferr   Ú_interfacesr	   r
   ÚTestCaser   r   r   r   r   Ú<module>   s   