U
    
W[j                     @   sN   d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 G dd dej
Zd	S )
z+
Test cases for L{twisted.logger._buffer}.
    )verifyObjectBrokenMethodImplementation)unittest   )ILogObserver)LimitedHistoryLogObserverc                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	LimitedHistoryLogObserverTestsz1
    Tests for L{LimitedHistoryLogObserver}.
    c              
   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   A/usr/lib/python3/dist-packages/twisted/logger/test/test_buffer.pytest_interface   s
    z-LimitedHistoryLogObserverTests.test_interfacec                 C   sT   d}dd t |d D }t|}|D ]}|| q&g }||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replayToappendZassertEqualr	   sizeZeventsr
   ZeventZ	outEventsr   r   r   
test_order!   s    
z)LimitedHistoryLogObserverTests.test_orderc                 C   s^   d}dd t |d D }t|}|D ]}|| q&g }||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   7   s     z=LimitedHistoryLogObserverTests.test_limit.<locals>.<listcomp>r   Nr   r   r   r   r   
test_limit1   s    
z)LimitedHistoryLogObserverTests.test_limitN)__name__
__module____qualname____doc__r   r   r   r   r   r   r   r      s   r   N)r!   Zzope.interface.verifyr   r   Ztwisted.trialr   Z	_observerr   Z_bufferr   ZTestCaser   r   r   r   r   <module>   s
   