U
     T‚g  ã                   @   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d„Zddœdd„Zddœdd	„ZdS )
ÚLimitedHistoryLogObserverTestsz1
    Tests for L{LimitedHistoryLogObserver}.
    N)Úreturnc              
   C   sH   t dƒ}ztt|ƒ W n, tk
rB } z|  |¡ W 5 d}~X Y nX dS )zH
        L{LimitedHistoryLogObserver} provides L{ILogObserver}.
        r   N)r   r   r	   r   Zfail)ÚselfÚobserverÚe© r   úC/tmp/pip-unpacked-wheel-1_7di8ic/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   s   g | ]}t |d �‘qS ©)Ún©Údict©Ú.0r   r   r   r   Ú
<listcomp>&   s     z=LimitedHistoryLogObserverTests.test_order.<locals>.<listcomp>r   N©Úranger   ZreplayTor   r	   ÚappendÚassertEqual©r   ÚsizeÚeventsr   ÚeventZ	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   s   g | ]}t |d �‘qS r   r   r   r   r   r   r   6   s     z=LimitedHistoryLogObserverTests.test_limit.<locals>.<listcomp>r   Nr   r   r   r   r   Ú
test_limit0   s    
z)LimitedHistoryLogObserverTests.test_limit)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r#   r$   r   r   r   r   r      s   
r   N)r(   Útypingr   r   Zzope.interface.exceptionsr   Zzope.interface.verifyr   Ztwisted.trialr   Ú_bufferr   Z_interfacesr	   r
   ZTestCaser   r   r   r   r   Ú<module>   s   