U .c/@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__rrD/opt/alt/python38/lib64/python3.8/unittest/test/testmock/testwith.pyr sr c@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS)WithTestc Cs>tdttj|ttjdW5QRX|ttjdSN %s.something unpatched)rr r Something2 assertEqual something Somethingselfrrrtest_with_statementszWithTest.test_with_statementc CsZ|t8tdttj|ttjdtW5QRXW5QRX|ttjdSr) assertRaisesr rr rrrrrrrrrtest_with_statement_exceptions  z&WithTest.test_with_statement_exceptionc CsJtdt&}|t|d|t|tdW5QRX|ttjdS)Nrrzpatching wrong type) rr rr assertTruerrrrrmock_somethingrrrtest_with_statement_as s  zWithTest.test_with_statement_asc CsPGdddt}|j}t|d||j|dW5QRX||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 CstddRtdt:}tdt"}|t|d|t|dW5QRXW5QRXW5QRX|ttj|ttjdS)NT)recordr%s.something_elser) rrr rrsomething_elserr SomethingElserrZmock_something_elserrrtest_with_statement_nested1s "z#WithTest.test_with_statement_nestedc CsLtdttj$}|t|d||tjdW5QRX|ttjdS)Nrrz wrong patchrr rZPatchedrrrrrrrtest_with_statement_specified<sz&WithTest.test_with_statement_specifiedc Cs\t}t|_t|_d|j_|}|||jjW5QRX|j|jddddS)NF)r __enter____exit__ return_valuerassert_called_with)rmockmrrrtestContextManagerMockingCs z"WithTest.testContextManagerMockingc CsPt}|t|ddW5QRXW5QRX|j||jjdS)Nr!)rr TypeErrorr-r0rr.Zcalled)rr1rrr$test_context_manager_with_magic_mockOs   z-WithTest.test_context_manager_with_magic_mockc CsrtdttjH}|t|dtdt}|t|dW5QRX|t|dW5QRX|ttjddS)Nrrzrestored with wrong instancez not restoredr+)rrZ mock_againrrr"test_with_statement_same_attributeYsz+WithTest.test_with_statement_same_attributec Csltdt:}|t|dtdt}|t|dW5QRXW5QRX|ttj|ttjdS)Nrrr&)rr rrr'rrr(r)rrrtest_with_statement_imbricatedfsz'WithTest.test_with_statement_imbricatedc Csi}t|ddi||ddiW5QRX||i|t:t|ddi||dditdW5QRXW5QRX||idS)NabZKonrad)rdictrr NameError)rr!rrrtest_dict_context_managerrs  z"WithTest.test_dict_context_managerc CsGddd}|}tj|dddN}tj|ddd}|W5QRX||jd||jd|W5QRX||jddS)Nc@seZdZddZdS)z5WithTest.test_double_patch_instance_method..CcSsdS)Nrrrrrfz7WithTest.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_methodsz*WithTest.test_double_patch_instance_methodN)r r r rrr r$r*r,r3r6r7r8r=rCrrrrrs       rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdS) TestMockOpenc CsFt}tdt|dd}|||tdW5QRX|ddSN%s.openTZcreater!)rrr assertIsopenassert_called_once_withrr1Zpatchedrrrtest_mock_opens  zTestMockOpen.test_mock_openc Cst}|j}tdt|dd"td}|W5QRXW5QRXtdtttdddg}| |j || ||dSrE) rr/rr rIreadr r-r.r mock_callsrH)rr1handler>expected_callsrrrtest_mock_open_context_managers z+TestMockOpen.test_mock_open_context_managerc Cst}tdt|dd>td}|W5QRXtd}|W5QRXW5QRXtdtttdddtdtttdddg}||j |dS)NrFTrGr!bar) rrr rIrMr r-r.rrN)rr1r>rPrrr-test_mock_open_context_manager_multiple_timess   z:TestMockOpen.test_mock_open_context_manager_multiple_timesc CsNt}t|tdt|dd}|||tdW5QRX|ddSrE)rrrr rHrIrJrKrrrtest_explicit_mocks  zTestMockOpen.test_explicit_mockc CsHtdd}tdt|ddtd}|}W5QRX||ddS)Nr!Z read_datarFTrGrRrrr rIrMrrr1hresultrrrtest_read_datas  zTestMockOpen.test_read_datac Cstdd}tdt|dd&td}|}|}|}W5QRX||d||d||d ||d td d}tdt|ddtd}|}W5QRX||d ||d dS) N foo bar baz rUrFTrGrRfoo bar baz r!rrr rIreadliner)rr1rXline1line2line3rYrrrtest_readline_datas       zTestMockOpen.test_readline_datac Cstdd}tdt|ddtd}dd|D}W5QRX||d d ||d d ||d d||d|tt|W5QRXdS)Nr[rUrFTrGrRcSsg|]}|qSrr.0lrrr sz6TestMockOpen.test_dunder_iter_data..rr\rAr]r^r_) rrr rIrrar StopIterationnext)rr1rXlinesrrrtest_dunder_iter_datas  z"TestMockOpen.test_dunder_iter_datac Cstdd}tdt|dd,td}t|}t|}dd|D}W5QRX||d ||d ||d d ||d dS)Nr[rUrFTrGrRcSsg|]}|qSrrrfrrrrisz/TestMockOpen.test_next_data..r\r]rr^r_)rrr rIrlrra)rr1rXrbrcrmrrrtest_next_datas   zTestMockOpen.test_next_datac Cstdd}tdt|ddtd}|}W5QRX||ddd gtd d}tdt|ddtd}|}W5QRX||ddd gdS) Nr[rUrFTrGrRr\r]r^ foo bar bazZbazrrr rI readlinesrrWrrrtest_readlines_datas  z TestMockOpen.test_readlines_datac CsVtdd}tdt|dd$tdd}|}W5QRXW5QRX||ddS)NrUrFTrGabcrbrV)rr1r>rYrrrtest_read_bytes s   zTestMockOpen.test_read_bytesc Cs~tdd}tdt|dd4tdd}|}|}|}W5QRXW5QRX||d||d ||d dS Ns abc def ghi rUrFTrGrurvsabc sdef sghi r`)rr2r>rbrcrdrrrtest_readline_bytess    z TestMockOpen.test_readline_bytesc Cs\tdd}tdt|dd$tdd}|}W5QRXW5QRX||dd d gdSrxrq)rr2r>rYrrrtest_readlines_bytes s   z!TestMockOpen.test_readlines_bytescCsd}t|d}||d|dd||d|dd|}||d|dd||d|dddS)NrprU )rrrM)rZ some_datar1r>rrr!test_mock_open_read_with_argument(s z.TestMockOpen.test_mock_open_read_with_argumentc Cstdd}tdt|ddtd}|}|}W5QRX||d||dd gtdd}tdt|ddtd}|}|}W5QRX||d||d dS) Nr[rUrFTrGrRr\r]r^zbar baz )rrr rIrarrrrM)rr1rXrbrestrrrtest_interleaved_reads5s    z#TestMockOpen.test_interleaved_readscCstdd}|}d|j_d|j_dg|j_||d||d||dg||d||ddS)Nr!rUrR)rrMr/rarrr)rr1rOrrrtest_overriding_return_valuesIs  z*TestMockOpen.test_overriding_return_valuesN)r r r rLrQrSrTrZrernrorsrwryrzr|r~rrrrrrDs       rD__main__)ZunittestwarningsrZunittest.test.testmock.supportrZ unittest.mockrrrrrr rrr(r' Exceptionr ZTestCaserrDr mainrrrrs   ~M