a 8êdg©¼ã@s,ddlZddlZddlZddlmZz ddlZWneyFdZYn0ddlZddlmZddlm Z ddlm Z ddlm Z ddl m ZejZdd „ZGd d „d eƒZdd d„Zdd„ZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZedkr(e ¡dS)éN)Úmock)ÚBaseSelectorEventLoop)Ú_SelectorTransport)Ú_SelectorSocketTransport)Ú_SelectorDatagramTransport)ÚutilscCst d¡dS©N)ÚasyncioZset_event_loop_policy©r r úB/usr/local/lib/python3.9/test/test_asyncio/test_selector_events.pyÚtearDownModulesr c@seZdZdd„Zdd„ZdS)ÚTestBaseSelectorEventLoopcCs&t ¡|_t ¡|_|jd7_dS©Né©rÚMockÚ_ssockÚ_csockZ _internal_fds©Úselfr r r Ú_make_self_pipes  z)TestBaseSelectorEventLoop._make_self_pipecCsdSrr rr r r Ú_close_self_pipe"sz*TestBaseSelectorEventLoop._close_self_pipeN)Ú__name__Ú __module__Ú __qualname__rrr r r r r sr r cCs tƒ |¡Sr)Ú bytearrayÚjoin)Úlr r r Úlist_to_buffer&srcCs"|jdurdS|j ¡d|_dSr)Ú_sockÚclose)Ú transportr r r Úclose_transport*s  r"cs eZdZ‡fdd„Zdd„Ze edud¡dd„ƒZe   d d¡e   d d¡d d „ƒƒZ d d„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Z d7d8„Z!‡Z"S)9ÚBaseSelectorEventLoopTestscs:tƒ ¡t ¡|_g|jj_t|jƒ|_|  |j¡dSr) ÚsuperÚsetUprrÚselectorÚselectÚ return_valuer ÚloopÚset_event_loopr©Ú __class__r r r%5s     z BaseSelectorEventLoopTests.setUpcCsZt ¡}t ¡|j_d|jj_|j |t ¡¡}| |t ¡|j  ¡t |ƒt |ƒdS)NF) rrr)Ú add_readerÚ _is_coroutineZ_make_socket_transportr ÚProtocolÚassertIsInstancerr Úreprr")rÚmr!r r r Útest_make_socket_transport<s    z5BaseSelectorEventLoopTests.test_make_socket_transportNz No ssl modulec CsTt ¡}t ¡|j_d|jj_t ¡|j_t ¡|j_t ¡|j_|j ¡}t   ¡f|j  |t   ¡||¡}| td¡| ¡Wdƒn1s–0Yt  |j¡Wdƒn1sÀ0Y| | ¡¡| ¡| ¡| | ¡¡| ¡| ¡| | ¡¡|jj}| d| ¡¡| d| ¡¡| ¡t  |j¡dS)NFzSSL transport.*not.*initializedÚsslr!)rrr)Ú _add_readerr.Ú _add_writerÚ_remove_readerÚ_remove_writerÚ create_futureÚ test_utilsÚdisable_loggerÚ_make_ssl_transportr r/ZassertRaisesRegexÚ RuntimeErrorÚ is_readingÚ run_brieflyÚ assertTrueÚ pause_readingÚ assertFalseÚresume_readingr,rZassertInÚlowerr )rr2Úwaiterr!Ú class_namer r r Útest_make_ssl_transportIs8        ÿÿ&*z2BaseSelectorEventLoopTests.test_make_ssl_transportzasyncio.selector_events.sslzasyncio.sslproto.sslcCsxt ¡}t ¡|j_t ¡|j_t ¡|j_t ¡|j_| t¡"|j  ||||¡Wdƒn1sj0YdSr) rrr)r-Ú add_writerÚ remove_readerÚ remove_writerÚ assertRaisesr=r<)rr2r r r Ú)test_make_ssl_transport_without_ssl_erroros     zDBaseSelectorEventLoopTests.test_make_ssl_transport_without_ssl_errorc CshGdd„dtƒ}||jƒ|_| |j¡|jj}d|j_|jj}d|j_t  ¡}|j_ |jj   ¡t  ¡|j_ }|  |j ¡¡|j  ¡| |j ¡¡| |jj ¡| |jj¡| |jj¡|j  ¡|j  ¡|j  ¡| d¡|j  ¡|j  ¡|j ¡}| t|jj¡| t|jj|¡d}dd„}| t|jj||¡| t|jj||¡dS)Nc@seZdZdd„ZdS)z8BaseSelectorEventLoopTests.test_close..EventLoopcSs&t ¡|_t ¡|_|jd7_dSrrrr r r r|s  zHBaseSelectorEventLoopTests.test_close..EventLoop._make_self_pipeN)rrrrr r r r Ú EventLoop{srMérrcSsdSrr r r r r Úcallback¡sz7BaseSelectorEventLoopTests.test_close..callback)rr&r)r*rÚfilenor(rrrr7Ú _selectorr rBZ is_closedr@Ú assertIsNoneÚassert_called_withr9rKr=Z run_foreverÚrun_until_completer-rH) rrMZssockZcsockrIr&ÚfÚfdrOr r r Ú test_closezs:           z%BaseSelectorEventLoopTests.test_closecCs<t ¡|j_|jj ¡d|j_|j ¡| |jj¡dSr)rrr)rIrQr rRrr r r Útest_close_no_selector¦s    z1BaseSelectorEventLoopTests.test_close_no_selectorcCs t|jjj_| |j ¡¡dSr)ÚBlockingIOErrorr)rÚrecvÚ side_effectrRÚ_read_from_selfrr r r Útest_read_from_self_tryagain­s z7BaseSelectorEventLoopTests.test_read_from_self_tryagaincCs t|jjj_| t|jj¡dSr)ÚOSErrorr)rrZr[rKr\rr r r Útest_read_from_self_exception±s z8BaseSelectorEventLoopTests.test_read_from_self_exceptioncCsHt|jjj_t ¡ | |j ¡¡Wdƒn1s:0YdSr) rYr)rÚsendr[r:r;rRÚ_write_to_selfrr r r Útest_write_to_self_tryagainµs  z6BaseSelectorEventLoopTests.test_write_to_self_tryagaincCs"tƒ|jjj_| t|jj¡dSr)r=r)rr`r[rKrarr r r Útest_write_to_self_exceptionºsz7BaseSelectorEventLoopTests.test_write_to_self_exceptioncCs„t|jjj_dd„}|j d|¡| |jjjj¡|jjjj d\}}\}}|  d|¡|  t j |¡|  ||j ¡| |¡dS)NcSsdS©NTr r r r r ÚÁóz.rr)ÚKeyErrorr)rQÚget_keyr[r-r@ÚregisterÚcalledÚ call_argsÚ assertEqualÚ selectorsÚ EVENT_READÚ _callbackrR©rÚcbrVÚmaskÚrÚwr r r Útest_add_reader¿s  z*BaseSelectorEventLoopTests.test_add_readercCsÎt ¡}t ¡}t ddtj||f¡|jjj_dd„}|j  d|¡|  |j j ¡|  |jjjj ¡|  |jjjj ¡|jjjjd\}}\}}| d|¡| tjtjB|¡| ||j¡| ||¡dS)NrcSsdSrdr r r r r reÐrfzEBaseSelectorEventLoopTests.test_add_reader_existing..r)rrrmÚ SelectorKeyÚ EVENT_WRITEr)rQrhr(r-r@ÚcancelrjrBriÚmodifyrkrlrnro©rÚreaderÚwriterrqrVrrrsrtr r r Útest_add_reader_existingËsÿ  z3BaseSelectorEventLoopTests.test_add_reader_existingcCs¸t ¡}t ddtjd|f¡|jjj_dd„}|j  d|¡|  |jjj j ¡|  |jjjj ¡|jjjjd\}}\}}| d|¡| tjtjB|¡| ||j¡| ||¡dS)NrcSsdSrdr r r r r reàrfzLBaseSelectorEventLoopTests.test_add_reader_existing_writer..r)rrrmrvrwr)rQrhr(r-rBrirjr@ryrkrlrnro)rr|rqrVrrrsrtr r r Útest_add_reader_existing_writerÜsÿ  z:BaseSelectorEventLoopTests.test_add_reader_existing_writercCsBt ddtjd¡|jjj_| |j d¡¡|  |jjj j ¡dS©Nr)NN) rmrvrnr)rQrhr(rBrIr@Ú unregisterrjrr r r Útest_remove_readerës  ÿ z-BaseSelectorEventLoopTests.test_remove_readercCs€t ¡}t ¡}t ddtjtjB||f¡|jjj_ |  |j  d¡¡|  |jjj j¡| dtjd|ff|jjjjd¡dS©Nrr)rrrmrvrnrwr)rQrhr(r@rIrBr€rjrlryrk©rr{r|r r r Útest_remove_reader_read_writeòsþ  ÿþz8BaseSelectorEventLoopTests.test_remove_reader_read_writecCs"t|jjj_| |j d¡¡dSr)rgr)rQrhr[rBrIrr r r Útest_remove_reader_unknowns  ÿz5BaseSelectorEventLoopTests.test_remove_reader_unknowncCs„t|jjj_dd„}|j d|¡| |jjjj¡|jjjj d\}}\}}|  d|¡|  t j |¡|  |¡|  ||j¡dS)NcSsdSrdr r r r r rerfz.rr)rgr)rQrhr[rHr@rirjrkrlrmrwrRrorpr r r Útest_add_writers   z*BaseSelectorEventLoopTests.test_add_writercCsÎt ¡}t ¡}t ddtj||f¡|jjj_dd„}|j  d|¡|  |j j ¡|  |jjjj ¡|  |jjjj ¡|jjjjd\}}\}}| d|¡| tjtjB|¡| ||¡| ||j¡dS)NrcSsdSrdr r r r r rerfzEBaseSelectorEventLoopTests.test_add_writer_existing..r)rrrmrvrnr)rQrhr(rHr@rxrjrBriryrkrlrwrorzr r r Útest_add_writer_existingsÿ   z3BaseSelectorEventLoopTests.test_add_writer_existingcCsBt ddtjd¡|jjj_| |j d¡¡|  |jjj j ¡dSr) rmrvrwr)rQrhr(rBrJr@r€rjrr r r Útest_remove_writer"s  ÿ z-BaseSelectorEventLoopTests.test_remove_writercCs€t ¡}t ¡}t ddtjtjB||f¡|jjj_ |  |j  d¡¡|  |jjj j¡| dtj|dff|jjjjd¡dSr‚)rrrmrvrnrwr)rQrhr(r@rJrBr€rjrlryrkrƒr r r Útest_remove_writer_read_write)sþ  ÿþz8BaseSelectorEventLoopTests.test_remove_writer_read_writecCs"t|jjj_| |j d¡¡dSr)rgr)rQrhr[rBrJrr r r Útest_remove_writer_unknown7s  ÿz5BaseSelectorEventLoopTests.test_remove_writer_unknownc Csbt ¡}d|_t ¡|j_|j t ddtj|df¡tjfg¡|  |jjj ¡|jj  |¡dS©NFr) rrÚ _cancelledr)Ú _add_callbackÚ_process_eventsrmrvrnr@rjrS©rr{r r r Útest_process_events_read<s ÿþÿz3BaseSelectorEventLoopTests.test_process_events_readc CsRt ¡}d|_t ¡|j_|j t ddtj|df¡tjfg¡|jj  d¡dS©NTr) rrÚ cancelledr)r7rŽrmrvrnrSrr r r Ú"test_process_events_read_cancelledHs ÿþÿz=BaseSelectorEventLoopTests.test_process_events_read_cancelledc CsRt ¡}d|_t ¡|j_|j t ddtjd|f¡tjfg¡|jj  |¡dSr‹) rrrŒr)rrŽrmrvrwrS©rr|r r r Útest_process_events_writeSs  ÿþÿz4BaseSelectorEventLoopTests.test_process_events_writec CsRt ¡}d|_t ¡|j_|j t ddtjd|f¡tjfg¡|jj  d¡dSr‘) rrr’r)r8rŽrmrvrwrSr”r r r Ú#test_process_events_write_cancelled^s  ÿþÿz>BaseSelectorEventLoopTests.test_process_events_write_cancelledcCst ¡}t ¡t ¡f|j_d}tjj}||jdƒ&}|jjt ¡||dWdƒn1s`0Y|j t   d¡¡|  |jj |¡dS)NédZ_accept_connection2)Úbacklogr) rrÚacceptr(ÚpatchÚobjectr)Z_accept_connectionrTr ÚsleeprlÚ call_count)rÚsockr˜Zmock_objZ accept2_mockr r r Útest_accept_connection_multipleis ÿ$z:BaseSelectorEventLoopTests.test_accept_connection_multiple)#rrrr%r3ÚunittestZskipIfr4rGrršrLrWrXr]r_rbrcrur}r~rr„r…r†r‡rˆr‰rŠrr“r•r–rŸÚ __classcell__r r r+r r#3s:   %   ,      r#cs€eZdZ‡fdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z e   d¡dd„ƒZ e   d¡dd„ƒZ dd„Zdd„Z‡ZS)ÚSelectorTransportTestscs>tƒ ¡| ¡|_t tj¡|_t   t j ¡|_ d|j j _dS©NrN)r$r%Ú new_test_loopr)r:Úmake_test_protocolr r/ÚprotocolrrÚsocketržrPr(rr+r r r%}s   zSelectorTransportTests.setUpcCs$t|j|j|jdƒ}| t|¡|Sr)rr)ržr¦Ú addCleanupr"©rr!r r r Úcreate_transport„s ÿ z'SelectorTransportTests.create_transportcCs:| ¡}| |j|j¡| |j|j¡| |jd¡dSr£)rªZassertIsÚ_loopr)rržZ_sock_fd©rÚtrr r r Ú test_ctorŠsz SelectorTransportTests.test_ctorcCs*| ¡}t ¡|_| ¡|j d¡dSr)rªrrÚ _force_closeÚabortrSr¬r r r Ú test_aborts z!SelectorTransportTests.test_abortcCsz| ¡}| ¡| | ¡¡| d|jjd¡|j d¡| |j d¡| ¡| |j d¡| d|jjd¡dS)NrrN) rªr r@Ú is_closingrlr)Úremove_reader_countr¦Úconnection_lostÚ _conn_lostr¬r r r rW—s z!SelectorTransportTests.test_closecCsJ| ¡}|j d¡| ¡| |jj¡t |j¡| |j j j ¡dS©Nódata) rªÚ_bufferÚextendr rBr)Úreadersr:r?r¦r´rjr¬r r r Útest_close_write_buffer¤s   z.SelectorTransportTests.test_close_write_buffercCs¨| ¡}|j d¡|j dtj¡|j dtj¡| d¡|  |  ¡¡|  |jt ƒ¡|  |jj¡|  |jj¡| d¡|  |jj¡|  d|jjd¡dS)Nó1rNr)rªr¸r¹r)r5rÚsentinelr6r¯r@r²rlrrBrºÚwritersr³r¬r r r Útest_force_close­s   z'SelectorTransportTests.test_force_closezasyncio.log.logger.errorcCs:tƒ}| ¡}t ¡|_| |¡| ¡|j |¡dSr)r^rªrrr¯Ú _fatal_errorÚassert_not_calledrS)rÚm_excÚexcr­r r r Útest_fatal_error¾s   z'SelectorTransportTests.test_fatal_errorcCs\Gdd„dtƒ}|ƒ}| ¡}t ¡|_| |¡|jt d¡|t t fd|j |¡dS)Nc@s eZdZdS)zISelectorTransportTests.test_fatal_error_custom_exception..MyErrorN©rrrr r r r ÚMyErrorËsrÆú1Fatal error on transport protocol:.* transport:.*©Úexc_info) Ú Exceptionrªrrr¯rÀrSr:Ú MockPatternÚMOCK_ANY)rrÂrÆrÃr­r r r Ú!test_fatal_error_custom_exceptionÉs  ÿýz8SelectorTransportTests.test_fatal_error_custom_exceptioncCsrtƒ}| ¡}| |j¡| |j¡| |¡|jj |¡|j j  ¡|  |j ¡|  |j¡|  |j¡dSr) r^rªZassertIsNotNoneZ _protocolr«Z_call_connection_lostr¦r´rSržr rRr)rrÃr­r r r Útest_connection_lostÙs      z+SelectorTransportTests.test_connection_lostcCsv| ¡}|j d¡| dtj¡| |jj¡|  d¡| |  ¡¡|  |jj¡| dtj¡|  |jj¡dS)Nr¼rN) rªr¸r¹r5rr½r@r)rºr¯r²rBr¬r r r Útest__add_readerçs  z'SelectorTransportTests.test__add_reader)rrrr%rªr®r±rWr»r¿rršrÄrÍrÎrÏr¡r r r+r r¢{s     r¢cs‚eZdZ‡fdd„ZdQdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z e  d¡dd„ƒZe  d¡dd„ƒZe  d¡dd„ƒZe  d¡dd„ƒZdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Ze  d3¡d4d5„ƒZd6d7„Zd8d9„Zd:d;„Z dd?„Z"d@dA„Z#dBdC„Z$dDdE„Z%dFdG„Z&dHdI„Z'dJdK„Z(dLdM„Z)e  dN¡dOdP„ƒZ*‡Z+S)RÚSelectorSocketTransportTestscsDtƒ ¡| ¡|_t tj¡|_t   t j ¡|_ d|_ |j j_dSr£)r$r%r¤r)r:r¥r r/r¦rrr§ržÚsock_fdrPr(rr+r r r%ùs   z"SelectorSocketTransportTests.setUpNcCs&t|j|j|j|d}| t|¡|S©N©rE©rr)ržr¦r¨r"©rrEr!r r r Úsocket_transports  ÿ z-SelectorSocketTransportTests.socket_transportcCsP|j ¡}|j|d}|j |¡|j d|j¡t |j¡|jj   |¡dS©NrÓrN© r)r9rÖrTÚ assert_readerÚ _read_readyr:r?r¦Zconnection_maderS©rrEr­r r r r®s     z&SelectorSocketTransportTests.test_ctorcCs4|j ¡}|j|d|j |¡| | ¡¡dSrÒ)r)r9rÖrTrRÚresult)rrEr r r Útest_ctor_with_waiters   z2SelectorSocketTransportTests.test_ctor_with_waitercCsÔ| ¡}t |j¡| |j¡| | ¡¡|j d|j ¡|  ¡|  ¡| |j¡| | ¡¡|j  d¡|  ¡|  ¡| |j¡| | ¡¡|j d|j ¡|  ¡| | ¡¡|j  d¡dSr£)rÖr:r?r)rBZ_pausedr@r>rÙrÚrAZassert_no_readerrCr r¬r r r Útest_pause_resume_readings$     z6SelectorSocketTransportTests.test_pause_resume_readingcCsd| ¡}t ¡|_t ¡|_t ¡|j_tƒ|jj _ d|j j _ | ¡|jj  ¡| |jj¡dS©Nrf)rÖrrr rÀr)Úcall_exception_handlerÚ LookupErrorr¦Ú eof_receivedr[ržrZr(rÚrSr@rjr©r r r Útest_read_eof_received_error-s      z9SelectorSocketTransportTests.test_read_eof_received_errorcCs^| ¡}t ¡|_t ¡|j_tƒ|jj_ d|j j _ |  ¡| |jj¡| |jjj¡dSr¶)rÖrrrÀr)ràrár¦Ú data_receivedr[ržrZr(rÚr@rjr©r r r Útest_data_received_error<s    z5SelectorSocketTransportTests.test_data_received_errorcCs,| ¡}d|jj_| ¡|jj d¡dSr¶)rÖržrZr(rÚr¦rärSr©r r r Útest_read_readyIs z,SelectorSocketTransportTests.test_read_readycCs>| ¡}t ¡|_d|jj_| ¡|jj   ¡|j  ¡dSrß) rÖrrr ržrZr(rÚr¦rârSr©r r r Útest_read_ready_eofQs    z0SelectorSocketTransportTests.test_read_ready_eofcCsL| ¡}t ¡|_d|jj_d|jj_|  ¡|jj  ¡|  |jj ¡dS)NrfT) rÖrrr ržrZr(r¦rârÚrSrBrjr©r r r Útest_read_ready_eof_keep_open[s    z:SelectorSocketTransportTests.test_read_ready_eof_keep_openúlogging.exceptioncCs6t|jj_| ¡}t ¡|_| ¡|  |jj ¡dSr) rYržrZr[rÖrrrÀrÚrBrj©rrÂr!r r r Útest_read_ready_tryagainfs   z5SelectorSocketTransportTests.test_read_ready_tryagaincCs6t|jj_| ¡}t ¡|_| ¡|  |jj ¡dSr) ÚInterruptedErrorržrZr[rÖrrrÀrÚrBrjrêr r r Ú$test_read_ready_tryagain_interruptedps   zASelectorSocketTransportTests.test_read_ready_tryagain_interruptedcCsbtƒ}|jj_| ¡}t ¡|_t  ¡|  ¡Wdƒn1sH0Y|j  |¡dSr) ÚConnectionResetErrorržrZr[rÖrrr¯r:r;rÚrS©rrÂÚerrr!r r r Útest_read_ready_conn_resetzs   &z7SelectorSocketTransportTests.test_read_ready_conn_resetcCs<tƒ}|jj_| ¡}t ¡|_| ¡|j  |d¡dS©Nz$Fatal read error on socket transport) r^ržrZr[rÖrrrÀrÚrSrïr r r Útest_read_ready_err„s þz0SelectorSocketTransportTests.test_read_ready_errcCs6d}t|ƒ|jj_| ¡}| |¡|jj |¡dSr¶)Úlenržr`r(rÖÚwriterS©rÚdatar!r r r Ú test_writes  z'SelectorSocketTransportTests.test_writecCsJtdƒ}t|ƒ|jj_| ¡}| |¡|jj |¡| |tdƒ¡dSr¶) rrôržr`r(rÖrõrSrlrör r r Útest_write_bytearray˜s  z1SelectorSocketTransportTests.test_write_bytearraycCs:tdƒ}t|ƒ|jj_| ¡}| |¡|jj |¡dSr¶)Ú memoryviewrôržr`r(rÖrõrSrör r r Útest_write_memoryview¡s  z2SelectorSocketTransportTests.test_write_memoryviewcCsF| ¡}|j d¡| d¡| |jjj¡| t dgƒ|j¡dS)Nr·rf© rÖr¸r¹rõrBržr`rjrlrr©r r r Útest_write_no_data©s   z/SelectorSocketTransportTests.test_write_no_datacCsH| ¡}|j d¡| d¡| |jjj¡| t ddgƒ|j¡dS)Nódata1ódata2rür©r r r Útest_write_buffer°s  ÿz.SelectorSocketTransportTests.test_write_buffercCsHd}d|jj_| ¡}| |¡|j d|j¡| t dgƒ|j ¡dS©Nr·érNsta) ržr`r(rÖrõr)Ú assert_writerÚ _write_readyrlrr¸rör r r Útest_write_partial¸s   z/SelectorSocketTransportTests.test_write_partialcCs\tdƒ}d|jj_| ¡}| |¡|j d|j¡|  t dgƒ|j ¡|  |tdƒ¡dSr) rržr`r(rÖrõr)rrrlrr¸rör r r Útest_write_partial_bytearrayÂs  z9SelectorSocketTransportTests.test_write_partial_bytearraycCsLtdƒ}d|jj_| ¡}| |¡|j d|j¡|  t dgƒ|j ¡dSr) rúržr`r(rÖrõr)rrrlrr¸rör r r Útest_write_partial_memoryviewÍs   z:SelectorSocketTransportTests.test_write_partial_memoryviewcCsRd}d|jj_d|jj_| ¡}| |¡|j d|j¡|  t dgƒ|j ¡dS©Nr·rrN) ržr`r(rPrÖrõr)rrrlrr¸rör r r Útest_write_partial_none×s   z4SelectorSocketTransportTests.test_write_partial_nonecCsHt|jj_d}| ¡}| |¡|j d|j¡|  t dgƒ|j ¡dS©Nr·rN) rYržr`r[rÖrõr)rrrlrr¸rör r r Útest_write_tryagainâs   z0SelectorSocketTransportTests.test_write_tryagainúasyncio.selector_events.loggercCs®tƒ}|jj_d}| ¡}t ¡|_| |¡|j  |d¡d|_ |j  ¡| |¡|  |jjj ¡| |j d¡| |¡| |¡| |¡| |¡|j  d¡dS)Nr·ú%Fatal write error on socket transportrrúsocket.send() raised exception.)r^ržr`r[rÖrrrÀrõrSrµZ reset_mockrBrjrlÚwarning)rÚm_logrðr÷r!r r r Útest_write_exceptionìs&  þ      z1SelectorSocketTransportTests.test_write_exceptioncCs| ¡}| t|jd¡dS)NÚstr)rÖrKÚ TypeErrorrõr©r r r Útest_write_strsz+SelectorSocketTransportTests.test_write_strcCs:| ¡}| ¡| |jd¡| d¡| |jd¡dS)Nrr·r)rÖr rlrµrõr©r r r Útest_write_closings  z/SelectorSocketTransportTests.test_write_closingcCs`d}t|ƒ|jj_| ¡}|j |¡|j d|j ¡|  ¡|  |jjj ¡|  |jj ¡dSr )rôržr`r(rÖr¸r¹r)r6rr@rjrBr¾rör r r Útest_write_readys z-SelectorSocketTransportTests.test_write_readycCs€d}t|ƒ|jj_| ¡}d|_|j |¡|j  d|j ¡|  ¡|  |jjj ¡|  |jj¡|jj ¡|jj d¡dS)Nr·TrN)rôržr`r(rÖÚ_closingr¸r¹r)r6rr@rjrBr¾r rSr¦r´rör r r Útest_write_ready_closings  z5SelectorSocketTransportTests.test_write_ready_closingcCs| ¡}| t|j¡dSr)rÖrKÚAssertionErrorrr©r r r Útest_write_ready_no_data'sz5SelectorSocketTransportTests.test_write_ready_no_datacCsbd}d|jj_| ¡}|j |¡|j d|j¡| ¡|j  d|j¡|  t dgƒ|j¡dSr© ržr`r(rÖr¸r¹r)r6rrrlrrör r r Útest_write_ready_partial,s  z5SelectorSocketTransportTests.test_write_ready_partialcCsbd}d|jj_| ¡}|j |¡|j d|j¡| ¡|j  d|j¡|  t dgƒ|j¡dSrrrör r r Útest_write_ready_partial_none7s  z:SelectorSocketTransportTests.test_write_ready_partial_nonecCs`t|jj_| ¡}tddgƒ|_|j d|j ¡|  ¡|j  d|j ¡|  tdgƒ|j¡dS)NrþrÿrNs data1data2) rYržr`r[rÖrr¸r)r6rrrlr©r r r Útest_write_ready_tryagainBs z6SelectorSocketTransportTests.test_write_ready_tryagaincCsHtƒ}|jj_| ¡}t ¡|_|j  d¡|  ¡|j  |d¡dS)Nr·r ) r^ržr`r[rÖrrrÀr¸r¹rrS©rrðr!r r r Útest_write_ready_exceptionMs  þz7SelectorSocketTransportTests.test_write_ready_exceptioncCsT| ¡}| | ¡¡| ¡|jj tj¡| ¡|  |jjj d¡|  ¡dSr) rÖr@Z can_write_eofÚ write_eofržÚshutdownrSr§ÚSHUT_WRrlrr r¬r r r Útest_write_eofXsz+SelectorSocketTransportTests.test_write_eofcCs–| ¡}t|jj_| d¡| ¡| |jt dgƒ¡|  |j ¡|  |jj j¡dd„|jj_| ¡|  |jjj¡|jj  tj¡| ¡dS)Nr·cSsdS)Nér )Ú_r r r reirfzDSelectorSocketTransportTests.test_write_eof_buffer..)rÖrYržr`r[rõr!rlr¸rr@Ú_eofrBr"rjrrSr§r#r r¬r r r Útest_write_eof_bufferas   z2SelectorSocketTransportTests.test_write_eof_buffercCs.| ¡}| ¡|j t d¡¡| ¡dS©Nr)rÖr r)rTr rœr!r¬r r r Útest_write_eof_after_closeosz7SelectorSocketTransportTests.test_write_eof_after_closezasyncio.base_events.loggercCs0t ¡}|j_| ¡}| ¡| |j¡dSr)rrr)r8rÖr rSrÑ)rrrJr!r r r Ú"test_transport_close_remove_writerusz?SelectorSocketTransportTests.test_transport_close_remove_writer)N),rrrr%rÖr®rÝrÞrãrårærçrèrršrërírñrórørùrûrýrrrrr r rrrrrrrrrr r$r(r*r+r¡r r r+r rÐ÷sX                       rÐcs¶eZdZ‡fdd„Zd!dd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z e d¡dd„ƒZe d¡dd„ƒZe d¡dd„ƒZe d¡dd „ƒZ‡ZS)"Ú,SelectorSocketTransportBufferedProtocolTestscs`tƒ ¡ˆ ¡ˆ_t tj¡ˆ_t dƒˆ_ ‡fdd„ˆjj _ t  tj¡ˆ_dˆ_ˆjj_dS)NrcsˆjSr©Úbuf©Úhintrr r re†rfzDSelectorSocketTransportBufferedProtocolTests.setUp..rN)r$r%r¤r)r:r¥r ÚBufferedProtocolr¦rr.Ú get_bufferr[rrr§ržrÑrPr(rr+rr r%€s   z2SelectorSocketTransportBufferedProtocolTests.setUpNcCs&t|j|j|j|d}| t|¡|SrÒrÔrÕr r r rÖ‹s  ÿ z=SelectorSocketTransportBufferedProtocolTests.socket_transportcCsP|j ¡}|j|d}|j |¡|j d|j¡t |j¡|jj   |¡dSr×rØrÛr r r r®‘s     z6SelectorSocketTransportBufferedProtocolTests.test_ctorcCsd| ¡}t ¡|_t ¡|j_tƒ|jj_ |  ¡|  |jj ¡|  |jjj ¡|  |jjj ¡dSr)rÖrrrÀr)ràrár¦r2r[rÚr@rjrBÚbuffer_updatedr©r r r Útest_get_buffer_erroršs   zBSelectorSocketTransportBufferedProtocolTests.test_get_buffer_errorcCsf| ¡}t ¡|_t ¡|j_dd„|jj_|  ¡|  |jj ¡|  |jjj ¡|  |jj j ¡dS)NcSstdƒSr))rr/r r r re¬rfzXSelectorSocketTransportBufferedProtocolTests.test_get_buffer_zerosized..)rÖrrrÀr)ràr¦r2r[rÚr@rjrBr3r©r r r Útest_get_buffer_zerosized§s  zFSelectorSocketTransportBufferedProtocolTests.test_get_buffer_zerosizedcs’t tj¡|_| ¡}d|jj_|  ¡|jj   d¡t tj ¡}t dƒ‰‡fdd„|j_| |¡d|jj_|  ¡|j  d¡|j  d¡dS)Nr·r%csˆSrr r/r-r r reÁrfzUSelectorSocketTransportBufferedProtocolTests.test_proto_type_switch..é éÿÿÿÿ)r:r¥r r/r¦rÖržrZr(rÚrärSr1rr2r[Z set_protocolÚ recv_intor3)rr!Z buf_protor r-r Útest_proto_type_switch´s     zCSelectorSocketTransportBufferedProtocolTests.test_proto_type_switchcCsn| ¡}t ¡|_t ¡|j_tƒ|jj_ d|j j _ |  ¡| |jj¡| |jjj¡| |jjj¡dS)Nr6)rÖrrrÀr)ràrár¦r3r[ržr8r(rÚr@rjr2r©r r r Útest_buffer_updated_errorËs    zFSelectorSocketTransportBufferedProtocolTests.test_buffer_updated_errorcCsd| ¡}t ¡|_t ¡|_t ¡|j_tƒ|jj _ d|j j _ | ¡|jj  ¡| |jj¡dSr))rÖrrr rÀr)ràrár¦râr[ržr8r(rÚrSr@rjr©r r r rãÙs      zISelectorSocketTransportBufferedProtocolTests.test_read_eof_received_errorcCs:| ¡}d|jj_| ¡|jj d¡|jj d¡dS)Nr6r7) rÖržr8r(rÚr¦r2rSr3r©r r r ræès  z| ¡}t ¡|_d|jj_| ¡|jj   ¡|j  ¡dSr)) rÖrrr ržr8r(rÚr¦rârSr©r r r rçñs    z@SelectorSocketTransportBufferedProtocolTests.test_read_ready_eofcCsL| ¡}t ¡|_d|jj_d|jj_|  ¡|jj  ¡|  |jj ¡dS)NrT) rÖrrr ržr8r(r¦rârÚrSrBrjr©r r r rèûs    zJSelectorSocketTransportBufferedProtocolTests.test_read_ready_eof_keep_openrécCs6t|jj_| ¡}t ¡|_| ¡|  |jj ¡dSr) rYržr8r[rÖrrrÀrÚrBrjrêr r r rës   zESelectorSocketTransportBufferedProtocolTests.test_read_ready_tryagaincCs6t|jj_| ¡}t ¡|_| ¡|  |jj ¡dSr) rìržr8r[rÖrrrÀrÚrBrjrêr r r rís   zQSelectorSocketTransportBufferedProtocolTests.test_read_ready_tryagain_interruptedcCsbtƒ}|jj_| ¡}t ¡|_t  ¡|  ¡Wdƒn1sH0Y|j  |¡dSr) rîržr8r[rÖrrr¯r:r;rÚrSrïr r r rñs   &zGSelectorSocketTransportBufferedProtocolTests.test_read_ready_conn_resetcCs<tƒ}|jj_| ¡}t ¡|_| ¡|j  |d¡dSrò) r^ržr8r[rÖrrrÀrÚrSrïr r r ró$s þz@SelectorSocketTransportBufferedProtocolTests.test_read_ready_err)N)rrrr%rÖr®r4r5r9r:rãrærçrèrršrërírñrór¡r r r+r r,~s&          r,cseZdZ‡fdd„Zd>dd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Ze d¡dd „ƒZd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Ze d9¡d:d;„ƒZ e d9¡d.MyExceptionNrÅr r r r Ú MyExceptionPsror`r<rÇrÈ) rÊr?rÀrBr¦rDrjrSr:rËrÌ)rrÂror!rðr r r Ú'test_fatal_error_connected_custom_errorNs  ÿýzFSelectorDatagramTransportTests.test_fatal_error_connected_custom_error)N)#rrrr%r?rærërórErHrIrJrPrSrWrXrZrršr]r_rarbrdrerfrgrhrirkrlrmrnrpr¡r r r+r r;1s@                   r;Ú__main__)r )rmr§r rr4Ú ImportErrorr Zasyncio.selector_eventsrrrrZtest.test_asynciorr:ÚANYrÌr r rr"ZTestCaser#r¢rÐr,r;rÚmainr r r r ÚsB           J| 4-