1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
U
Z±dŽJã@s ddlZddlZddlmZddlmZddlmZddlmZddl    Tddl
m Z dd    l m Z dd
lmZdd lmZd d „Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Z d*d+„Z!d,d-„Z"d.d/„Z#dS)0éNé)Ú can_bind_ipv6)Úsleep)Ú_core)Úaclose_forcefully)Ú*)Ú_assert_raises)Ú_UnboundedByteQueue)Úsocket)ÚSocketListenerc
ƒs´g‰‡fdd„}‡fdd„}t ¡4IdHš$}| |¡| |¡| |¡W5QIdHRXg‰‡fdd„}t ¡4IdHš}| |¡|j ¡W5QIdHRXˆdgks°t‚dS)Nc“s*tdƒD]}t ¡IdHqˆ d¡dS)Né
zbusy bee exhausted)ÚrangerÚ
checkpointÚappend)Ú_©Úrecord©úNd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\trio/tests/test_testing.pyÚbusy_bees z-test_wait_all_tasks_blocked.<locals>.busy_beec“stƒIdHˆ d¡dS)Nzquiet at last!©Úwait_all_tasks_blockedrrrrrÚwaiting_for_bee_to_leaves z=test_wait_all_tasks_blocked.<locals>.waiting_for_bee_to_leavec“s6ztƒIdHWn tjk
r0ˆ d¡YnXdS)NÚok)rrÚ    CancelledrrrrrÚcancelled_while_waiting&sz<test_wait_all_tasks_blocked.<locals>.cancelled_while_waitingr)rÚ open_nurseryÚ
start_soonÚ cancel_scopeÚcancelÚAssertionError)rrÚnurseryrrrrÚtest_wait_all_tasks_blockeds  
 
 
r"c
ƒs€g‰‡fdd„}t ¡4IdHšP}| |¡tƒIdHˆdgksFt‚| d¡tƒIdHˆddgkslt‚W5QIdHRXdS)Nc“s&ˆ d¡tdƒIdHˆ d¡dS)Nútt startéú tt finished©rrrrrrÚ timeout_task5s
z?test_wait_all_tasks_blocked_with_timeouts.<locals>.timeout_taskr#r r%)rrrrr Zjump)Z
mock_clockr'r!rrrÚ)test_wait_all_tasks_blocked_with_timeouts2s 
 
 r(c
ƒs¤g‰‡fdd„}‡fdd„}‡fdd„}‡fdd„}t ¡4IdHš8}| |¡| |¡| |¡| |¡| |¡W5QIdHRXˆd    d
d d d d gks t‚dS)Nc“sBˆ d¡tdƒIdHtdƒIdHtdƒIdHˆ d¡dS)Nú blink startg{®Gáz„?ú    blink endr&rrrrÚblinkFs
 
z7test_wait_all_tasks_blocked_with_cushion.<locals>.blinkc“stƒIdHˆ d¡dS)Núwait_no_cushion endrrrrrÚwait_no_cushionMs zAtest_wait_all_tasks_blocked_with_cushion.<locals>.wait_no_cushionc“stdƒIdHˆ d¡dS)Ng{®Gáz”?úwait_small_cushion endrrrrrÚwait_small_cushionQszDtest_wait_all_tasks_blocked_with_cushion.<locals>.wait_small_cushionc“stdƒIdHˆ d¡dS)Ng¸…ëQ¸ž?úwait_big_cushion endrrrrrÚwait_big_cushionUszBtest_wait_all_tasks_blocked_with_cushion.<locals>.wait_big_cushionr)r,r*r.r0)rrrr )r+r-r/r1r!rrrÚ(test_wait_all_tasks_blocked_with_cushionCs&    
 
 
 
úr2c ÃsÈtƒt ¡IdHW5QRXt t¡tƒW5QRXW5QRXtjtjfD]@}t|ƒt t¡$tƒ|ƒIdHW5QRXW5QRXqTtƒ"t ¡IdHt ¡IdHW5QRXdS©N)    Úassert_checkpointsrrÚpytestÚraisesr Úcheckpoint_if_cancelledÚcancel_shielded_checkpointÚprint©ZrecwarnZ partial_yieldrrrÚtest_assert_checkpointsms þ "r;c ÃsÞtƒW5QRXt t¡&tƒt ¡IdHW5QRXW5QRXtjtjfD]@}t|ƒt t¡$tƒ|ƒIdHW5QRXW5QRXqTt t¡4tƒ"t ¡IdHt ¡IdHW5QRXW5QRXdSr3)    Zassert_no_checkpointsr5r6r rrr7r8r9r:rrrÚtest_assert_no_checkpoints‡s 
 "þ " r<c ƒsg‰‡fdd„‰‡fdd„}‡fdd„}tƒ}t ¡4IdHšb}| ||¡| ||¡|dƒ4IdHštƒIdHW5QIdHRXˆdd    d
d d gksœt‚W5QIdHRXtƒ}|d ƒ4IdHšW5QIdHRXt t¡(|d ƒ4IdHšW5QIdHRXW5QRXdS)Ncst|ƒˆ |¡dSr3)r9r)ÚvalrrrÚt¨sztest_Sequencer.<locals>.tc
“s‚|dƒ4IdHšˆdƒW5QIdHRX|dƒ4IdHšˆdƒW5QIdHRX|dƒ4IdHšˆdƒW5QIdHRXdS)Né©Úf1r?é©rArBé©rArDr©Úseq©r>rrrA¬s ztest_Sequencer.<locals>.f1c
“sX|dƒ4IdHšˆdƒW5QIdHRX|dƒ4IdHšˆdƒW5QIdHRXdS)Nr©Úf2rr©rJrrrFrHrrrJ´sztest_Sequencer.<locals>.f2r$rIr@rKrCrEr)    Ú    Sequencerrrrrr r5r6Ú RuntimeError)rArJrGr!r)rr>rÚtest_Sequencer¥s"     & rNc ƒsÀg‰tƒ‰‡‡fdd„}t ¡4IdHš@}| |d¡| |d¡ˆdƒ4IdHšW5QIdHRXW5QIdHRXˆddgks„t‚t t¡(ˆdƒ4IdHšW5QIdHRXW5QRXdS)    Nc “stt ¡b}|dkr| ¡z&ˆ|ƒ4IdHšW5QIdHRXWn$tk
rdˆ d |¡¡YnXW5QRXdS)Nr?zseq({}) RuntimeError)rZ CancelScoperrMrÚformat)ÚiZscope©rrGrrÚchildÐs
z$test_Sequencer_cancel.<locals>.childr?rrzseq(1) RuntimeErrorzseq(2) RuntimeErrorrB)rLrrrr r5r6rM)rRr!rrQrÚtest_Sequencer_cancelËs
    rSc
Ãsxt t¡ttƒW5QRXW5QRXt t¡"ttƒddW5QRXW5QRXttƒ
t‚W5QRXdS)NZfoor?)r5r6r rrMÚ    TypeErrorrrrrÚtest__assert_raisesës 
 
 
rUc ƒsÔtƒ‰ˆ d¡ˆ d¡ˆ d¡dks,t‚ˆ d¡dks>t‚ˆ d¡ˆ ¡dksXt‚t tj¡ˆ d¡W5QRXt tj¡ˆ ¡W5QRXt t¡ˆ d¡W5QRXˆ d    ¡t    ƒˆ 
d¡IdHd    ksät‚W5QRXˆ d
¡ˆ d ¡t    ƒ ˆ 
d¡IdHd ks$t‚W5QRXt    ƒˆ 
¡IdHd ksNt‚W5QRX‡fdd„}‡fdd„}t  ¡4IdHš}|  |d¡|  |d¡W5QIdHRXt tj ¡@t  ¡4IdHš}|  |d¡|  |d¡W5QIdHRXW5QRXˆ ¡t tj¡ˆ d¡W5QRXˆ d¡dks:t‚ˆ ¡dksLt‚ˆ 
d¡IdHdksft‚ˆ 
¡IdHdks~t‚ˆ ¡tƒ‰‡fdd„}t  ¡4IdHš}|  |d¡|  |¡W5QIdHRXdS)Nó123ó456r?ó1r s23456ó789Ústringóabcódefsghiódsefghic“stƒIdHˆ |¡dSr3)rÚput©Údata©ÚubqrrÚputters z'test__UnboundeByteQueue.<locals>.putterc    “s,tƒˆ ¡IdH|kst‚W5QRXdSr3)r4Úgetr )ÚexpectrarrÚgettersz'test__UnboundeByteQueue.<locals>.getteróxyzsasdfó---óc“stƒIdHˆ ¡dSr3)rÚcloser)Úubq2rrÚcloser9s z'test__UnboundeByteQueue.<locals>.closer)r    r^Ú
get_nowaitr r5r6rÚ
WouldBlockrTr4rdrrÚBusyResourceErrorrjÚClosedResourceError)rcrfr!rlr)rbrkrÚtest__UnboundeByteQueueúsX
 
 
 
"
 
$"    &  rqc
ƒsŠtƒ‰‡fdd„‰ˆdƒIdHˆ d¡dks2t‚ˆ ¡dksBt‚tƒˆ ¡IdHW5QRXt tj¡ˆ ¡W5QRXt tj¡ˆ d¡W5QRXˆdƒIdHtƒˆ     ¡IdHdksÐt‚W5QRXd    ‰‡‡fd
d „}t 
¡4IdHš}|  |¡|  |¡W5QIdHRXˆdks0t‚tƒˆ  ¡IdHW5QRXˆ     ¡IdHd ksht‚ˆ     ¡IdHd ks€t‚t tj ¡ˆdƒIdHW5QRXˆjdks¶t‚ˆjdksÆt‚ˆjdksÖt‚g‰‡‡fdd„}‡fdd„}‡fdd„}t|||ƒ‰ˆj|kst‚ˆj|ks,t‚ˆj|ks<t‚ˆ d¡IdHˆ ¡IdHtˆƒIdHˆ ¡ˆddddgks†t‚dS)Nc    “s&tƒˆ |¡IdHW5QRXdSr3)r4Úsend_allr_)ÚmssrrÚ do_send_allEsz*test_MemorySendStream.<locals>.do_send_allrVr?rXs23r rWrc“s6zˆdƒIdHWntjk
r0ˆd7‰YnXdS)Nóxxxr?)rror)rtÚresource_busy_countrrÚdo_send_all_count_resourcebusy_sz=test_MemorySendStream.<locals>.do_send_all_count_resourcebusyrurirhc“sˆ ¡dkst‚ˆ d¡dS)Nr[Ú send_all_hook)Úget_data_nowaitr rr)Úmss2rrrrx|sz,test_MemorySendStream.<locals>.send_all_hookc“sˆ d¡dS)NÚ"wait_send_all_might_not_block_hook©rrrrrr{szAtest_MemorySendStream.<locals>.wait_send_all_might_not_block_hookcsˆ d¡dS)NÚ
close_hookr|rrrrr}„sz)test_MemorySendStream.<locals>.close_hookr[rxr{r})ÚMemorySendStreamryr r4Zwait_send_all_might_not_blockr5r6rrnÚget_datarrÚacloserprxr{r}rrrrj)rwr!rxr{r}r)rtrsrzrrvrÚtest_MemorySendStreamBsf  
  ÿürc ƒsxtƒ‰‡fdd„}ˆ d¡|dƒIdHdks2t‚|dƒIdHdksHt‚ˆ d¡|dƒIdHdksht‚t tj¡@t ¡4IdHš}| |d¡| |d¡W5QIdHRXW5QRXˆj    dksÈt‚ˆ d¡ˆ 
¡ˆ 
¡|dƒIdHdksøt‚|dƒIdHd    kst‚|dƒIdHd    ks(t‚t tj ¡ˆ d
¡W5QRX‡fd d „}g‰‡fd d„}t||ƒ‰ˆj    |ks€t‚ˆj |kst‚ˆ d¡ˆ  d¡IdHdks´t‚ˆ  d¡IdHdksÎt‚ˆ  d¡IdHdksèt‚ˆ d¡dˆ_    ˆ  d¡IdHdkst‚ˆ d¡tƒˆ ¡IdHW5QRXˆdgksLt‚t tj ¡ˆ  d¡IdHW5QRXdS)Nc
“s.tƒˆ |¡IdHW5QR£SQRXdSr3)r4Ú receive_some©Z    max_bytes)ÚmrsrrÚdo_receive_someŸsz1test_MemoryReceiveStream.<locals>.do_receive_somer[r?óar sbcr\rirhc“sˆ d¡dS)Nru)Úput_datar)Úmrs2rrÚreceive_some_hook»sz3test_MemoryReceiveStream.<locals>.receive_some_hookcsˆ d¡dS)NÚclosedr|rrrrr}Àsz,test_MemoryReceiveStream.<locals>.close_hooksyyysyyyxxxruszzzs lost on closerŠ)ÚMemoryReceiveStreamr‡r r5r6rrorrr‰Zput_eofrpr}r‚r4r€)r…r!r‰r}r)r„rˆrrÚtest_MemoryReceiveStreamœsN 
 
 &
 
 
 
 
rŒc    Ãs¬tƒ}| ¡t tj¡| d¡IdHdks4t‚W5QRX| ¡t tj¡| d¡W5QRXtƒ}| d¡| ¡t tj¡| d¡IdHW5QRXdS)Nr rirVrg)    r‹rjr5r6rrpr‚r r‡)r„rˆrrrÚtest_MemoryRecvStream_closingÙs"
rcÃsþtƒ}tƒ}t||ƒ| d¡IdHt||ƒ| d¡IdHdksHt‚| d¡IdHt||ddsjt‚| d¡IdHdks‚t‚t||dds”t‚t||dds¦t‚t||ddr¸t‚| d¡IdHdksÐt‚| ¡t||ƒ| d¡IdHdksút‚dS)    NrVr rWr?rƒó4s56ri)r~r‹Zmemory_stream_pumprrr‚r rj)rsr„rrrÚtest_memory_stream_pumpís 
 
 
rc
ƒsútƒ\}‰|jdk    st‚|jdks&t‚|jdk    s4t‚ˆjdksBt‚| d¡IdHˆ d¡IdHdksjt‚‡fdd„}t     ¡4IdHš.}| 
|d¡t ƒIdH| d¡IdHW5QIdHRXt     ¡4IdHš,}| 
|d¡t ƒIdH|  ¡IdHW5QIdHRXtƒ\}‰t     ¡4IdHš&}| 
|d¡t ƒIdH|  ¡W5QIdHRXtƒ\}‰|j}d|_| d¡IdHdd    „}‡fd
d „}t     ¡4IdHš}| 
||¡| 
|¡W5QIdHRX||_| d ¡IdHˆ d¡IdHd ksöt‚dS)NrVr c“sˆ d¡IdH|kst‚dS©Nr ©r‚r )Úexpected©ÚrrrÚreceiversz1test_memory_stream_one_way_pair.<locals>.receiverr[rirWcÓstƒIdH|j ¡dSr3)rrr)r!rrrÚcancel_after_idle*s z:test_memory_stream_one_way_pair.<locals>.cancel_after_idlec    “s,t tj¡ˆ d¡IdHW5QRXdSr)r5r6rrr‚rr“rrÚcheck_for_cancel.sz9test_memory_stream_one_way_pair.<locals>.check_for_cancelrYs456789)Úmemory_stream_one_way_pairrxr r{r}r‰rrr‚rrrrr€rj)Úsr•r!Úoldr–r—rr“rÚtest_memory_stream_one_way_pairsB
      
 
  r›c
ƒsÒtƒ\‰‰ˆ d¡IdHˆ d¡IdHˆ d¡IdHdksBt‚ˆ d¡IdHdksZt‚ˆ ¡IdHˆ d¡IdHdks€t‚‡fdd„}‡fdd„}t ¡4IdHš}| |¡| |¡W5QIdHRXdS)    NrVr[r ric“s tƒIdHˆ d¡IdHdS)Nrg)rrrr)ÚbrrÚsenderGs z'test_memory_stream_pair.<locals>.senderc“sˆ d¡IdHdkst‚dS)Nr rgr‘r)Úarrr•Ksz)test_memory_stream_pair.<locals>.receiver)Úmemory_stream_pairrrr‚r Zsend_eofrrr)rr•r!r)ržrœrÚtest_memory_stream_pair=s
 
r cÃs4dd„}t|dƒIdHdd„}t|dƒIdHdS)NcÓstƒSr3)r˜rrrrÚone_way_stream_makerTszDtest_memory_streams_with_generic_tests.<locals>.one_way_stream_makercÓstƒSr3)rŸrrrrÚhalf_closeable_stream_makerYszKtest_memory_streams_with_generic_tests.<locals>.half_closeable_stream_maker)Úcheck_one_way_streamZcheck_half_closeable_stream)r¡r¢rrrÚ&test_memory_streams_with_generic_testsSsr¤cÃs4dd„}t||ƒIdHdd„}t||ƒIdHdS)NcÓstƒSr3)Zlockstep_stream_one_way_pairrrrrr¡`szFtest_lockstep_streams_with_generic_tests.<locals>.one_way_stream_makercÓstƒSr3)Zlockstep_stream_pairrrrrÚtwo_way_stream_makereszFtest_lockstep_streams_with_generic_tests.<locals>.two_way_stream_maker)r£Zcheck_two_way_stream)r¡r¥rrrÚ(test_lockstep_streams_with_generic_tests_sr¦c    Ãsdd„}t ¡}| d¡IdH| d¡|t|ƒƒIdHt ¡}| d¡IdH| d¡|t|ƒƒIdHtr®tjtjd}| d¡IdH| d¡|t|ƒƒIdHttdƒrtjtjd}t     
¡<}d      |¡}| |¡IdH| d¡|t|ƒƒIdHW5QRXdS)
Nc Ósž|4IdHš‚t|ƒIdH}|4IdHšV| ¡IdH}|4IdHš*| d¡IdH| d¡IdHdkW5QIdHRXW5QIdHRXW5QIdHRXdS)Nóxr?)Zopen_stream_to_socket_listenerÚacceptrrr‚)ZlistenerZ client_streamZ server_streamrrrÚchecklsz2test_open_stream_to_socket_listener.<locals>.check)z    127.0.0.1rr )z0.0.0.0r)Úfamily)z::rÚAF_UNIXz{}/sock) Útsocketr
ÚbindÚlistenr rÚAF_INET6Úhasattrr«ÚtempfileÚTemporaryDirectoryrO)r©ÚsockZtmpdirÚpathrrrÚ#test_open_stream_to_socket_listenerks*
 
 
 
 
 
 
rµ)$r±r5Z_core.tests.tutilrÚrrZ_highlevel_genericrZtestingZtesting._check_streamsrZtesting._memory_streamsr    r
r¬Z_highlevel_socketr r"r(r2r;r<rNrSrUrqrrŒrrr›r r¤r¦rµrrrrÚ<module>s8         *& HZ=8