B %2@sddlZddlmZddlmZddlmZmZmZm Z m Z m Z e j Z e jZGdddejZGdddejZed kredS) N)catch_warnings) is_instance) MagicMockMockpatchsentinel mock_opencallc@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS)WithTestc Cs>tdttj|ttjdWdQRX|ttjdS)Nz %s.something unpatched)r__name__r Something2 assertEqual something Something)selfrD/opt/alt/python37/lib64/python3.7/unittest/test/testmock/testwith.pytest_with_statementszWithTest.test_with_statementc Csjy8tdttj|ttjdtdWdQRXWntk rLYn X|d|ttjdS)Nz %s.somethingr powzpatch swallowed exception) rr rr rr ExceptionZfailr)rrrrtest_with_statement_exceptions z&WithTest.test_with_statement_exceptionc CsJtdt&}|t|d|t|tdWdQRX|ttjdS)Nz %s.somethingr zpatching wrong type) rr rr assertTruerrrr)rmock_somethingrrrtest_with_statement_as"s  zWithTest.test_with_statement_asc CsPGdddt}|j}t|d||j|dWdQRX||j|dS)Nc@seZdZdZdS)z6WithTest.test_patch_object_with_statement..FoofooN)r __module__ __qualname__rrrrrFoo+srrr )objectrrZassertNotEqualr)rrZoriginalrrr test_patch_object_with_statement*s z)WithTest.test_patch_object_with_statementc CstddRtdt:}tdt"}|t|d|t|dWdQRXWdQRXWdQRX|ttj|ttjdS)NT)recordz %s.somethingz%s.something_elser ) rrr rrsomething_elserr SomethingElse)rrmock_something_elserrrtest_with_statement_nested3s $z#WithTest.test_with_statement_nestedc CsLtdttj$}|t|d||tjdWdQRX|ttjdS)Nz %s.somethingr z wrong patch)rr rPatchedrrr)rrrrrtest_with_statement_specified>sz&WithTest.test_with_statement_specifiedc Cs\t}t|_t|_d|j_|}|||jjWdQRX|j|jddddS)NF)r __enter____exit__ return_valuerassert_called_with)rmockmrrrtestContextManagerMockingEs z"WithTest.testContextManagerMockingc CsPt}|t|ddWdQRXWdQRX|j||jjdS)Nr)r assertRaises TypeErrorr(r+rr)Zcalled)rr,rrr$test_context_manager_with_magic_mockQs   z-WithTest.test_context_manager_with_magic_mockc CsrtdttjH}|t|dtdt}|t|dWdQRX|t|dWdQRX|ttjddS)Nz %s.somethingr zrestored with wrong instancez not restored)rr rr&rrr)rrZ mock_againrrr"test_with_statement_same_attribute[sz+WithTest.test_with_statement_same_attributec Csltdt:}|t|dtdt}|t|dWdQRXWdQRX|ttj|ttjdS)Nz %s.somethingr z%s.something_else)rr rrr"rrr#)rrr$rrrtest_with_statement_imbricatedhsz'WithTest.test_with_statement_imbricatedc Csi}t|ddi||ddiWdQRX||i|t:t|ddi||dditdWdQRXWdQRX||idS)NabZKonrad)rdictrr0 NameError)rrrrrtest_dict_context_managerts  z"WithTest.test_dict_context_managerc CsGddd}|}tj|dddN}tj|ddd}|WdQRX||jd||jd|WdQRX||jddS)Nc@seZdZddZdS)z5WithTest.test_double_patch_instance_method..CcSsdS)Nr)rrrrfsz7WithTest.test_double_patch_instance_method..C.fN)r rrr:rrrrCsr;r:T)Zautospecr)rrr:rZ call_count)rr;cZpatch1Zpatch2rrr!test_double_patch_instance_methodsz*WithTest.test_double_patch_instance_methodN)r rrrrrr r%r'r.r2r3r4r9r>rrrrr s        r c@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdS) TestMockOpenc CsFt}tdt|dd}|||tdWdQRX|ddS)Nz%s.openT)creater)rrr assertIsopenassert_called_once_with)rr,patchedrrrtest_mock_opens  zTestMockOpen.test_mock_openc Cst}|j}tdt|dd"td}|WdQRXWdQRXtdtttdddg}| |j || ||dS)Nz%s.openT)r@r) rr*rr rBreadr r(r)r mock_callsrA)rr,handler:expected_callsrrrtest_mock_open_context_managers z+TestMockOpen.test_mock_open_context_managerc Cst}tdt|dd>td}|WdQRXtd}|WdQRXWdQRXtdtttdddtdtttdddg}||j |dS)Nz%s.openT)r@rbar) rrr rBrFr r(r)rrG)rr,r:rIrrr-test_mock_open_context_manager_multiple_timess  z:TestMockOpen.test_mock_open_context_manager_multiple_timesc CsNt}t|tdt|dd}|||tdWdQRX|ddS)Nz%s.openT)r@r)rrrr rArBrC)rr,rDrrrtest_explicit_mocks  zTestMockOpen.test_explicit_mockc CsHtdd}tdt|ddtd}|}WdQRX||ddS)Nr) read_dataz%s.openT)r@rK)rrr rBrFr)rr,hresultrrrtest_read_datas  zTestMockOpen.test_read_datac Cstdd}tdt|dd&td}|}|}|}WdQRX||d||d||d ||d td d}tdt|ddtd}|}WdQRX||d ||d dS) Nz foo bar baz )rNz%s.openT)r@rKzfoo zbar zbaz r)rrr rBreadliner)rr,rOline1line2line3rPrrrtest_readline_datas       zTestMockOpen.test_readline_datac Cstdd}tdt|ddtd}dd|D}WdQRX||d d ||d d ||d d||d|tt|WdQRXdS)Nz foo bar baz )rNz%s.openT)r@rKcSsg|]}|qSrr).0lrrr sz6TestMockOpen.test_dunder_iter_data..rzfoo r<zbar zbaz rR) rrr rBrrSr0 StopIterationnext)rr,rOlinesrrrtest_dunder_iter_datas  z"TestMockOpen.test_dunder_iter_datac Cstdd}tdt|dd,td}t|}t|}dd|D}WdQRX||d ||d ||d d ||d dS)Nz foo bar baz )rNz%s.openT)r@rKcSsg|]}|qSrr)rXrYrrrrZsz/TestMockOpen.test_next_data..zfoo zbar rzbaz rR)rrr rBr]rrS)rr,rOrTrUr^rrrtest_next_datas   zTestMockOpen.test_next_datac Cstdd}tdt|ddtd}|}WdQRX||ddd gtd d}tdt|ddtd}|}WdQRX||ddd gdS) Nz foo bar baz )rNz%s.openT)r@rKzfoo zbar zbaz z foo bar bazZbaz)rrr rB readlinesr)rr,rOrPrrrtest_readlines_datas  z TestMockOpen.test_readlines_datac CsVtdd}tdt|dd$tdd}|}WdQRXWdQRX||ddS)N)rNz%s.openT)r@abcrb)rrr rBrFr)rr,r:rPrrrtest_read_bytess   zTestMockOpen.test_read_bytesc Cs~tdd}tdt|dd4tdd}|}|}|}WdQRXWdQRX||d||d ||d dS) Ns abc def ghi )rNz%s.openT)r@rdresabc sdef sghi )rrr rBrSr)rr-r:rTrUrVrrrtest_readline_bytess    z TestMockOpen.test_readline_bytesc Cs\tdd}tdt|dd$tdd}|}WdQRXWdQRX||dd d gdS) Ns abc def ghi )rNz%s.openT)r@rdresabc sdef sghi )rrr rBrar)rr-r:rPrrrtest_readlines_bytes#s   z!TestMockOpen.test_readlines_bytescCsd}t|d}||d|dd||d|dd|}||d|dd||d|dddS)Nz foo bar baz)rN )rrrF)rZ some_datar,r:rrr!test_mock_open_read_with_argument+s z.TestMockOpen.test_mock_open_read_with_argumentc Cstdd}tdt|ddtd}|}|}WdQRX||d||dd gtdd}tdt|ddtd}|}|}WdQRX||d||d dS) Nz foo bar baz )rNz%s.openT)r@rKzfoo zbar zbaz zbar baz )rrr rBrSrarrF)rr,rOrTrestrrrtest_interleaved_reads8s    z#TestMockOpen.test_interleaved_readscCstdd}|}d|j_d|j_dg|j_||d||d||dg||d||ddS)Nr)rNrK)rrFr*rSrar)rr,rHrrrtest_overriding_return_valuesLs  z*TestMockOpen.test_overriding_return_valuesN)r rrrErJrLrMrQrWr_r`rbrfrgrhrjrlrmrrrrr?s       r?__main__)ZunittestwarningsrZunittest.test.testmock.supportrZ unittest.mockrrrrrr rrr#r"ZTestCaser r?r mainrrrrs   M