o =?h/@sddlZddlmZddlmZddlmZmZmZm Z m Z m Z e j Z e jZGdddeZGdddejZGd d d ejZed krJedSdS) N)catch_warnings) is_instance) MagicMockMockpatchsentinel mock_opencallc@s eZdZdS)SampleExceptionN)__name__ __module__ __qualname__rrF/opt/alt/python310/lib64/python3.10/unittest/test/testmock/testwith.pyr s r c@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS)WithTestcCsRtdttj|ttjdWdn1swY|ttjdSN %s.something unpatched)rr r Something2 assertEqual something Somethingselfrrrtest_with_statementszWithTest.test_with_statementc Cst|t$tdttj |ttjdt1swYWdn1s,wY|ttjdSr) assertRaisesr rr rrrrrrrrrtest_with_statement_exceptions z&WithTest.test_with_statement_exceptioncCs^tdt}|t|d|t|tdWdn1s!wY|ttjdS)Nrrzpatching wrong type) rr rr assertTruerrrrrmock_somethingrrrtest_with_statement_as s zWithTest.test_with_statement_ascCsdGdddt}|j}t|d||j|dWdn1s$wY||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 CstddBtdt,}tdt}|t|d|t|dWdn1s,wYWdn1s;wYWdn1sJwY|ttj|ttjdS)NT)recordr%s.something_elser) rrr rrsomething_elserr SomethingElserrZmock_something_elserrrtest_with_statement_nested1s z#WithTest.test_with_statement_nestedcCs`tdttj}|t|d||tjdWdn1s"wY|ttjdS)Nrrz wrong patchrr rZPatchedrrrrrrrtest_with_statement_specified<s z&WithTest.test_with_statement_specifiedcCspt}t|_t|_d|j_|}|||jjWdn1s$wY|j|jddddS)NF)r __enter____exit__ return_valuerassert_called_with)rmockmrrrtestContextManagerMockingCs z"WithTest.testContextManagerMockingc Csxt}|t| ddWdn1swYWdn1s)wY|j||jjdS)Nr!)rr TypeErrorr-r0rr.Zcalled)rr1rrr$test_context_manager_with_magic_mockOs   z-WithTest.test_context_manager_with_magic_mockc Cstdttj3}|t|dtdt}|t|dWdn1s(wY|t|dWdn1s>wY|ttjddS)Nrrzrestored with wrong instancez not restoredr+)rrZ mock_againrrr"test_with_statement_same_attributeYs z+WithTest.test_with_statement_same_attributec Cstdt,}|t|dtdt}|t|dWdn1s&wYWdn1s5wY|ttj|ttjdS)Nrrr&)rr rrr'rrr(r)rrrtest_with_statement_imbricatedfsz'WithTest.test_with_statement_imbricatedc Csi}t|ddi||ddiWdn1swY||i|t%t|ddi ||dditd1sFwYWdn1sUwY||idS)NabZKonrad)rdictrr NameError)rr!rrrtest_dict_context_managerrs  z"WithTest.test_dict_context_managerc CsGddd}|}tj|ddd6}tj|ddd }|Wdn1s*wY||jd||jd|Wdn1sKwY||jddS)Nc@seZdZddZdS)z5WithTest.test_double_patch_instance_method..CcSsdS)Nrrrrrfsz7WithTest.test_double_patch_instance_method..C.fN)r r r r>rrrrCs r?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,r3r6r7r8r=rBrrrrrs      rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdS) TestMockOpencCsZt}tdt|dd}|||tdWdn1s!wY|ddSN%s.openTZcreater!)rrr assertIsopenassert_called_once_withrr1Zpatchedrrrtest_mock_opens   zTestMockOpen.test_mock_openc Cst}|j}tdt|dd td }|Wdn1s#wYWdn1s2wYtdtttdddg}| |j || ||dSrD) rr/rr rHreadr r-r.r mock_callsrG)rr1handler>expected_callsrrrtest_mock_open_context_managers  z+TestMockOpen.test_mock_open_context_managerc Cst}tdt|dd8td }|Wdn1s wYtd }|Wdn1s8wYWdn1sGwYtdtttdddtdtttdddg}||j |dS)NrETrFr!bar) rrr rHrLr r-r.rrM)rr1r>rOrrr-test_mock_open_context_manager_multiple_timess     z:TestMockOpen.test_mock_open_context_manager_multiple_timescCsbt}t|tdt|dd}|||tdWdn1s%wY|ddSrD)rrrr rGrHrIrJrrrtest_explicit_mocks  zTestMockOpen.test_explicit_mockcCs\tdd}tdt|ddtd}|}Wdn1s!wY||ddS)Nr!Z read_datarETrFrQrrr rHrLrrr1hresultrrrtest_read_datas  zTestMockOpen.test_read_datacCstdd}tdt|ddtd}|}|}|}Wdn1s)wY||d||d||d ||d td d}tdt|ddtd}|}Wdn1siwY||d ||d dS) N foo bar baz rTrETrFrQfoo bar baz r!rrr rHreadliner)rr1rWline1line2line3rXrrrtest_readline_datas$        zTestMockOpen.test_readline_datacCstdd}tdt|ddtd}dd|D}Wdn1s$wY||d d ||d d ||d d||d|t t|WddS1s^wYdS)NrZrTrETrFrQcSg|]}|qSrr.0lrrr z6TestMockOpen.test_dunder_iter_data..rr[r@r\r]r^) rrr rHrr`r StopIterationnext)rr1rWlinesrrrtest_dunder_iter_datas   "z"TestMockOpen.test_dunder_iter_datacCstdd}tdt|ddtd}t|}t|}dd|D}Wdn1s,wY||d ||d ||d d ||d dS)NrZrTrETrFrQcSrerrrfrrrrirjz/TestMockOpen.test_next_data..r[r\rr]r^)rrr rHrmrr`)rr1rWrarbrnrrrtest_next_datas   zTestMockOpen.test_next_datacCstdd}tdt|ddtd}|}Wdn1s!wY||gdtdd}tdt|ddtd}|}Wdn1sOwY||gd dS) NrZrTrETrFrQ)r[r\r] foo bar baz)r[r\Zbazrrr rH readlinesrrVrrrtest_readlines_datas    z TestMockOpen.test_readlines_datac Cs~tdd}tdt|dd!tdd }|}Wdn1s#wYWdn1s2wY||ddS)NrTrETrFabcrbrU)rr1r>rXrrrtest_read_bytes s   zTestMockOpen.test_read_bytesc Cstdd}tdt|dd)tdd}|}|}|}Wdn1s+wYWdn1s:wY||d||d ||d dS) N abc def ghi rTrETrFrvrwabc def ghi r_)rr2r>rarbrcrrrtest_readline_bytess     z TestMockOpen.test_readline_bytesc Cstdd}tdt|dd!tdd }|}Wdn1s#wYWdn1s2wY||gddS) NryrTrETrFrvrw)rzr{r|rr)rr2r>rXrrrtest_readlines_bytes s   z!TestMockOpen.test_readlines_bytescCsd}t|d}||d|dd||d|dd|}||d|dd||d|dddS)NrqrT )rrrL)rZ some_datar1r>rrr!test_mock_open_read_with_argument(s z.TestMockOpen.test_mock_open_read_with_argumentcCstdd}tdt|ddtd}|}|}Wdn1s%wY||d||dd gtdd}tdt|ddtd}|}|}Wdn1s]wY||d||d dS) NrZrTrETrFrQr[r\r]zbar baz )rrr rHr`rsrrL)rr1rWrarestrrrtest_interleaved_reads5s      z#TestMockOpen.test_interleaved_readscCstdd}|}d|j_d|j_dg|j_||d||d||dg||d||ddS)Nr!rTrQ)rrLr/r`rsr)rr1rNrrrtest_overriding_return_valuesIs  z*TestMockOpen.test_overriding_return_valuesN)r r r rKrPrRrSrYrdrorprtrxr}r~rrrrrrrrCs        rC__main__)ZunittestwarningsrZunittest.test.testmock.supportrZ unittest.mockrrrrrr rrr(r' Exceptionr ZTestCaserrCr mainrrrrs   ~M