o
    Eh                     @   s"  d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	m
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mZmZ G d	d
 d
eZG dd deZG dd deZG dd deZG dd dZG dd deZG dd deZG dd deZ e!dkre"  dS dS )    )futuresN)Futurechain_futurerun_on_executor"future_set_result_unless_cancelled)utf8
to_unicode)gen)IOStream)	TCPServer)AsyncTestCasebind_unused_portgen_testc                   @   s   e Zd Zdd ZdS )MiscFutureTestc                 C   sz   t  }t|d | | d | |  t  }|  | }t|d | | | |s;| | d d S d S N*   )r   r   assertEqualresultassertFalse	cancelledcancel)selffutis_cancelled r   ]/var/www/html/Persson_Maskin/env/lib/python3.10/site-packages/tornado/test/concurrent_test.py'test_future_set_result_unless_cancelled#   s   

z6MiscFutureTest.test_future_set_result_unless_cancelledN)__name__
__module____qualname__r   r   r   r   r   r   "   s    r   c                   @   s$   e Zd Zedd Zedd ZdS )ChainFutureTestc                    s<   t  }t  }t|| |d |I d H }| |d d S r   )r   r   
set_resultr   )r   r   fut2r   r   r   r   test_asyncio_futures3   s   


z$ChainFutureTest.test_asyncio_futuresc                    sP   t  }t  }t }t|| t|| |d |I d H }| |d d S r   )r   r   r   r!   r   )r   r   r"   fut3r   r   r   r   test_concurrent_futures<   s   



z'ChainFutureTest.test_concurrent_futuresN)r   r   r   r   r#   r%   r   r   r   r   r    2   s
    
r    c                   @      e Zd Zejdd ZdS )	CapServerc                 c   sP    | dV }t|}|| kr|d n|td|   |  d S )N   
s   error	already capitalized
zok	%s)
read_untilr   upperwriter   close)r   streamaddressdatar   r   r   handle_streamP   s   zCapServer.handle_streamN)r   r   r   r	   	coroutiner0   r   r   r   r   r'   O       r'   c                   @   s   e Zd ZdS )CapErrorN)r   r   r   r   r   r   r   r3   \   s    r3   c                   @   s   e Zd Zdd Zdd ZdS )BaseCapClientc                 C   s
   || _ d S Nport)r   r7   r   r   r   __init__a   s   
zBaseCapClient.__init__c                 C   s@   t dt|}|d u rtd| \}}|dkr|S t|)Nz
(.*)	(.*)
zdid not matchok)rematchr   	Exceptiongroupsr3   )r   r/   mstatusmessager   r   r   process_responsed   s   zBaseCapClient.process_responseN)r   r   r   r8   rA   r   r   r   r   r4   `   s    r4   c                   @   r&   )GeneratorCapClientc                 c   s~    t d tt }t d |d| jfV  |t|d  t d |dV }t d |	  t
| |)N
capitalize
connectingz	127.0.0.1
readingr(   	returning)loggingdebugr
   socketconnectr7   r+   r   r)   r,   r	   ReturnrA   )r   request_datar-   r/   r   r   r   rC   p   s   



zGeneratorCapClient.capitalizeN)r   r   r   r	   r1   rC   r   r   r   r   rB   o   r2   rB   c                       sH   e Zd Z fddZ fddZdd Zdd Zd	d
 Zdd Z  Z	S )GeneratorCapClientTestc                    s:   t    t | _t \}}| j|g t|d| _d S )Nr6   )supersetUpr'   serverr   add_socketsrB   client)r   sockr7   	__class__r   r   rP      s
   

zGeneratorCapClientTest.setUpc                    s   | j   t   d S r5   )rQ   stoprO   tearDownr   rU   r   r   rX      s   
zGeneratorCapClientTest.tearDownc                 C   s8   | j d}| j|| j |   | | d d S NhelloHELLO)rS   rC   io_loop
add_futurerW   waitr   r   r   futurer   r   r   test_future      z"GeneratorCapClientTest.test_futurec                 C   s8   | j d}| j|| j |   | td|j d S )Nr\   already capitalized)	rS   rC   r]   r^   rW   r_   assertRaisesRegexr3   r   r`   r   r   r   test_future_error   rc   z(GeneratorCapClientTest.test_future_errorc                    "   t j fdd} j| d S )Nc                  3   s      j dV }  | d d S rZ   )rS   rC   r   )r   rY   r   r   f   s   z0GeneratorCapClientTest.test_generator.<locals>.fr	   r1   r]   run_syncr   rh   r   rY   r   test_generator      z%GeneratorCapClientTest.test_generatorc                    rg   )Nc                   3   sB      td  jdV  W d    d S 1 sw   Y  d S )Nrd   r\   )re   r3   rS   rC   r   rY   r   r   rh      s   "z6GeneratorCapClientTest.test_generator_error.<locals>.fri   rk   r   rY   r   test_generator_error   rm   z+GeneratorCapClientTest.test_generator_error)
r   r   r   rP   rX   rb   rf   rl   rn   __classcell__r   r   rU   r   rN   ~   s    rN   c                   @   s<   e Zd Zedd Zedd Zedd Zedd Zd	S )
RunOnExecutorTestc                 c   0    G dd d}| }|  V }| |d d S )Nc                   @   s    e Zd Zdd Zedd ZdS )z1RunOnExecutorTest.test_no_calling.<locals>.Objectc                 S      t jd| _d S N   r   threadThreadPoolExecutorexecutorrY   r   r   r   r8         z:RunOnExecutorTest.test_no_calling.<locals>.Object.__init__c                 S      dS r   r   rY   r   r   r   rh         z3RunOnExecutorTest.test_no_calling.<locals>.Object.fNr   r   r   r8   r   rh   r   r   r   r   Object   s    r}   r   rh   r   r   r}   oanswerr   r   r   test_no_calling   
   
z!RunOnExecutorTest.test_no_callingc                 c   rq   )Nc                   @   "   e Zd Zdd Ze dd ZdS )z8RunOnExecutorTest.test_call_with_no_args.<locals>.Objectc                 S   rr   rs   ru   rY   r   r   r   r8      ry   zARunOnExecutorTest.test_call_with_no_args.<locals>.Object.__init__c                 S   rz   r   r   rY   r   r   r   rh      r{   z:RunOnExecutorTest.test_call_with_no_args.<locals>.Object.fNr|   r   r   r   r   r}          r}   r   r~   r   r   r   r   test_call_with_no_args   r   z(RunOnExecutorTest.test_call_with_no_argsc                 c   rq   )Nc                   @   s&   e Zd Zdd Zedddd ZdS )z9RunOnExecutorTest.test_call_with_executor.<locals>.Objectc                 S   rr   rs   )r   rv   rw   _Object__executorrY   r   r   r   r8      ry   zBRunOnExecutorTest.test_call_with_executor.<locals>.Object.__init__r   )rx   c                 S   rz   r   r   rY   r   r   r   rh      r{   z;RunOnExecutorTest.test_call_with_executor.<locals>.Object.fNr|   r   r   r   r   r}      s    r}   r   r~   r   r   r   r   test_call_with_executor   r   z)RunOnExecutorTest.test_call_with_executorc                 #   s:    G dd d}|   fdd}| V }|  |d d S )Nc                   @   r   )z2RunOnExecutorTest.test_async_await.<locals>.Objectc                 S   rr   rs   ru   rY   r   r   r   r8      ry   z;RunOnExecutorTest.test_async_await.<locals>.Object.__init__c                 S   rz   r   r   rY   r   r   r   rh      r{   z4RunOnExecutorTest.test_async_await.<locals>.Object.fNr|   r   r   r   r   r}      r   r}   c                     s      I d H } | S r5   )rh   )r   r   r   r   rh      s   z-RunOnExecutorTest.test_async_await.<locals>.fr   )r   )r   r}   rh   r   r   r   r   test_async_await   s   z"RunOnExecutorTest.test_async_awaitN)r   r   r   r   r   r   r   r   r   r   r   r   rp      s    


rp   __main__)#
concurrentr   rH   r:   rJ   unittesttornado.concurrentr   r   r   r   tornado.escaper   r   tornador	   tornado.iostreamr
   tornado.tcpserverr   tornado.testingr   r   r   r   r    r'   r<   r3   r4   rB   rN   rp   r   mainr   r   r   r   <module>   s,   )?