3 C\[)@sddlmZddlZddlmZddlmZmZm Z m Z m Z m Z e j Ze jZGdddejZGdddejZed krejdS) )catch_warningsN) is_instance) MagicMockMockpatchsentinel mock_opencallc@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS)WithTestc Cs>tdttj|jttjdWdQRX|jttjdS)Nz %s.something unpatched)r__name__r Something2 assertEqual something Something)selfri/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/mock/mock/tests/testwith.pytest_with_statementszWithTest.test_with_statementcCsjy8tdttj|jttjdtdWdQRXWntk rLYn X|jd|jttjdS)Nz %s.somethingr powzpatch swallowed exception) rr rr rr Exceptionfailr)rrrrtest_with_statement_exceptions z&WithTest.test_with_statement_exceptionc CsJtdt&}|jt|d|jt|tdWdQRX|jttjdS)Nz %s.somethingr zpatching wrong type) rr rr assertTruerrrr)rmock_somethingrrrtest_with_statement_as&s  zWithTest.test_with_statement_asc CsPGdddt}|j}tj|d|j|j|dWdQRX|j|j|dS)Nc@seZdZdZdS)z6WithTest.test_patch_object_with_statement..FoofooN)r __module__ __qualname__rrrrrFoo/srrr )objectrrZassertNotEqualr)rroriginalrrr test_patch_object_with_statement.s z)WithTest.test_patch_object_with_statementcCstddRtdt:}tdt"}|jt|d|jt|dWdQRXWdQRXWdQRX|jttj|jttjdS)NT)recordz %s.somethingz%s.something_elser ) rrr rrsomething_elserr SomethingElse)rrmock_something_elserrrtest_with_statement_nested7s $z#WithTest.test_with_statement_nestedc CsLtdttj$}|jt|d|j|tjdWdQRX|jttjdS)Nz %s.somethingr z wrong patch)rr rPatchedrrr)rrrrrtest_with_statement_specifiedCsz&WithTest.test_with_statement_specifiedc Cs\t}t|_t|_d|j_|}|j||jjWdQRX|jj|jjddddS)NF)r __enter____exit__ return_valuerassert_called_with)rmockmrrrtestContextManagerMockingJs z"WithTest.testContextManagerMockingcCsPt}|jt|ddWdQRXWdQRX|jj|j|jjdS)Nr)r assertRaises TypeErrorr*r-rr+called)rr.rrr$test_context_manager_with_magic_mockVs   z-WithTest.test_context_manager_with_magic_mockcCsrtdttjH}|jt|dtdt}|jt|dWdQRX|jt|dWdQRX|jttjddS)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_attributecCsltdt:}|jt|dtdt}|jt|dWdQRXWdQRX|jttj|jttjdS)Nz %s.somethingr z%s.something_else)rr rrr$rrr%)rrr&rrrtest_with_statement_imbricatedmsz'WithTest.test_with_statement_imbricatedcCsi}tj|ddi|j|ddiWdQRX|j|i|jt:tj|ddi|j|dditdWdQRXWdQRX|j|idS)NabZKonrad)rdictrr2 NameError)rrrrrtest_dict_context_managerys  z"WithTest.test_dict_context_managerN)r rrrrrr"r'r)r0r5r6r7r<rrrrr s       r c@steZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZdS) TestMockOpenc CsFt}tdt|dd}|j||tdWdQRX|jddS)Nz%s.openT)creater)rrr assertIsopenassert_called_once_with)rr.patchedrrrtest_mock_opens  zTestMockOpen.test_mock_opencCst}|j}tdt|dd"td}|jWdQRXWdQRXtdtjtjtjdddg}|j |j ||j ||dS)Nz%s.openT)r>r) rr,rr r@readr r*r+r mock_callsr?)rr.handlefexpected_callsrrrtest_mock_open_context_managers z+TestMockOpen.test_mock_open_context_managerc Cst}tdt|dd>td}|jWdQRXtd}|jWdQRXWdQRXtdtjtjtjdddtdtjtjtjdddg}|j|j |dS)Nz%s.openT)r>rbar) rrr r@rDr r*r+rrE)rr.rGrHrrr-test_mock_open_context_manager_multiple_timess  z:TestMockOpen.test_mock_open_context_manager_multiple_timesc CsNt}t|tdt|dd}|j||tdWdQRX|jddS)Nz%s.openT)r>r)rrrr r?r@rA)rr.rBrrrtest_explicit_mocks  zTestMockOpen.test_explicit_mockc CsHtdd}tdt|ddtd}|j}WdQRX|j|ddS)Nr) read_dataz%s.openT)r>rJ)rrr r@rDr)rr.hresultrrrtest_read_datas  zTestMockOpen.test_read_datacCstdd}tdt|dd&td}|j}|j}|j}WdQRX|j|d|j|d|j|d td d}tdt|ddtd}|j}WdQRX|j|d dS) Nz foo bar baz )rMz%s.openT)r>rJzfoo zbar zbaz r)rrr r@readliner)rr.rNline1line2line3rOrrrtest_readline_datas     zTestMockOpen.test_readline_datacCstdd}tdt|ddtd}|j}WdQRX|j|ddd gtd d}tdt|ddtd}|j}WdQRX|j|ddd gdS) Nz foo bar baz )rMz%s.openT)r>rJzfoo zbar zbaz z foo bar bazZbaz)rrr r@ readlinesr)rr.rNrOrrrtest_readlines_datas  z TestMockOpen.test_readlines_datacCsVtdd}tdt|dd$tdd}|j}WdQRXWdQRX|j|ddS)N)rMz%s.openT)r>abcrb)rrr r@rDr)rr.rGrOrrrtest_read_bytess   zTestMockOpen.test_read_bytescCs~tdd}tdt|dd4tdd}|j}|j}|j}WdQRXWdQRX|j|d|j|d |j|d dS) Ns abc def ghi )rMz%s.openT)r>rYrZsabc sdef sghi )rrr r@rQr)rr/rGrRrSrTrrrtest_readline_bytess    z TestMockOpen.test_readline_bytescCs\tdd}tdt|dd$tdd}|j}WdQRXWdQRX|j|dd d gdS) Ns abc def ghi )rMz%s.openT)r>rYrZsabc sdef sghi )rrr r@rVr)rr/rGrOrrrtest_readlines_bytess   z!TestMockOpen.test_readlines_bytescCs&d}t|d}|j|jd|dS)Nz foo bar baz)rM )rrrD)rZ some_datar.rrr!test_mock_open_read_with_arguments z.TestMockOpen.test_mock_open_read_with_argumentcCstdd}tdt|ddtd}|j}|j}WdQRX|j|d|j|dd gtdd}tdt|ddtd}|j}|j}WdQRX|j|d|j|d dS) Nz foo bar baz )rMz%s.openT)r>rJzfoo zbar zbaz zbar baz )rrr r@rQrVrrD)rr.rNrRrestrrrtest_interleaved_reads s    z#TestMockOpen.test_interleaved_readscCstdd}|}d|j_d|j_dg|j_|j|jd|j|jd|j|jdg|j|jd|j|jddS)Nr)rMrJ)rrDr,rQrVr)rr.rFrrrtest_overriding_return_values s  z*TestMockOpen.test_overriding_return_valuesN)r rrrCrIrKrLrPrUrWr[r\r]r_rarbrrrrr=s     r=__main__)warningsrZ unittest2ZunittestZmock.tests.supportrr.rrrrrr rrr%r$ZTestCaser r=r mainrrrrs   v*