
    "j{                         d Z ddlmZ ddlmZ 	 ddlmZ ddZ G d	 d
      Z	 G d d      Z
d Zy# e$ r ddlmZ  G d de      ZY 4w xY w)z'Patches for async socket functionality.    asynccontextmanager)patch)	AsyncMock)	MagicMockc                        e Zd Z fdZ xZS )r   c                 2   K   t        t        | 
  |i |S wN)superr   __call__)selfargskwargs	__class__s      W/var/www/oz-panel.ru/ozpay-pub/venv/lib/python3.12/site-packages/test_async/patchers.pyr   zAsyncMock.__call__   s     D2DCFCCs   )__name__
__module____qualname__r   __classcell__)r   s   @r   r   r      s    	D 	D    r   c                 B      G fdd      t          fd       S )Nc                   *    e Zd Z fdZddZ fdZy)&async_mock_open.<locals>.AsyncMockFilec                 (    || _         |d d _        y )Nr   )	read_datawritten)r   r   _async_mock_opens     r   __init__z/async_mock_open.<locals>.AsyncMockFile.__init__   s    &DN'0!}$r   c                    K   |dk(  r"| j                   }| j                   d d | _         |S t        |t        | j                               }| j                   d | }| j                   |d  | _         |S w)Nr   )r   minlen)r   sizeretns       r   readz+async_mock_open.<locals>.AsyncMockFile.read   si     rznn!%!3
D#dnn-.A..!$C!^^AB/DNJs   A,A.c                 `   K   j                   rxj                   |z  c_         y |_         y wr
   )r   )r   br   s     r   writez,async_mock_open.<locals>.AsyncMockFile.write!   s*     '' ((A-(+, (s   +.N)r    )r   r   r   r   r&   r)   )r   s   r   AsyncMockFiler      s    	5			-r   r*   c                 0   K   	         y # w xY wwr
    )r   r   r*   r   s     r   r   z)async_mock_open.<locals>._async_mock_open'   s     		**Ds    r   )r   r*   r   s   `@@r   async_mock_openr-      s)    - -,   r   c                   $    e Zd Zd Zd Zd Zd Zy)FakeStreamWriterc                      y r
   r,   r   s    r   closezFakeStreamWriter.close2       r   c                    K   y wr
   r,   r1   s    r   wait_closedzFakeStreamWriter.wait_closed5   	        c                      y r
   r,   )r   datas     r   r)   zFakeStreamWriter.write8   r3   r   c                    K   y wr
   r,   r1   s    r   drainzFakeStreamWriter.drain;   r6   r7   N)r   r   r   r2   r5   r)   r;   r,   r   r   r/   r/   1   s    r   r/   c                       e Zd Zd Zy)FakeStreamReaderc                    K   yw)Ns   TESTr,   )r   numbytess     r   r&   zFakeStreamReader.read@   s	     r7   N)r   r   r   r&   r,   r   r   r=   r=   ?   s    r   r=   c                  $    t        | dt        i|S )Nnew_callable)r   r   )r   r   s     r   async_patchrB   D   s    $9Y9&99r   N) )__doc__
contextlibr   unittest.mockr   r   ImportErrorr   r-   r/   r=   rB   r,   r   r   <module>rH      s[    - * D'B  
:y  D'DI DDs   2 A
A