a dh/@sddlZddlmZddlmZddlmZmZmZm Z m Z m Z e j Z e jZGdddeZGdddejZGd d d ejZed kredS) N)catch_warnings) is_instance) MagicMockMockpatchsentinel mock_opencallc@s eZdZdS)SampleExceptionN)__name__ __module__ __qualname__rr@/opt/imh-python/lib/python3.9/unittest/test/testmock/testwith.pyr r c@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS)WithTestcCsRtdttj |ttjdWdn1s60Y|ttjdSN %s.something unpatched)rr r Something2 assertEqual something Somethingselfrrrtest_with_statements.zWithTest.test_with_statementc Cs|tVtdttj&|ttjdtWdn1sH0YWdn1sf0Y|ttjdSr) assertRaisesr rr rrrrrrrrrtest_with_statement_exceptions  Bz&WithTest.test_with_statement_exceptioncCs^tdt0}|t|d|t|tdWdn1sB0Y|ttjdS)Nrrzpatching wrong type) rr rr assertTruerrrrrmock_somethingrrrtest_with_statement_as s  "zWithTest.test_with_statement_ascCsdGdddt}|j}t|d ||j|dWdn1sH0Y||j|dS)Nc@seZdZdZdS)z6WithTest.test_patch_object_with_statement..FoofooN)r r r rrrrrFoo)sr#rr)objectrrZassertNotEqualr)rr#Zoriginalrrr test_patch_object_with_statement(s .z)WithTest.test_patch_object_with_statementc CstddtdtX}tdt,}|t|d|t|dWdn1sX0YWdn1sv0YWdn1s0Y|ttj|ttjdS)NT)recordr%s.something_elser) rrr rrsomething_elserr SomethingElserr Zmock_something_elserrrtest_with_statement_nested1s ^z#WithTest.test_with_statement_nestedcCs`tdttj.}|t|d||tjdWdn1sD0Y|ttjdS)Nrrz wrong patchrr rZPatchedrrrrrrrtest_with_statement_specified<s.z&WithTest.test_with_statement_specifiedcCspt}t|_t|_d|j_| }|||jjWdn1sH0Y|j|jddddS)NF)r __enter____exit__ return_valuerassert_called_with)rmockmrrrtestContextManagerMockingCs. z"WithTest.testContextManagerMockingc Csxt}|t<|ddWdn1s40YWdn1sR0Y|j||jjdS)Nr")rr TypeErrorr.r1rr/Zcalled)rr2rrr$test_context_manager_with_magic_mockOs  D z-WithTest.test_context_manager_with_magic_mockc Cstdttjf}|t|dtdt}|t|dWdn1sP0Y|t|dWdn1s|0Y|ttjddS)Nrrzrestored with wrong instancez not restoredr,)rr Z mock_againrrr"test_with_statement_same_attributeYs,"z+WithTest.test_with_statement_same_attributec CstdtX}|t|dtdt}|t|dWdn1sL0YWdn1sj0Y|ttj|ttjdS)Nrrr')rr rrr(rrr)r*rrrtest_with_statement_imbricatedfs@z'WithTest.test_with_statement_imbricatedc Csi}t|ddi ||ddiWdn1s:0Y||i|tXt|ddi(||dditdWdn1s0YWdn1s0Y||idS)NabZKonrad)rdictrr NameError)rr"rrrtest_dict_context_managerrs.  Dz"WithTest.test_dict_context_managerc CsGddd}|}tj|dddl}tj|ddd}|Wdn1sT0Y||jd||jd|Wdn1s0Y||jddS)Nc@seZdZddZdS)z5WithTest.test_double_patch_instance_method..CcSsdS)Nrrrrrfrz7WithTest.test_double_patch_instance_method..C.fN)r r r r?rrrrCsr@r?T)Zautospecr)rr$r?rZ call_count)rr@cZpatch1Zpatch2rrr!test_double_patch_instance_methods&&z*WithTest.test_double_patch_instance_methodN)r r r rrr!r%r+r-r4r7r8r9r>rCrrrrrs       rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdS) TestMockOpencCsZt}tdt|dd$}|||tdWdn1sB0Y|ddSN%s.openTZcreater")rrr assertIsopenassert_called_once_withrr2Zpatchedrrrtest_mock_opens  &zTestMockOpen.test_mock_openc Cst}|j}tdt|dd@td}|Wdn1sF0YWdn1sd0Ytdtttdddg}| |j || ||dSrE) rr0rr rIreadr r.r/r mock_callsrH)rr2handler?expected_callsrrrtest_mock_open_context_managers Dz+TestMockOpen.test_mock_open_context_managerc Cst}tdt|ddptd}|Wdn1s@0Ytd}|Wdn1sp0YWdn1s0Ytdtttdddtdtttdddg}||j |dS)NrFTrGr"bar) rrr rIrMr r.r/rrN)rr2r?rPrrr-test_mock_open_context_manager_multiple_timess & Dz:TestMockOpen.test_mock_open_context_manager_multiple_timescCsbt}t|tdt|dd$}|||tdWdn1sJ0Y|ddSrE)rrrr rHrIrJrKrrrtest_explicit_mocks  &zTestMockOpen.test_explicit_mockcCs\tdd}tdt|dd td}|}Wdn1sB0Y||ddS)Nr"Z read_datarFTrGrRrrr rIrMrrr2hresultrrrtest_read_datas  &zTestMockOpen.test_read_datacCstdd}tdt|dd0td}|}|}|}Wdn1sR0Y||d||d||d ||d td d}tdt|dd td}|}Wdn1s0Y||d ||d dS) N foo bar baz rUrFTrGrRfoo bar baz r"rrr rIreadliner)rr2rXline1line2line3rYrrrtest_readline_datas  &    & zTestMockOpen.test_readline_datacCstdd}tdt|dd&td}dd|D}Wdn1sH0Y||d d ||d d ||d d||d|tt|Wdn1s0YdS)Nr[rUrFTrGrRcSsg|]}|qSrr.0lrrr rz6TestMockOpen.test_dunder_iter_data..rr\rAr]r^r_) rrr rIrrar StopIterationnext)rr2rXlinesrrrtest_dunder_iter_datas , z"TestMockOpen.test_dunder_iter_datacCstdd}tdt|dd6td}t|}t|}dd|D}Wdn1sX0Y||d ||d ||d d ||d dS)Nr[rUrFTrGrRcSsg|]}|qSrrrfrrrrirz/TestMockOpen.test_next_data..r\r]rr^r_)rrr rIrlrra)rr2rXrbrcrmrrrtest_next_datas ,  zTestMockOpen.test_next_datacCstdd}tdt|dd td}|}Wdn1sB0Y||gdtdd}tdt|dd td}|}Wdn1s0Y||gd dS) Nr[rUrFTrGrR)r\r]r^ foo bar baz)r\r]Zbazrrr rI readlinesrrWrrrtest_readlines_datas & &z TestMockOpen.test_readlines_datac Cs~tdd}tdt|ddBtdd}|}Wdn1sF0YWdn1sd0Y||ddS)NrUrFTrGabcrbrV)rr2r?rYrrrtest_read_bytes s   DzTestMockOpen.test_read_bytesc Cstdd}tdt|ddRtdd(}|}|}|}Wdn1sV0YWdn1st0Y||d||d ||d dS) N abc def ghi rUrFTrGrurvabc def ghi r`)rr3r?rbrcrdrrrtest_readline_bytess  D  z TestMockOpen.test_readline_bytesc Cstdd}tdt|ddBtdd}|}Wdn1sF0YWdn1sd0Y||gddS) NrxrUrFTrGrurv)ryrzr{rq)rr3r?rYrrrtest_readlines_bytes s   Dz!TestMockOpen.test_readlines_bytescCsd}t|d}||d|dd||d|dd|}||d|dd||d|dddS)NrprU )rrrM)rZ some_datar2r?rrr!test_mock_open_read_with_argument(s z.TestMockOpen.test_mock_open_read_with_argumentcCstdd}tdt|dd(td}|}|}Wdn1sJ0Y||d||dd gtdd}tdt|dd(td}|}|}Wdn1s0Y||d||d dS) Nr[rUrFTrGrRr\r]r^zbar baz )rrr rIrarrrrM)rr2rXrbrestrrrtest_interleaved_reads5s &  & z#TestMockOpen.test_interleaved_readscCstdd}|}d|j_d|j_dg|j_||d||d||dg||d||ddS)Nr"rUrR)rrMr0rarrr)rr2rOrrrtest_overriding_return_valuesIs  z*TestMockOpen.test_overriding_return_valuesN)r r r rLrQrSrTrZrernrorsrwr|r}rrrrrrrrDs       rD__main__)ZunittestwarningsrZunittest.test.testmock.supportrZ unittest.mockrrrrrr rrr)r( Exceptionr ZTestCaserrDr mainrrrrs   ~M