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   