a
    )(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dZddddZdddd	ZdS )
LimitedHistoryLogObserverTestsz1
    Tests for L{LimitedHistoryLogObserver}.
    N)returnc              
   C   sJ   t d}ztt| W n. tyD } z| | W Y d}~n
d}~0 0 dS )zH
        L{LimitedHistoryLogObserver} provides L{ILogObserver}.
        r   N)r   r   r	   r   Zfail)selfobservere r   >lib/python3.9/site-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   s   g | ]}t |d qS )ndict.0r   r   r   r   
<listcomp>&       z=LimitedHistoryLogObserverTests.test_order.<locals>.<listcomp>r   Nranger   ZreplayTor   r	   appendZassertEqualr   sizeZeventsr   Z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   r   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   Z_bufferr   Z_interfacesr	   r
   ZTestCaser   r   r   r   r   <module>   s   