K i6 ddlZddlmZddlmZddlZddlmZmZddlm Z ddl m Z m Z Gdde Z Gd d e ZGd d e ZGd de ZGddeZGddeZGdde Zedk(rej*yy)N) timedelta)random)genqueues) TimeoutError)gen_test AsyncTestCasec(eZdZdZdZedZy)QueueBasicTestctjd}|jtt |t ||j tt |t||jt |t|fD]j}|j|jd|jd||jd||j d||j d|l|jd|jd|jdt |t|fD]8}|j d||jd ||jd |:y) NmaxsizezCBiH155Id34HHeeBi S_-iio S_- $ b  1557], C O,abk ;F   lFMM : ;Is#E##EDE#c #Ktj}tdDcgc]0}tj|j t d2}}tj|j }|jdt|jtjd|jdt|j|j|j|j |jdt|j|D]"}|jt|j $ycc}ww)NrarQrSrbrRr&)rrr(asyncio ensure_futurerrr*rc_gettersrr^r5r7r1rrerrr,rrgetters r!!test_get_clears_timed_out_gettersz.QueueGetTest.test_get_clears_timed_out_getterss LLNKPQS9 FGG ! !!%% $(?"@ A  ##AEEG, S_-iio S_- $  C O, ;F   lFMM : ; s"E 5EDE c#KtjtdD]}j|fd}|}|j |t tdyw)NcdKg}23d{}|j||dk(s |cS76yw)N)append)resultsr+rs r!fz&QueueGetTest.test_async_for..fs;G # #aq!6"N #1s 0.,.00.0)rrr(rr*list)rr+rvrurs @r!test_async_forzQueueGetTest.test_async_forsX LLNq A EE!H  #) $uQx.1sA)A,N)r:r;r<rrCrErIrNrYr\r_rhrorxr=r#r!r?r?Ls -- , ;''II)))) ; ; ; ; 2 2r#r?ceZdZedZdZedZedZedZedZ edZ edZ ed Z ed Z y ) QueuePutTestctj}|jd|jd|j yrA)rrrr*r)rBs r!test_blocking_putzQueuePutTest.test_blocking_puts. LLN a ALLN+r#ctjd}|jd|jtj|j dyrK)rrrr1 QueueFullr'rBs r!test_nonblocking_put_exceptionz+QueuePutTest.test_nonblocking_put_exceptions6 LLO a &**ALL!.get_and_discards EEGr#rQrRc3<K|]}|jywrG)r7).0rvs r! z6QueuePutTest.test_blocking_put_wait..s7!QVVX7s)rrr'rWrXrr5any)rrfuturesrs @r!test_blocking_put_waitz#QueuePutTest.test_blocking_put_waits LLO Q  o6 o6558QUU1X& 7w778 sB,B/c#Ktjd}|jd|jdt d}|jd}|j t 5|ddd|jd|j|jd|j|y#1swYPxYww)Nr rrQrSrUr&) rrr'rrr1rr*r)r)rr put_timeoutrs r!test_put_timeoutzQueuePutTest.test_put_timeouts LLO QeeAy'>e? eeAh   | ,    ALLN+ 1557],   sA*C ,C1AC C C c#Ktjd}|jd|jdt d}|j t jd|yw)Nr rrQrSrUrR)rrr'rrrrr^rMs r!test_put_timeout_preemptedz'QueuePutTest.test_put_timeout_preemptedsQ LLO QeeAy6e7 iio sA0A2c #Ktjd}tdDcgc]}|j|t d }}|jd}|j dt |jtjd|j dt |j|j|j|jd|j dt |j|ddD]"}|jt|j$ycc}ww)Nr rarQrSrRrbr&)rrr(rrr*rcrdrr^r5r7r1rrerfs r!!test_put_clears_timed_out_puttersz.QueuePutTest.test_put_clears_timed_out_putterss LLO>CBiH155Id34HHeeBi S_-iio S_- $ b  C O,abk ;F   lFMM : ;Is#E#D<C9Ec #Ktj}tdDcgc]0}tj|j t d2}}tj|j }|j |jdt|jtjd|jdt|j|j|j|jd|jdt|j|jd||D]"}|jt |j"$ycc}ww)NrarQrS rRrr )rrr(rjrkrrr*rcrlrr^r5r7rr1rrerms r!!test_put_clears_timed_out_gettersz.QueuePutTest.test_put_clears_timed_out_getters s LLNKPQS9 FGG ! !!%% $(?"@ A  ##AEEG,  S_-iio S_- $ a C O, 3Y( ;F   lFMM : ; s"F5FD,Fc#Ktjd}|j|j|j |j |j d|j d|j |j|j|j |jtj|j d|jd|j|j |j|j |j |jd|jd}|j |j|jd|j||j|j yw)Ng?rrr r&r%)rrrr4r5r6r'r1r~r*r)rr7rrMs r!test_float_maxsizezQueuePutTest.test_float_maxsizes/ LL %  " " Q Q # ! &**ALL!< ALLN+ # "eeAheeAh $ 1557],  !sGG N)r:r;r<rr|rrrrrrrrrr=r#r!rzrzs ,, = ** * *     ; ;;;"""r#rzcjeZdZejZdZedZedZ edZ edZ y) QueueJoinTestcd|j}|jt|jyrG) queue_classr1r3 task_donerBs r!test_task_done_underflowz&QueueJoinTest.test_task_done_underflow9s$     *akk2r#c#NKjtdD]}j|d_tj fd}||j jttdjyw)Ndrc3K j}xj|z c_jtjt dzZw)NrQ)r accumulatorrrr^r)itemrrs r!workerz,QueueJoinTest.test_task_done..workerEsKUUW}  D(  ii400 sAA) rr(r'rr coroutinejoinr*sum)rr+rrs` @r!test_task_donezQueueJoinTest.test_task_done=s    s A LLO   1  1 ffh U3Z$*:*:;sB!B%c#K|j}|jdtj|j }|j |j |j|j |j tj|j |j |j|j|j ywrA) rr'rjrkrr5r7rrrrr)rrrs r!test_task_done_delayz"QueueJoinTest.test_task_done_delaySs     Q$$QVVX. %eeg  %jj %   $sC6C8c#tK|j}|j|jywrG)rrrBs r!test_join_empty_queuez#QueueJoinTest.test_join_empty_queueas*    ffhffhs68c#K|j}|jd|jt5|j t ddddy#1swYyxYww)NrrQrSrU)rrr1rrrrBs r!test_join_timeoutzQueueJoinTest.test_join_timeoutgsW     a   | , :&&4!8&9 9 : : :s7A-A! A-!A*&A-N) r:r;r<rrrrrrrrrr=r#r!rr6s`,,K3<<* % % ::r#rc4eZdZejZedZy)PriorityQueueJoinTestc#<K|jd}|jd|jd|j|j|j d|j d|j d|j |j d|j|j d|j |j d|j|j|jyw)Nr&r)r a)rb)r%c)r&d rr'rr6rr*r)rr4rBs r!r.z PriorityQueueJoinTest.test_orderrs   Q  ' X X ! h h 1<<>2 !%%'M3 1<<>2 !%%'M3  "DDN)r:r;r<r PriorityQueuerrr.r=r#r!rros&&K  # #r#rc4eZdZejZedZy)LifoQueueJoinTestc#<K|jd}|jd|jd|j|j|j d|j d|j d|j |j d|j|j d|j |j d|j|j|jyw)Nr&rr rr%rrBs r!r.zLifoQueueJoinTest.test_orders   Q  ' Q Q ! a a ALLN+ 1557], ALLN+ 1557],  "rN)r:r;r<r LifoQueuerrr.r=r#r!rrs""K  # #r#rceZdZedZy)ProducerConsumerTestc#.Ktjdgtjfd}tjfd}||j |j t tdyw)Nr%rc3rK jjj2wrG)rtrr)historyrsr!consumerz=ProducerConsumerTest.test_producer_consumer..consumers,aeeg / s47c3TKtdD]}j|yw)Nra)r(r)rrs r!producerz=ProducerConsumerTest.test_producer_consumer..producers(b  "eeDk! "s%(ra)rrrrrr*rwr()rrrrrs @@r!test_producer_consumerz+ProducerConsumerTest.test_producer_consumers| LL #      "  "  jffh eBi'2sBBN)r:r;r<rrr=r#r!rrs 33r#r__main__)rjdatetimerrunittesttornadorr tornado.genrtornado.testingrr r r?rzrrrrr:mainr=r#r!rs$32"]2"jb2=b2JB"=B"J6:M6:r#M#$# #$3=36 zHMMOr#