8"DrddlZddlZddlmZddlZddlmZddlmZm Z ddl m Z ddl m Z mZmZmZmZmZmZmZmZmZmZdZejeZdezZdd Zejaej Z!Gd d e"Z#d ezZ$e#fdZ%Gdde"Z&Gddej'Z(edkrej)dSdS)N) OrderedDict)support) SomeClass is_instance)uncache) NonCallableMock CallableMixinsentinel MagicMockMockNonCallableMagicMockpatch_patchDEFAULTcall _get_targetbuiltinsz %s.PTModuleTcvGfddt}|sfd}fd}||_||_|S)NceZdZfdZdS)_get_proxy..Proxyc$t|SN)getattrselfnameobjs G/opt/alt/python311/lib64/python3.11/unittest/test/testmock/testpatch.py __getattr__z%_get_proxy..Proxy.__getattr__s3%% %N)__name__ __module__ __qualname__r)rsrProxyrs. & & & & & & &r r$c*t||dSr)setattr)rrvaluers r __setattr__z_get_proxy..__setattr__ s Cu % % % % %r c(t|dSr)delattrrs r __delattr__z_get_proxy..__delattr__"s C     r )objectr(r+)rget_onlyr$r(r+s` r _get_proxyr.s&&&&&&&&&& ( & & & & &     '' 577Nr cleZdZdZdZdZdZedZe dZ Gdde Z d S) FoocdSrras r__init__z Foo.__init__/r cdSrr2r3s rfzFoo.f0r6r cdSrr2rs rgzFoo.g1r6r barcdSrr2r2r r static_methodzFoo.static_method4sr cdSrr2)clss r class_methodzFoo.class_method7s4r ceZdZdZdS)Foo.BarcdSrr2r:s rr4z Foo.Bar.a;r6r Nr!r"r#r4r2r rBarrC:sr rFN) r!r"r#r5r8r;foo staticmethodr> classmethodrAr,rFr2r rr0r0.s C\[fr r0z%s.FoocdSrr2r4bs rfunctionrM@r6r c,eZdZdZdZdZdZdZdS) Containerci|_dSrvaluesr:s rr5zContainer.__init__Ds  r c|j|SrrQrrs r __getitem__zContainer.__getitem__Gs{4  r c||j|<dSrrQ)rrr's r __setitem__zContainer.__setitem__Js! Dr c|j|=dSrrQrTs r __delitem__zContainer.__delitem__Ms K   r c*t|jSr)iterrRr:s r__iter__zContainer.__iter__PsDK   r N)r!r"r#r5rUrWrYr\r2r rrOrOCs_!!!"""!!!!!r rOceZdZdudZdZdZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ d Z!d!Z"d"Z#d#Z$d$Z%d%Z&d&Z'd'Z(d(Z)d)Z*d*Z+d+Z,d,Z-d-Z.d.Z/d/Z0d0Z1d1Z2d2Z3d3Z4d4Z5d5Z6d6Z7d7Z8d8Z9d9Z:d:Z;d;Zd>Z?d?Z@d@ZAdAZBdBZCdCZDdDZEdEZFdFZGdGZHdHZIdIZJdJZKdKZLdLZMdMZNdNZOdOZPdPZQdQZRdRZSdSZTdTZUdUZVdVZWdWZXdXZYdYZZe[dZd[d\Z\e[dZd]d^Z]d_Z^d`Z_daZ`dbZadcZbddZcdeZddfZedgZfdhZgdiZhdjZidkZjdlZkdmZldnZmdoZndpZodqZpdrZqdsZrdtS)v PatchTestTct}|st}|t||t |||t |tdSr)r r assertRaises TypeError assertTruer assertFalser )rrmagic MockClasss rassertNotCallablezPatchTest.assertNotCallableWsj(  ('I )S)))  C33444 S-8899999r cGddttjdtjfd}|jtjddS)NceZdZejZdS)4PatchTest.test_single_patchobject..SomethingNr!r"r#r Original attributer2r r Somethingrib )IIIr rmrlcTjtjddSN unpatched assertEqualrlr Patchedrmrsrtestz/PatchTest.test_single_patchobject..testes'   Y0(2BK P P P P Pr patch not restoredr,rr rtrsrlrkrrvrms` @rtest_single_patchobjectz!PatchTest.test_single_patchobjectas * * * * * * * * ih.> ? ? Q Q Q Q Q @ ? Q  ,h.?- / / / / /r cd}|t|5tjddddddS#1swxYwYdS)Nz>'Something' must be the actual object to be patched, not a strrm do_something)assertRaisesRegexrarr,)rmsgs r&test_patchobject_with_string_as_targetz0PatchTest.test_patchobject_with_string_as_targetmsN  # #Is 3 3 6 6 Ln 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6sAAAcGddttjddfd}|jtjddS)NceZdZejZdS)7PatchTest.test_patchobject_with_none..SomethingNrjr2r rrmrsrnr rmrlc>jddSrp) assertIsNonerlrusrrvz2PatchTest.test_patchobject_with_none..testvs"   i1; ? ? ? ? ?r rw)r,rrsrlr rkrys` @rtest_patchobject_with_nonez$PatchTest.test_patchobject_with_noners * * * * * * * * id 3 3 @ @ @ @ @ 4 3 @  ,h.?- / / / / /r cGddttjdtjtjdtjfd}|jtjdjtj ddS)Nc*eZdZejZejZdS)6PatchTest.test_multiple_patchobject..SomethingNr!r"r#r rkrl Original2next_attributer2r rrmr )I%/NNNr rmrlrcjtjdjtjddSrp)rsrlr rtrPatched2rusrrvz1PatchTest.test_multiple_patchobject..testsY   Y0(2B( * * *   Y5x7H( * * * * *r rw) r,rr rtrrsrlrkrrrys` @rtest_multiple_patchobjectz#PatchTest.test_multiple_patchobjects 0 0 0 0 0 0 0 0 ih.> ? ? i!183D E E * * * * * F E @ ? *  ,h.?- / / / 183E- / / / / /r ct}tdtztjd} tja||ttj|adS#|awxYw)N %s.somethingcdSrr2r2r rrvz8PatchTest.test_object_lookup_is_quite_lazy..tests Dr ) somethingrr!r Something2replacement_valuersroriginalrvs r test_object_lookup_is_quite_lazyz*PatchTest.test_object_lookup_is_quite_lazys~ ~((*= > >   ? >  ! 2I DFFF   Y(B C C C IIII s ;A33A7ctdtztjfd}|t jtjdtdtztjtdtztjfd}t jtjdt j tjd|t jtjdt j tjdt}tj |_ tdtz|fd}||t|ddS)Nrc^tjtjddSrp)rsPTModulerr rr:srrvz"PatchTest.test_patch..tests2   X/1D( * * * * *r rwz%s.something_elsectjtjdtjtjddSrp)rsrrr rsomething_else SomethingElser:srrvz"PatchTest.test_patch..testsY   X/1D( * * *   X4h6L( * * * * *r %s.opencftddtjddS)Nfilenamerzopen not patched)rsopenr Handler:srrvz"PatchTest.test_patch..tests8   T*c22HO/ 1 1 1 1 1r )rr!r rrsrrrmrrr r return_valuebuiltin_stringassertNotEqualr)rrvmocks` r test_patchzPatchTest.test_patchs ~((*= > > * * * * ? > *  +X-?- / / / ~((*= > > "X-x/E F F * * * * G F ? > * +X-?- / / / 0(2H- / / /  +X-?- / / / 0(2H- / / /vv$O y>)4 0 0 1 1 1 1 1 0 1   D$(<=====r ctdtztjfd}|t jjddS)Nz%s.SomeClass.class_attributechtjjtjddSrp)rsrrclass_attributer ClassAttributer:srrvz2PatchTest.test_patch_class_attribute..tests<   X/?%4k C C C C Cr rw)rr!r rrrrrrrvs` rtest_patch_class_attributez$PatchTest.test_patch_class_attributes -8& ( ( C C C C ( ( C  (,<. 0 0 0 0 0r cGddttjdfd}|tjdtjdfd}dx|tjtj\|tjtjdS)Nc*eZdZejZejZdS):PatchTest.test_patchobject_with_default_mock..TestN)r!r"r#r rkrr something2r2r rTestrs )I!+JJJr rrcx|jd|tddS)N"Mock not passed into test function.patch with two arguments did not create a mock)rsrassertIsInstancer )rrrs rrvz:PatchTest.test_patchobject_with_default_mock..testsU   T4>A C C C  ! !$ L N N N N Nr rc|tjd|tjd|jd|jd|td|td|d|d||fS)Nz0Patched function didn't receive initial argumentz/Patched function didn't receive second argumentrz)Second Mock not passed into test functionrzunexpected value for mock1) rsr this1this2rrrr r)rrmock1mock2r outerMock1 outerMock2rs rrvz:PatchTest.test_patchobject_with_default_mock..tests   UHNO Q Q Q   UHNN P P P   UDOA C C C   UDNH J J J  ! !%L N N N  ! !%L N N N    E3O P P P    E3O P P P%< r )r,rr rr)rrvrrrs` @@@r"test_patchobject_with_default_mockz,PatchTest.test_patchobject_with_default_mocks , , , , ,6 , , , dK ( ( N N N N N ) ( N  dK ( ( dL ) )        * ) ) ( &#'& Z!%hnhn!E!E J X^X^,,,,,r cntdtztfd}|dS)N %s.SomeClassspecct|ttjt tddS)NctjSrr not_wibbler2r rz>PatchTest.test_patch_with_spec..test.. i6Jr rsrrbrwibbler r`AttributeError MockSomeClassrs rrvz,PatchTest.test_patch_with_spec..testX   Y 6 6 6 OOK (8)DD E E E   n.J.J K K K K Kr )rr!rrs` rtest_patch_with_speczPatchTest.test_patch_with_specsO ~(y 9 9 9 L L L L : 9 L r cttjtdtfd}|dS)Nrrctj|t tjjt tddS)Nc$tjjSrrrrr2r rrzDPatchTest.test_patchobject_with_spec..test.. i&?&Jr rsrrrbrrr r`r MockAttributers rrvz2PatchTest.test_patchobject_with_spec..testx   Y6 F F F OOK (A(H'022 3 3 3   nJJ L L L L Lr rr,rrs` rtest_patchobject_with_specz$PatchTest.test_patchobject_with_spec sP i!2 C C C L L L L D C L r cftdtzdgfd}|dS)Nrrrct|ttjt tddS)NctjSrrr2r rrzFPatchTest.test_patch_with_spec_as_list..test..rr rrs rrvz4PatchTest.test_patch_with_spec_as_list..testrr rr!rs` rtest_patch_with_spec_as_listz&PatchTest.test_patch_with_spec_as_listsQ ~(z : : : L L L L ; : L r cltjtddgfd}|dS)Nrrrctj|t tjjt tddS)Nc$tjjSrrr2r rrzLPatchTest.test_patchobject_with_spec_as_list..test..*rr rrs rrvz:PatchTest.test_patchobject_with_spec_as_list..test$rr rrs` r"test_patchobject_with_spec_as_listz,PatchTest.test_patchobject_with_spec_as_list#sR i!2( D D D L L L L E D L r ctdtztdtzdgfd}|dS)Nrrrrct|ttjt tddS)NctjSrrr2r rrzMPatchTest.test_nested_patch_with_spec_as_list..test..6rr r)rMockOpenrs rrvz;PatchTest.test_nested_patch_with_spec_as_list..test1sZ   Y 6 6 6 OOK (8)DD E E E   n.J.J K K K K Kr )rrr!rs` r#test_nested_patch_with_spec_as_listz-PatchTest.test_nested_patch_with_spec_as_list/si y>) * * ~(z : : : L L L L ; : + * L r cdtdtzdfd}|dS)NrTrctjtfddS)NcjSrrrsrrzIPatchTest.test_patch_with_spec_as_boolean..test..A m6Nr rsrrr`rrs`rrvz7PatchTest.test_patch_with_spec_as_boolean..test;I   Y 6 6 6    n.N.N.N.N O O O O Or rrs` rtest_patch_with_spec_as_booleanz)PatchTest.test_patch_with_spec_as_boolean:sO ~(t 4 4 4 P P P P 5 4 P r cjtjtddfd}|dS)NrTrctjtfddS)NcjSrrrsrrzPPatchTest.test_patch_object_with_spec_as_boolean..test..Mrr rrs`rrvz>PatchTest.test_patch_object_with_spec_as_boolean..testGrr )rr,rrs` r&test_patch_object_with_spec_as_booleanz0PatchTest.test_patch_object_with_spec_as_booleanFsN h $ 7 7 7 P P P P 8 7 P r cdtdtzdfd}|dS)NrTrct|t|jt fddS)NcjSrr)instancesrrzVPatchTest.test_patch_class_acts_with_spec_is_inherited..test..[s h6Ir )rbrr rfrr`r)rrrs @rrvzDPatchTest.test_patch_class_acts_with_spec_is_inherited..testSsl OOK yAA B B B$}H  " "8 , , , OO   n.I.I.I.I J J J J Jr rrs` r,test_patch_class_acts_with_spec_is_inheritedz6PatchTest.test_patch_class_acts_with_spec_is_inheritedRsO ~(t 4 4 4 K K K K 5 4 K r ctdtztjdfd}|t ddS)N %s.froobleTcreatecRttjdSr)rsfroobler Froobler:srrvzLPatchTest.test_patch_with_create_mocks_non_existent_attributes..testas"   Wh&6 7 7 7 7 7r ctSrrr2r rrzPPatchTest.test_patch_with_create_mocks_non_existent_attributes..fWr )rrr rr` NameErrorrs` r4test_patch_with_create_mocks_non_existent_attributesz>PatchTest.test_patch_with_create_mocks_non_existent_attributes`sj |n,h.>t L L L 8 8 8 8 M L 8  )__55555r ctjtdtjdfd}|t tddS)NrTrc\tjtjdSr)rsrrr rr:srrvzRPatchTest.test_patchobject_with_create_mocks_non_existent_attributes..testjs%   Y.0@ A A A A Ar )rr,rr rrchasattrrs` r:test_patchobject_with_create_mocks_non_existent_attributeszDPatchTest.test_patchobject_with_create_mocks_non_existent_attributesist iH,.testtr ctSrrr2r rrz=PatchTest.test_patch_wont_create_by_default..xrr )r`rrrr rrrs r!test_patch_wont_create_by_defaultz+PatchTest.test_patch_wont_create_by_defaultrs   ~ . .   <.0(2B C C  D C  DFFF                 )__55555s6AA!$A!c*|t5tjtdt jd}|dddn #1swxYwY|ttddS)NordcdSrr2r2r rrvz?PatchTest.test_patchobject_wont_create_by_default..test}rr ) r`rrr,rr rrcr rs r'test_patchobject_wont_create_by_defaultz1PatchTest.test_patchobject_wont_create_by_default{s   ~ . .   \)UH,< = =  > =  DFFF                E2233333s9A  A$'A$cttdzd}ttdzd}||d||ddS)Nz.ordc.d|_tdS)Nec)rr)mock_ords rtest_ordz>PatchTest.test_patch_builtins_without_create..test_ords$'H !s88Or z.openc|j}d|j_td}|}||S)Nabcdzdoesnotexists.txt)rreadrclose) mock_openmfobjdatas r test_openz?PatchTest.test_patch_builtins_without_create..test_opensA&A"(AF +,,D99;;D JJLLLKr rrrr!rs)rrr$s r"test_patch_builtins_without_createz,PatchTest.test_patch_builtins_without_creates x       x    !   S))) f-----r cGddttjdtdfd}|t jdS)Nc$eZdZedZdS)5PatchTest.test_patch_with_static_methods..FooctjSr)r Staticr2r rwootz:PatchTest.test_patch_with_static_methods..Foo.woots &r N)r!r"r#rHr,r2r rr0r)s-  ' '\ ' ' 'r r0r,ctjSr)r rtr2r rrz:PatchTest.test_patch_with_static_methods..s 8Hr cltjdSr)rsr,r rt)r0rsr anonymousz;PatchTest.test_patch_with_static_methods..anonymouss*   SXXZZ)9 : : : : :r )r,rrHrsr,r r+)rr/r0s` @rtest_patch_with_static_methodsz(PatchTest.test_patch_with_static_methodss ' ' ' ' '& ' ' ' c6<0H0H#I#I J J ; ; ; ; ; K J ;  X_55555r ctj}tjtddfd}|tj|dS)Nr0cHtjddSNr0)rsr r0r:srr/z-PatchTest.test_patch_local..anonymouss!   X\5 1 1 1 1 1r )r r0rr,rs)rrGr/s` rtest_patch_localzPatchTest.test_patch_localsel hu - - 2 2 2 2 . - 2  s+++++r cGddt}|tj_tjddfd}|jtjdS)NceZdZdZdS)'PatchTest.test_patch_slots..Foo)r0N)r!r"r# __slots__r2r rr0r7s IIIr r0c>jddSr3)rsr0rGrsrr/z-PatchTest.test_patch_slots..anonymouss!   SWe , , , , ,r )r,r r0rrs)rr0r/rGs` @rtest_patch_slotszPatchTest.test_patch_slotss ! ! ! ! !& ! ! !cee, c5% ( ( - - - - - ) ( -  (,/////r c^GddtGfddt}tjdtj|}|}||jtjddS)NceZdZejZdS)=PatchTest.test_patchobject_class_decorator..SomethingNrjr2r rrmr>rnr rmc(eZdZfdZfdZdS)7PatchTest.test_patchobject_class_decorator..FoocTjtjddSrprr other_selfrmrs r test_methodzCPatchTest.test_patchobject_class_decorator..Foo.test_methods2  !4h6F!,.....r cTjtjddSNznon-test method patched)rsrlr rkrBs rnot_test_methodzGPatchTest.test_patchobject_class_decorator..Foo.not_test_methods2  !4h6G!:<<<<.SomethingNrjr2r rrmrKrnr rmc(eZdZdZfdZfdZdS)1PatchTest.test_patch_class_decorator..FoowhatevercJtj|ddSrp)rsrr)rCmock_somethingrs rrDz=PatchTest.test_patch_class_decorator..Foo.test_methods/  !3^!,.....r c^tjtjddSrF)rsrrr rm)rCrs rrGzAPatchTest.test_patch_class_decorator..Foo.not_test_methods2  !3X5G!:<<<<.SomethingNrr2r rrmrVrr rmrlcTjtjddSrprrrusrrvz.PatchTest.test_patchobject_twice..tests)   Y0(2BK P P P P Pr rwrxrys` @rtest_patchobject_twicez PatchTest.test_patchobject_twices 0 0 0 0 0 0 0 0 ih.> ? ? ih.> ? ? Q Q Q Q Q @ ? @ ? Q  ,h.?- / / / / /r ctdd}tjfd}||tjddifd}||tjdgfd}||dS) Nrinitialotherc"dd<d=dd<dSNr4r[something elser\r2rGsrrvz'PatchTest.test_patch_dict..test CHI+CLLLr r4rLctddddSNr_r4rLrslenr:srrvz'PatchTest.test_patch_dict..test ?   SXXq ) ) )   SXs + + + + +r rKctddddSrdrer:srrvz'PatchTest.test_patch_dict..testrgr r,copyrdictrsrrrvrGs` @rtest_patch_dictzPatchTest.test_patch_dicts, (([9988:: C , , , ,  ,  h''' C#s $ $ , , , , , % $ ,  h''' C* & & , , , , , ' & ,  h'''''r cttd<dd<j}t jfd}|j|t jddifd}|j|dS)Nr[rr\c"dd<d=dd<dSr^r2rasrrvz=PatchTest.test_patch_dict_with_container_object..test&rbr r4rLctjddddSrd)rsrfrRr:srrvz=PatchTest.test_patch_dict_with_container_object..test0sA   S__a 0 0 0   SXs + + + + +r rOr,rRrjrrkrsrls` @r%test_patch_dict_with_container_objectz/PatchTest.test_patch_dict_with_container_objectskkI#G :??$$ C , , , ,  ,  X... C#s $ $ , , , , , % $ ,  X.....r ctdd}tjdfd}||tjddidfd}||tjd gdfd }||dS) NrrZTclearcHidd<dd<dSNr_r4r`r\rsr:srrvz2PatchTest.test_patch_dict_with_clear..test>s/   S" % % %CH+CLLLr r4rLc8ddidSNr4rLrxr:srrvz2PatchTest.test_patch_dict_with_clear..testH#   S3* - - - - -r rKc8ddidSrzrxr:srrvz2PatchTest.test_patch_dict_with_clear..testPr{r rirls` @rtest_patch_dict_with_clearz$PatchTest.test_patch_dict_with_clear:sC (([9988:: Ct $ $ $ , , , , , % $ ,  h''' C#s4 0 0 0 . . . . . 1 0 .  h''' C*T 2 2 2 . . . . . 3 2 .  h'''''r cttd<dd<j}t jdfd}|j|t jddidfd }|j|dS) Nr[rr\TrtcRjidd<dd<dSrwrsrRr:srrvzGPatchTest.test_patch_dict_with_container_object_and_clear..test`s1   SZ , , ,CH+CLLLr r4rLcBjddidSrzrr:srrvzGPatchTest.test_patch_dict_with_container_object_and_clear..testjs%   SZ#s 4 4 4 4 4r rqrls` @r/test_patch_dict_with_container_object_and_clearz9PatchTest.test_patch_dict_with_container_object_and_clearYskkI#G :??$$ Ct $ $ $ , , , , , % $ ,  X... C#s4 0 0 0 5 5 5 5 5 1 0 5  X.....r cddi}tj|d5}||ddidddn #1swxYwY||ddidS)Nr4rLr)r4)rrkrs)rrGpatcheds r"test_patch_dict_as_context_managerz,PatchTest.test_patch_dict_as_context_managerssCj Zs # # # 2w   WsCj 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 sCj)))))sAAAc~i}tdtzttdtztdtjtttj|d}||jddS)NrTautospeccdSrr2r2r r some_namez0PatchTest.test_name_preserved..some_name}s r r)rr!r,rrkrs)rrGrs rtest_name_preservedzPatchTest.test_name_preservedzs ~(&(( 3 3 ~(&((T B B B i * * C  + * C B 4 3  +[99999r ci}tj|ddid}|t5|dddn #1swxYwY||idS)Nr4rLc td)NKonradrr2r rrvz1PatchTest.test_patch_with_exception..testsH%% %r )rrkr`rrs)rrGrvs rtest_patch_with_exceptionz#PatchTest.test_patch_with_exceptions C#s $ $ & & % $ &  y ) )   DFFF                b!!!!!s AAAc`tjdddifd}|dS)Nz os.environ konrad_delongz some valuecHdtjdS)Nr)assertInosenvironr:srrvz3PatchTest.test_patch_dict_with_string..tests MM/2: 6 6 6 6 6r )rrkrs` rtest_patch_dict_with_stringz%PatchTest.test_patch_dict_with_stringsJ L?L"A B B 7 7 7 7 C B 7 r c8tj}tjdddifd} ddit_|tjddi|t_dS#|t_wxYw)Nz%unittest.test.testmock.support.targetr<BARcNtjddddS)NBAZrrGr<)rsrtargetr:srrvz.tests)   W^U5-I-I J J J J Jr rGr)rrrjrrkrsrs` r$test_patch_dict_decorator_resolutionz.PatchTest.test_patch_dict_decorator_resolutions>&&(( ;eU^ L L K K K K M L K &#U^GN DFFF   W^eU^ < < <%GNNNXGN % % % %s :B Bctdtztdd}|t|tjt dtdd}|t|tdtzdd}|t|tjt ddd }|t|dS) NrTrspec_setcd|_dSNrGzres rrvz+PatchTest.test_patch_spec_set..test IKKKr rcd|_dSrrrs rrvz+PatchTest.test_patch_spec_set..testrr rcd|_dSrrrs rrvz+PatchTest.test_patch_spec_set..testrr cd|_dSrrrs rrvz+PatchTest.test_patch_spec_set..testrr )rr!rr`rr,rrs rtest_patch_spec_setzPatchTest.test_patch_spec_sets ~(y4 H H H   I H  .$/// g{T J J J   K J  .$/// ~(4 8 8 8   9 8  .$/// g{T : : :   ; :  .$/////r ctdtzdd}|t|dS)NrTrc(|}d|_dSrr)rers rrvz-PatchTest.test_spec_set_inherit..tests y{{HHJJJr )rr!r`rrs rtest_spec_set_inheritzPatchTest.test_spec_set_inheritsL ~(4 8 8 8   9 8  .$/////r ct}tdtz}|t||} ||||t||n#|wxYw|t|dS)Nr)rrr!assertIsstart assertIsNotstop)rrpatcherrs rtest_patch_start_stopzPatchTest.test_patch_start_stops122 i***}}    T8 , , , MM)T * * * LLNNNNGLLNNNN i*****s 1BB+cttdd}||dSNr<r_)rfoo_namerrrrs rtest_stop_without_startz!PatchTest.test_stop_without_starts5%++ ',,..)))))r cttdd}||||dSr)rrrrrrs rtest_stop_idempotentzPatchTest.test_stop_idempotentsO%++   ',,..)))))r ct}tjtdd}|t||} ||d|t||n#|wxYw|t|dS)NrrG)rrr,rrrrsr)rrrreplaceds rtest_patchobject_start_stopz%PatchTest.test_patchobject_start_stops,xe<< i***==??    Xu - - - MM)X . . . LLNNNNGLLNNNN i*****s 1BB/ctddi}|}tj|dgd}|||| ||ddi|n#|wxYw|||dS)NrGr<spameggsTrtrr)rjrrkrsrrrdrrs rtest_patch_dict_start_stopz$PatchTest.test_patch_dict_start_stops EN6688*Q!1 2$??? H%%%     Q 0 1 1 1 LLNNNNGLLNNNN H%%%%%s B Bcddi}|}tj|dgd}|||||dS)NrGr<rTrt)rjrrkrcrrsrs r"test_patch_dict_stop_without_startz,PatchTest.test_patch_dict_stop_without_startsj EN6688*Q!1 2$??? ((( H%%%%%r cR|ddi}Gfddt}tjddid|}|||}|||||||}||||||dS) Nrrc(eZdZfdZfdZdS)7PatchTest.test_patch_dict_class_decorator..Testc8ddidSNrGr<rxrrthiss r test_firstzBPatchTest.test_patch_dict_class_decorator..Test.test_first#  UEN33333r c8ddidSrrxrs r test_secondzCPatchTest.test_patch_dict_class_decorator..Test.test_secondrr N)r!r"r#rr)rrsrrrsQ 4 4 4 4 4 4 4 4 4 4 4 4 4 4r rrGr<Trt)rjr,rrkrsrr)rrrrvrrs @@rtest_patch_dict_class_decoratorz)PatchTest.test_patch_dict_class_decorator sM V 6688 4 4 4 4 4 4 4 46 4 4 4 9uz!eU^4888>> H%%%tvv  H%%%  H%%%tvv  H%%%  H%%%%%r cGddt}Gdd}||||fD]}t|tjddfd}|jd|jddjdS)NceZdZdZdS)0PatchTest.test_get_only_proxy..SomethingrGNr!r"r#rGr2r rrmr-CCCr rmceZdZdZdS)4PatchTest.test_get_only_proxy..SomethingElserGNrr2r rrr/rr rrGr<c>jddSNr<rsrGproxyrsrrvz+PatchTest.test_get_only_proxy..test5!  E22222r r,r.rrsrG assertNotIn__dict__rrmrthingrvrs` @rtest_get_only_proxyzPatchTest.test_get_only_proxy,s                 yy{{MI 4 4Eu%%E \% . . 3 3 3 3 3/ . 3 DFFF   UY . . .   UY . . .   UEN 3 3 3 3 4 4r cGddt}Gdd}||||fD]}t|dtjddfd }|jd|jddjdS) NceZdZdZdS)6PatchTest.test_get_set_delete_proxy..SomethingrGNrr2r rrmr?rr rmceZdZdZdS):PatchTest.test_get_set_delete_proxy..SomethingElserGNrr2r rrrArr rF)r-rGr<c>jddSrrrsrrvz1PatchTest.test_get_set_delete_proxy..testGrr rrs` @rtest_get_set_delete_proxyz#PatchTest.test_get_set_delete_proxy>s                 yy{{MI 4 4Ey5999E \% . . 3 3 3 3 3/ . 3 DFFF   UY . . .   UY . . .   UEN 3 3 3 3 4 4r cxtdtd}ttfi|}|}||t|||j d| |jtdS)N! side_effectzfoo.bar.return_valuerG) KeyErrorr rrrrr`rsrGr<rrkwargsrrs rtest_patch_keyword_argsz!PatchTest.test_patch_keyword_argsPs!)2"&&++F++}}  (D))) ,,, dh 22222r ctdtd}tjtdfi|}|}||t|||j d| |j tdS)Nrrr8) rr rr,r0rrr`rsrGr<rrs rtest_patch_object_keyword_argsz(PatchTest.test_patch_object_keyword_args]s!)2"&&,sC22622}}  (D))) ,,, dh 22222r cdddi}|}tj|ddd}| ||tddd|n#|wxYw|||dS)NrGr<r_)rGr<baz)rjrrkrrsr)rrrjrs rtest_patch_dict_keyword_argsz&PatchTest.test_patch_dict_keyword_argsjs5>}}*X1!;;;     Xtqa'@'@'@ A A A LLNNNNGLLNNNN 4(((((s &BBcGddt}fdfdfd}ttd|}|}t||t jt}tj|dd|}|}t||dS) Nc@eZdZdZdZdZdZGddeZdS)$PatchTest.test_autospec..BoocdSrr2r3s rr5z-PatchTest.test_autospec..Boo.__init__{r6r cdSrr2r3s rr8z&PatchTest.test_autospec..Boo.f|r6r cdSrr2r:s rr;z&PatchTest.test_autospec..Boo.g}r6r r<ceZdZdZdS)(PatchTest.test_autospec..Boo.BarcdSrr2r:s rr4z*PatchTest.test_autospec..Boo.Bar.ar6r NrEr2r rrFrs!!!!!r rFN) r!r"r#r5r8r;rGr,rFr2r rBoorzs^ ' ' '   C " " " " "f " " " " "r rc~|d|dt|dSN)assert_called_withr`rarrs r_testz&PatchTest.test_autospec.._tests@ DGGG  # #A & & &   i . . . . .r c|d|jdt|j||jt|jdt t |d|j|jjt t |jd| |j |j |j j t|j j d| | j t| j dt t |j dt t | ddS)Nr hr<rL) r8r r`rar;rrrGlowerrFr4r s r_test2z'PatchTest.test_autospec.._test2s FF1III F % %a ( ( (   i 0 0 0 FFHHH F % % ' ' '   i 3 3 3   ngtS A A A HNN    HN - - / / /   ngtx G G G HHJJJ H ' ' ) ) ) HJJLLL HJ ) ) + + +   iQ 7 7 7 HHJJLLNNN HHJJL + + - - -   iq 9 9 9   ngtx E E E   ngtxxzz3 G G G G Gr c|||d|t|Sr )rr0)rrrrs rrMz)PatchTest.test_autospec..functionsK E$KKK F4LLL F4477OOO MM$ $ $ $Kr Trr0)r,rrrr0sysmodulesr!)rrrMrvrmodulerrs` @@r test_autospeczPatchTest.test_autospecys/ " " " " "& " " " / / / / /  H H H H H:       .uX---h77tvv d### X&9u|FED999(CCtvv d### r cdtdtzdfd}|dS)N %s.functionTrctttjttjtdttjtdtttddtddtttttddS)Nr r_rG) rMassert_not_calledr`AssertionError assert_calledassert_called_oncer rarrr s rrvz.PatchTest.test_autospec_function..tests  & & ( ( (   nh.D E E E   nh.I J J J QKKK   nh.H I I I  ' ' * * *  " " $ $ $  ' ' ) ) ) QNNN  ' '1 - - -   i 2 2 2   ngx G G G G Gr rrs` rtest_autospec_functionz PatchTest.test_autospec_functionsO }x'$ 7 7 7 H H H H 8 7 H r ctdtzddd}|}||ddS)NrTr_)rrc"tddS)Nr r)rM) mock_functions rrvz.PatchTest.test_autospec_keywords..testsAq>> !r r%)rrvresults rtest_autospec_keywordsz PatchTest.test_autospec_keywordssb }x'$    " "   " #####r ctdtzd5}t|ddddS#1swxYwYdS)Nz%s.Foo.static_methodTr)rr!r0r>assert_called_once_withrmethods rtest_autospec_staticmethodz$PatchTest.test_autospec_staticmethods )H4t D D D -        * * , , , - - - - - - - - - - - - - - - - - -.AAActdtzd5}t|ddddS#1swxYwYdS)Nz%s.Foo.class_methodTr)rr!r0rAr'r(s rtest_autospec_classmethodz#PatchTest.test_autospec_classmethods (83d C C C -v        * * , , , - - - - - - - - - - - - - - - - - -r+c zGdd}|dddtj|dd 5}|ddd|t||t|d|t|dddd ddddS#1swxYwYdS) Nc&eZdZeddZdS);PatchTest.test_autospec_staticmethod_signature..Foo cdSrr2)r4rLrs rr>zIPatchTest.test_autospec_staticmethod_signature..Foo.static_methods.2dr Nr1)r!r"r#rHr>r2r rr0r0s&  2 2 2\ 2 2 2r r0r rr_rr>Trr)r>rr,r`rarr0r)s r$test_autospec_staticmethod_signaturez.PatchTest.test_autospec_staticmethod_signatures% 3 3 3 3 3 3 3 3 !Q!$$$ \# > > > ?& F1a1       i 0 0 0   i 3 3 3   iAqA  > > >  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?A&B00B47B4c zGdd}|dddtj|dd 5}|ddd|t||t|d|t|dddd ddddS#1swxYwYdS) Nc&eZdZeddZdS):PatchTest.test_autospec_classmethod_signature..Foor1cdSrr2)r@r4rLrs rrAzGPatchTest.test_autospec_classmethod_signature..Foo.class_methods26$r Nr3)r!r"r#rIrAr2r rr0r:s&  6 6 6[ 6 6 6r r0r rr_r4rATrr)rArr,r`rar5s r#test_autospec_classmethod_signaturez-PatchTest.test_autospec_classmethod_signatures% 7 7 7 7 7 7 7 7 A### \#~ = = = ? F1a1       i 0 0 0   i 3 3 3   iAqA  > > >  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?r7ctdtzdd}|t|jt jt}tj|ddd}|t|jdS)Nrr_T)newrrM)rr!r`rarrrr,)rrrs rtest_autospec_with_newz PatchTest.test_autospec_with_newsu 0a$GGG )W]333X&,vzq4HHH )W]33333r cHGddt}tt|}|} |||||jt |dS#|wxYw)NceZdZgZdS)0PatchTest.test_autospec_with_object..BarN)r!r"r#extrar2r rrFrBsEEEr rFr)r0rrrrrClistr)rrFrrs rtest_autospec_with_objectz#PatchTest.test_autospec_with_objects     #   3///}}   ! !$ , , ,  ! !$*d 3 3 3 LLNNNNNGLLNNNNs 6B B!c.t}ttd}|} |||||d||dS#|wxYw)NTrr_)r0rrrrr)rFooClassrrs rtest_autospec_inheritsz PatchTest.test_autospec_inheritss4000}}   ! !$ 1 1 1  ! !$$q''8 4 4 4 LLNNNNNGLLNNNNs 5A>>Bcttd}|} |dt ||dt |j|dt |d|dt |dj|dS#|wxYw)NTrz name='Foo'z name='Foo.f'z name='Foo()'z name='Foo().f')rrrrreprr8r)rrrs rtest_autospec_namezPatchTest.test_autospec_name&s4000}}  MM-d 4 4 4 MM/4<< 8 8 8 MM/4T +;+; < < < MM+T$$t**,-?-? @ @ @ LLNNNNNGLLNNNNs B(C**Dc6tjtdtd} |n#tj}YnxYwt jddd}|||}|d|dS)Nr8ctr)rr2r rrvz'PatchTest.test_tracebacks..test4s r rzraise AssertionError) rr,r0rexc_infounittestTextTestResult_exc_info_to_stringr)rrverrr$ tracebacks rtest_tracebackszPatchTest.test_tracebacks3s c3 ) ) ! ! * ) ! ! DFFFF !,..CCC(tQ77..sD99  ,i88888s =Ac@ttt}|}||}||||||fD]}||dS)N new_callable)rrr rrrrfrrm1m2rs rtest_new_callable_patchz!PatchTest.test_new_callable_patchAs/CDDD ]]__  ]]__  R   F ' 'D  " "2 & & & & ' 'r cLtjtdt}|}||}||||||fD]}||dS)Nr8rV)rr,r0r rrrrfrXs rtest_new_callable_patch_objectz(PatchTest.test_new_callable_patch_objectNs,sC6JKKK ]]__  ]]__  R   F ' 'D  " "2 & & & & ' 'r cGfddtttdd}|} |t ||jtdd| dS#| wxYw)NceZdZdZfdZdS):PatchTest.test_new_callable_keyword_arguments..BarNc|_dSrrrrrFs rr5zCPatchTest.test_new_callable_keyword_arguments..Bar.__init__^# r r!r"r#rr5rFsrrFr`\3F $ $ $ $ $ $ $r rFr r)rWarg1arg2)rhri) r,rrrrtypersrrkr)rrr!rFs @r#test_new_callable_keyword_argumentsz-PatchTest.test_new_callable_keyword_arguments[s $ $ $ $ $ $ $& $ $ $ sCCC MMOO  MM$q''3 ' ' '   SZ11)=)=)= > > > LLNNNNNGLLNNNNs A B''B=c<Gfddttt}| |jt |n#|wxYwtt}| |jt |dS#|wxYw)NceZdZdZfdZdS)-PatchTest.test_new_callable_spec..BarNc|_dSrrbrcs rr5z6PatchTest.test_new_callable_spec..Bar.__init__mrdr rerfsrrFrnkrgr rFrWrr)rWrr)r,rrrrsrrkr)rrrFs @rtest_new_callable_specz PatchTest.test_new_callable_specjs  $ $ $ $ $ $ $& $ $ $ s===     SZ3 8 8 8 LLNNNNGLLNNNNsSAAA     SZs););); < < < LLNNNNNGLLNNNNs)BB)DDcfdtz}t|t}|t|jt|td}|} ||d|dS#|wxYw)Nz %s.weeeeerVT)rWrF)rd)rrrr`rrrfr)rnon_existent_attrpr!s rtest_new_callable_createz"PatchTest.test_new_callable_creates'(2 #/ B B B .!'222 #/    GGII   " "1E " 2 2 2 FFHHHHHAFFHHHHs -BB0c|tttt t |ttjt dt t dS)N)r>rWr8)r` ValueErrorrrr,r r0r:s r'test_new_callable_incompatible_with_newz1PatchTest.test_new_callable_incompatible_with_newsk  xVXXI       c3FHH"      r c|ttttd|ttjt dtddS)NT)rWrr8)r`rwrrr r,r0r:s r,test_new_callable_incompatible_with_autospecz6PatchTest.test_new_callable_incompatible_with_autospecsd  xi       c3Y      r c|Gddt}tttt|f}|D]}dD]}|di}t t fd|i|}|} |j}|tt|d| m#| wxYwdS)NceZdZdS)>PatchTest.test_new_callable_inherit_for_mocks..MockSubNr!r"r#r2r rMockSubr} Dr rrTrWx) r rr r rrrrr`rrr) rr MockClassesKlassargrrtr!rs r#test_new_callable_inherit_for_mocksz-PatchTest.test_new_callable_inherit_for_mockss     d    19dG !  E)  t(AAA&AAGGII ~H%%ngxMMMFFHHHHAFFHHHH   s $)B""B8cGddt}tt|d}|} |t |||tt|d| n#| wxYw| |j tdS)NceZdZdZdS)>PatchTest.test_new_callable_inherit_non_mock..NotAMockc||_dSrr)rrs rr5zGPatchTest.test_new_callable_inherit_non_mock..NotAMock.__init__s   r N)r!r"r#r5r2r rNotAMockrs# ! ! ! ! !r rTrpr) r,rrrrbrr`rrrrsrr0)rrrtr!s r"test_new_callable_inherit_non_mockz,PatchTest.test_new_callable_inherit_non_mocks ! ! ! ! !v ! ! ! ( = = = GGII  OOK844 5 5 5   ngq. I I I FFHHHHAFFHHHH %%%%%s ABB0c6|tGfddt}ttt|}|||tdS)Nc(eZdZfdZdZdZdS)>PatchTest.test_new_callable_class_decorating..SomeTestctt|ttdSr)rr0rrr)rmock_foorrvs rrzDPatchTest.test_new_callable_class_decorating..SomeTest._testsI  h/// c8,,,%%c955555r c0||dSrrrrs rtest_twozGPatchTest.test_new_callable_class_decorating..SomeTest.test_two 8$$$$$r c0||dSrrrs rtest_onezGPatchTest.test_new_callable_class_decorating..SomeTest.test_onerr Nr!r"r#rrr)rrvsrSomeTestrsQ 6 6 6 6 6 6  % % % % % % % %r rrV)r0r,rrrrrr)rrrrvs @@r"test_new_callable_class_decoratingz,PatchTest.test_new_callable_class_decoratings % % % % % % % %v % % %;5 :::8DD   c8$$$$$r cttj}tj}tjt dd}tjtdd}||fD]}| ttjdtjd| n#| wxYwttj|tj|tjt ddfd}|dS)Nr r)r8r;r_rcttjdtjddS)Nr_r)rr0rsr8r;) original_foorsrrvz+PatchTest.test_patch_multiple..testsM MM#| , , ,   SUA & & &   SUA & & & & &r ) r0r8r;rmultiplerrrrsr)r original_f original_gpatcher1patcher2rrvrs` @rtest_patch_multiplezPatchTest.test_patch_multiplesb U U >(a1555>#a000) 0 0G MMOOO  c<000  ***  ***   MM#| , , ,   SUJ / / /   SUJ / / / / A + + + ' ' ' ' ' , + ' s 5AC%%C;c|ttjt|ttjt dSr)r`rwrrrr0r:s rtest_patch_multiple_no_kwargsz'PatchTest.test_patch_multiple_no_kwargss< *enh??? *enc:::::r cBttj}tj}tjt t dt fd}|tj|tj|dS)Nr_r8r;rGcttj|tjdtj|t|tt|tdSNr_ rr0r8rsr;rGrbrr )r8rGrrs rrvz8PatchTest.test_patch_multiple_create_mocks..tests MM#| , , , MM#% # # #   SUA & & & MM#'3 ' ' ' OOK955 6 6 6 OOKY77 8 8 8 8 8r r0r8r;rrrrrs)rrrrvrs` @r test_patch_multiple_create_mocksz*PatchTest.test_patch_multiple_create_mockss U U Gqg > > > 9 9 9 9 9 ? > 9   +++  +++++r ctj}tj}tjtdd}d|_tjtdt }d|_|g|_|fd}|tj|tj|dS)Nr8r_r;ctj|tjddSr)rr0r;rsr8)r;rs rrvzHPatchTest.test_patch_multiple_create_mocks_different_order..tests7 MM#% # # #   SUA & & & & &r ) r0r8r;rr,attribute_nameradditional_patchersrs)rrrrr\rvs` r0test_patch_multiple_create_mocks_different_orderz:PatchTest.test_patch_multiple_create_mocks_different_ordersU U ,sC++!$ S#w//"',g#  ' ' ' '  '   +++  +++++r cttj}tj}tjt t tjt t tt dzfd}tjt t tt dztjt t fd}tt dztjt t tjt t fd}fd|||tj|tj|dS)N)r8raz.gc|fi|dSrr2r;rrs rtest1z?PatchTest.test_patch_multiple_stacked_decorators..test1+# E!  v     r c|fi|dSrr2rs rtest2z?PatchTest.test_patch_multiple_stacked_decorators..test21rr c|fi|dSrr2rs rtest3z?PatchTest.test_patch_multiple_stacked_decorators..test37rr cl|d}|d}|ttj|tj|tj|t|tt|tt|tdS)Nr8rG) poprcrr0r8r;rGrbrr )r;rr8rGrrs rrz?PatchTest.test_patch_multiple_stacked_decorators.._test=s 3A**U##C   V $ $ $ MM#| , , , MM#% # # # MM#% # # # MM#'3 ' ' ' OOK955 6 6 6 OOK955 6 6 6 OOKY77 8 8 8 8 8r r)rrrrrrrrs` @@r&test_patch_multiple_stacked_decoratorsz0PatchTest.test_patch_multiple_stacked_decorators&s U U G , , , g . . . x$        / . - ,  G , , , x$   g . . .     / .  - ,  x$   G , , , g . . .     / . - ,   9 9 9 9 9 9     +++  +++++r crt}tj}tj}tjt t dt }|} |d}|d}|t|tddg| t|| tj|| tj || t|t| t|t|n#|wxYw|tj||tj|dS)Nr_rr8rG)r0r8r;rrrrrrssetrrGrbrr r)rrrrrr$r8rGs r(test_patch_multiple_create_mocks_patcherz2PatchTest.test_patch_multiple_create_mocks_patcherQsH U U .WwGGG s A-C   S[[#sEl*;*; < < < MM#| , , , MM#% # # # MM#'3 ' ' ' OOK955 6 6 6 OOKY77 8 8 8 LLNNNNGLLNNNN  +++  +++++s C-EE4c|ttj}tj}Gfddt}t jt tdt|}|}|| | tj|| tj|dS)Nc(eZdZfdZdZdZdS)@PatchTest.test_patch_multiple_decorating_class..SomeTestcttj|tjdtj|t|tt|tdSrr)rr8rGrrvs rrzFPatchTest.test_patch_multiple_decorating_class..SomeTest._testrs c<000 ceQ'''  *** cgs+++ Ay 9 9::: C ; ;<<<<.SomeTest.test_twoz 1c"""""r c2|||dSrrrs rrzIPatchTest.test_patch_multiple_decorating_class..SomeTest.test_one|rr Nr)rrvsrrrpsQ = = = = = = # # # # # # # #r rr_r) r0r8r;r,rrrrrrrs)rrrrrrrvs @@r$test_patch_multiple_decorating_classz.PatchTest.test_patch_multiple_decorating_classjs U U  # # # # # # # #v # # # 5> 1'        +++  +++++r ctjtd}|t|jtjtdd}| |tjd|n#|wxYw| ttddS)Nblam)rT)rr) rrr0r`rrrsrrrcr rs rtest_patch_multiple_createz$PatchTest.test_patch_multiple_creates.6222 .'-888.6$???     SXv . . . LLNNNNGLLNNNN f--.....s - B""B8ctjttddg}|} |tj|dtjdtjdtjj dtjj d| tttjdd| dS#| wxYw)Nr4rL)rGrrGr rr)rrr0rrrsrGr4rLr r`rr&r)rrr$s rtest_patch_multiple_spec_setz&PatchTest.test_patch_multiple_spec_sets.'S#JGGG    SWfUm 4 4 4 GIIaLLL GIIaLLL GI ( ( + + + GI ( ( + + +   ngswT J J J LLNNNNNGLLNNNNs CD((D>cjGddt}tjttt|}|} |tj|d|tj|d| tj|| tj|| tjtj| dS#| wxYw)NceZdZdS)9PatchTest.test_patch_multiple_new_callable..ThingNr~r2r rThingrrr r)r8r;rWr8r;) r,rrr0rrrr8r;rrr)rrrr$s r test_patch_multiple_new_callablez*PatchTest.test_patch_multiple_new_callables     F   . 7gE     MM#% - - - MM#% - - -  ! !#% / / /  ! !#% / / /   SUCE * * * LLNNNNNGLLNNNNs B6DD2c`tj}tj}tjtddtjtddtjtddd}tjtddtjtddtjtddd}tjtddtjtddtjtddd}|||fD]]}|t ||tj||tj|^dS)Nr;r missingr8cdSrr2r2r rthing1z3PatchTest.test_nested_patch_failure..thing1 dr cdSrr2r2r rthing2z3PatchTest.test_nested_patch_failure..thing2rr cdSrr2r2r rthing3z3PatchTest.test_nested_patch_failure..thing3rr )r0r8r;rr,r`rrs)rrrrrrfuncs rtest_nested_patch_failurez#PatchTest.test_nested_patch_failures{U U c3 " " c9a ( ( c3 " " # " ) ( # "  c9a ( ( c3 " " c3 " " # " # " ) (  c3 " " c3 " " c9a ( ( ) ( # " # " FF* 0 0D   nd 3 3 3   SUJ / / /   SUJ / / / / 0 0r ctj}tj}tj}d}t jtddt jtd|t jtddd}t jtd|t jtddt jtddd}t jtddt jtddt jtd|d }|||fD]}}|t||tj||tj||tj|~dS) Nc tdNcrasherrr2r rrz4PatchTest.test_new_callable_failure..crasherI&& &r r;r rGrVr8cdSrr2r2r rrz3PatchTest.test_new_callable_failure..thing1rr cdSrr2r2r rrz3PatchTest.test_new_callable_failure..thing2rr cdSrr2r2r rrz3PatchTest.test_new_callable_failure..thing3rr ) r0r8r;rGrr,r`rrs) rrrrrrrrrs rtest_new_callable_failurez#PatchTest.test_new_callable_failuresU U w  ' ' ' c3 " " c5w 7 7 7 c3 " " # " 8 7 # "  c5w 7 7 7 c3 " " c3 " " # " # " 8 7  c3 " " c3 " " c5w 7 7 7 8 7 # " # " FF* 4 4D   i . . .   SUJ / / /   SUJ / / /   SWl 3 3 3 3  4 4r ctj}tj}tjtdd}d|_tjtdd}d|_tjtdd}d|_||g||gfD]o}||_|d}|t|| tj|| tj|pdS)Nr8r r;rcdSrr2r2r rrz3PatchTest.test_patch_multiple_failure..funcrr ) r0r8r;rr,rrr`rrs)rrrrgoodbad additionalsrs rtest_patch_multiple_failurez%PatchTest.test_patch_multiple_failuresU U ,sC++!$|Ca((!l3 1--& #;d 3 0 0K*5G '   W    nd 3 3 3   SUJ / / /   SUJ / / / / 0 0r cRtj}tj}tj}d}t jtdd}d|_t jtdd}d|_t jtd|}d|_||g||gfD]}||_|d} |t| | tj|| tj|| tj|dS)Nc tdrrr2r rrzCPatchTest.test_patch_multiple_new_callable_failure..crasherrr r8r r;rGrVcdSrr2r2r rrz@PatchTest.test_patch_multiple_new_callable_failure..funcrr ) r0r8r;rGrr,rrr`rrs) rrrrrrrrrrs r(test_patch_multiple_new_callable_failurez2PatchTest.test_patch_multiple_new_callable_failure sU U w  ' ' ',sC++!$|Ca((!l3G<<<" #;d 3 4 4K*5G '   W    i . . .   SUJ / / /   SUJ / / /   SWl 3 3 3 3 4 4r ctdtfddi}|tjdfd}|jddS)Nr0fishtasty nearly gone)rc>jddS)Nr)rsrr:srrvz=PatchTest.test_patch_multiple_string_subclasses..test*s!   SX} 5 5 5 5 5r )rjstrrrrsr)rr0rvrGs` @r%test_patch_multiple_string_subclassesz/PatchTest.test_patch_multiple_string_subclasses's53&67"344cee - 0 0 0 6 6 6 6 6 1 0 6  7+++++r zunittest.mock.patch.TEST_PREFIXrGcGddt}tj|dd|}|}||d||d||d||ddS)Nc*eZdZdZdZdZdZdZdS)-PatchTest.test_patch_test_prefix..Foorc|jSrrr:s rfoo_onez5PatchTest.test_patch_test_prefix..Foo.foo_one7 z!r c|jSrrr:s rfoo_twoz5PatchTest.test_patch_test_prefix..Foo.foo_two9rr c|jSrrr:s rrz6PatchTest.test_patch_test_prefix..Foo.test_one;rr c|jSrrr:s rrz6PatchTest.test_patch_test_prefix..Foo.test_two=rr N)r!r"r#rrrrrr2r rr0r4sUE " " " " " " " " " " " " " "r r0rchangedr)r,rrsrrrr)rr0rGs rtest_patch_test_prefixz PatchTest.test_patch_test_prefix2s " " " " "& " " "4el333C88cee  222  222 444 44444r r<cGfddt}dditjd|}|}||ddi||ddi||ddi||ddidS)Nc8eZdZfdZfdZfdZfdZdS)2PatchTest.test_patch_dict_test_prefix..Fooc"tSrrkrthe_dicts rbar_onez:PatchTest.test_patch_dict_test_prefix..Foo.bar_oneLH~~%r c"tSrr r s rbar_twoz:PatchTest.test_patch_dict_test_prefix..Foo.bar_twoNrr c"tSrr r s rrz;PatchTest.test_patch_dict_test_prefix..Foo.test_onePrr c"tSrr r s rrz;PatchTest.test_patch_dict_test_prefix..Foo.test_twoRrr N)r!r"r#r rrr)r srr0rKsy & & & & & & & & & & & & & & & & & & & & & &r r0keyrr)r)r,rrkrsr rrr)rr0rGr s @rtest_patch_dict_test_prefixz%PatchTest.test_patch_dict_test_prefixIs & & & & & & && & & &:&1ejy111#66 SUU  (:;;;  (:;;; %)<=== %)<=====r cdD]}tdtzfi|di}|} |dt ||dt |j|dt ||dt |j|#|wxYwdS)NrrrrTz name='SomeClass'z! name='SomeClass.class_attribute'z name='SomeClass()'z# name='SomeClass().class_attribute')rr!rrrJrr)rrrtr!s rtest_patch_with_spec_mock_reprz(PatchTest.test_patch_with_spec_mock_repr_s3  Cnx/??C;??A A  1477;;; A"1#455777 3T!!##YY??? C"1133#677999  s B&C--Dc\tdd5}|dt|j|dt|ddddS#1swxYwYdS)Nunittest.test.testmock.supportTrz" name='support.SomeClass.wibble()'z$ name='support.SomeClass().wibble()')rrrJrr)rr!s rtest_patch_nested_autospec_reprz)PatchTest.test_patch_nested_autospec_reprns 3d C C C 8q MM>q{113344 6 6 6 MM@q{{}}335566 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8sBB!!B%(B%c:dD]}tdtzfi|di}|} |t jg}||j|||j|||jjt g|}|t ||j|||t ||j|||jt jg||jjt g||jt jg| #| wxYwdS)NrrT) rr!rrrrs mock_calls method_callsappendr)rrrtr!kallsr$s rtest_mock_calls_with_patchz$PatchTest.test_mock_calls_with_patchws3  Cnx/??C;??A A    u555  777  !4tvvh??? TVV$$$  u555  TVV]]__---  u555  !2T[]]ODDD  !9DFF8DDD  !4t{}}oFFF/  s F:HHctd}|t|jt d5t }|t jd<d|_td}d|_|| dddn #1swxYwY| |jddS)N squizz.squozzsquizzr_) rr` ImportErrorrrr rrsquozzrrs)rp1r#s rtest_patch_imports_lazilyz#PatchTest.test_patch_imports_lazilys ? # # +rx000 X    VVF$*CK !FM''BFM HHJJJ GGIII                *****sA#B..B25B2cGddGfddtfd}|dd}td5t}|tjd<|t |dddn #1swxYwY|jd t | jd d | jd d dS)NceZdZdZdS);PatchTest.test_patch_propagates_exc_on_exit..holderNNNN)r!r"r#rNr2r rholderr+s'HHHr r-c eZdZdfd ZeZdS)APatchTest.test_patch_propagates_exc_on_exit..custom_patchNcJtj|||||||f_dSr)r__exit__rN)retypevaltbr-s rr1zJPatchTest.test_patch_propagates_exc_on_exit..custom_patch.__exit__s*eS"555"'b.r r,)r!r"r#r1r)r-sr custom_patchr/s4 1 1 1 1 1 1DDDr r5c Xt|\}}||tdddddi S)NF)rr)rgetterrlr5s rwith_custom_patchzFPatchTest.test_patch_propagates_exc_on_exit..with_custom_patchs= +F 3 3 FI< 7D%dB r r"ctr) RuntimeErrorrs rrvz9PatchTest.test_patch_propagates_exc_on_exit..tests r r#rr zexception value not propagatedrz"exception traceback not propagated) rrr rrr`r:rrNassertIsNotNone)rr8rvr#r5r-s @@r!test_patch_propagates_exc_on_exitz+PatchTest.test_patch_propagates_exc_on_exits ( ( ( ( ( ( ( (       6           ? + +   , + X   2 2VVF$*CK !   lD 1 1 1  2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 foa(,777 V_Q/< > > > V_Q/@ B B B B Bs 9BBBc6dD]}tdtzfddi|di}|t|j|t dtt fddi|di}||dS)Nrrrz%s.doesnotexistrTctSr) doesnotexistr2r rrz1PatchTest.test_create_and_specs..sr )rr!r`rarrMODNAMEr)rkwargrts rtest_create_and_specszPatchTest.test_create_and_specss5  E'(2''4' ''A   i 1 1 1   i)=)= > > >g<>> >>A A !!.'1"0+???!!.'1nMMM  s AB  B cd}tt|}|} |t ||dS#|wxYw)N)__call__r)rrBrrbcallablerrrrtr!s rtest_callable_spec_as_listz$PatchTest.test_callable_spec_as_listsf ' % % % GGII  OOHQKK ( ( ( FFHHHHHAFFHHHH "A&&A<cd}tt|}|} |t ||dS#|wxYw)Nrr)rrBrrcrSrrTs rtest_not_callable_spec_as_listz(PatchTest.test_not_callable_spec_as_list sh ' % % % GGII    Xa[[ ) ) ) FFHHHHHAFFHHHHrVc|tjtjtj}t dt t dtt dfd}|tj|dS)N os.unlinkos.chdirzos.pathctjtj|tjtjdSr)rstopallrrpathunlinkchdir) mock_pathr`rr_s rrz-PatchTest.test_patch_stopall..patchedsV MOOO MM"'9 - - - MM")V , , , MM"(E * * * * *r ) rr_r`r^rrrrr)rr^rr`r_s` @@rtest_patch_stopallzPatchTest.test_patch_stopallsw k9%%++--- j.))//111 y   + + + + + +   +   bgt$$$$$r cgGddtfdfddDtj|gddS)NceZdZdxZxZZdS)*PatchTest.test_stopall_lifo..thingN)r!r"r#onetwothreer2r rrre*s $ $C $#r rc bGfddtfdddddddi S)Nc&eZdZfdZxZS)?PatchTest.test_stopall_lifo..get_patch..mypatchcrt|Sr)rsuperr)r __class__rlmypatchstoppeds rrzDPatchTest.test_stopall_lifo..get_patch..mypatch.stop/s1NN9--- $//44666r )r!r"r#r __classcell__)rnrlrorps@rrork.sH777777777777r rocSrr2rsrrz@PatchTest.test_stopall_lifo..get_patch..2s5r F)r)rlrorprs`@r get_patchz.PatchTest.test_stopall_lifo..get_patch-sr 7 7 7 7 7 7 7 7 7& 7 7 77====)T4 $dB88 8r cJg|]}| Sr2)r).0r3rss r z/PatchTest.test_stopall_lifo..4s-CCCC3    CCCr )rfrgrh)rhrgrf)r,rr]rs)rrsrprs @@@rtest_stopall_lifozPatchTest.test_stopall_lifo(s % % % % %F % % % 8 8 8 8 8 8 DCCC+BCCCC  "9"9"9:::::r ci}ddi}ddd|}|}}tj|dddtj|dd itjfd }|||||||||tj||||||||dS) Nr r4ABr rIIIrrLcd=dSr r2)dic3srrz2PatchTest.test_patch_dict_stopall..patchedCsQr )rjrrkrrrsr])rdic1dic2origdic1origdic2origdic3rrs @rtest_patch_dict_stopallz!PatchTest.test_patch_dict_stopall9s]3x399;;99;;99;; 4ST**++11333 4!S""((*** D            D(+++ D(+++ x(((  x((( x((( x(((((r ctj}tj}i}ddd}|}|}t dt t dtt j|dddt j||d=| tj|| tj|| ||| ||t j | tj|| tj|| ||| ||dS) Nryrzr{rZr[r|r}r )rr_r`rjrrrrrkrrr]rrs)roriginal_unlinkoriginal_chdirrrrrs r!test_patch_and_patch_dict_stopallz+PatchTest.test_patch_and_patch_dict_stopallSs)399;;99;; k9%%++--- j.))//111 4ST**++11333 4   G O444 >222 D(+++ D(+++  bi111 bh/// x((( x(((((r cdd}tj|dd5||ddddn #1swxYwY||d|j}tj|dd5||jddddn #1swxYwY||j|tj|dd 5||jd dddn #1swxYwY||jt tj|d t d g5||jt d gdddn #1swxYwY||jt dd d }tj|dt dg5||ddddn #1swxYwY||ddS)Nrc|S)TESTr2rs rrGz)PatchTest.test_special_attrs..foomsHr __defaults__)r r __doc__FUNr" testpatch2__annotations__)sr rc|Srr2)rr4s rrGz)PatchTest.test_special_attrs..foosHr __kwdefaults__)rr )r)rr,rsrr"r!rkr)rrGorig_docs rtest_special_attrszPatchTest.test_special_attrsls    \#~u 5 5 ' '   SSUUA & & & ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' """; \#y% 0 0 1 1   S[% 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 h/// \#|\ : : ; ;   S^\ : : : ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 222 \#0$ |2D2D E E F F   S0$ |2D2D E E E F F F F F F F F F F F F F F F ,dff555      \#/zl1C1C D D ' '   SSUUA & & & ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' """""sYAA  A  B44B8;B80DDD'*FF!$F!9H$$H(+H(c t}t|d<d|d<|}tt dt d}t||z}tj|t|5| t||dddn #1swxYwY| ||tj||5| t||dddn #1swxYwY| ||dS)Nr4pythonrLcdefghijklmnopqrstuvwxyz) rr,rjrDziprangeitemsrrkrs)rrGr update_valuespatched_valuess rtest_patch_orderdictzPatchTest.test_patch_orderdictsmm88CC88::S!;U2YYGGHH ciikk**]: Z[77 8 8 @ @   T#))++.. ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h''' Z] + + @ @   T#))++.. ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h'''''s$)6C++C/2C/!6E##E'*E'cddl}tjd5tjd=tjd=tjd=tjd=tdd}|ddddS#1swxYwYdS) Nrz sys.modulesrzunittest.test.testmockz unittest.testrO unittest.test.testmock.support.XcdSrr2r;s rrvz9PatchTest.test_dotted_but_module_not_loaded..testsr )unittest.test.testmock.supportrrkrr)rrOrvs r!test_dotted_but_module_not_loadedz+PatchTest.test_dotted_but_module_not_loadeds .--- Z & &   <= 45 O, J'5 6 6  7 6  DFFF                  sAA==BBcGdd}dd|fD]q}||5|t5t|dddn #1swxYwYdddn #1swxYwYrdS)NceZdZdS)*PatchTest.test_invalid_target..FooNr~r2r rr0rrr r0 )r)subTestr`rar)rr0rs rtest_invalid_targetzPatchTest.test_invalid_targets/        2ssuuo " "FV,, " "&&y11""&MMM""""""""""""""" " " " " " " " " " " " " " " " " "s5BA* B*A. .B1A. 2BB B ctdtdd}|t5|ddddS#1swxYwYdS)Nrr )r>rcdSrr2r2r rrvz@PatchTest.test_cant_set_kwargs_when_passing_a_mock..testsDr )rr,r`rars r(test_cant_set_kwargs_when_passing_a_mockz2PatchTest.test_cant_set_kwargs_when_passing_a_mocks 1vxx1 E E E F E   y ) )   DFFF                  s AA!ANT)sr!r"r#rfrzrrrrrrrrrrrrrrrrr rrr&r0r4r;rHrSrXrmrrr}rrrrrrrrrrrrrrrrrrrrrr r%r*r-r6r<r?rErHrKrTr[r]rkrqrurxrzrrrrrrrrrrrrrrrrrrrrrrrr r(r=rDrGrJrNrPrUrXrbrwrrrrrrrr2r rr^r^Us:::: / / /666 / / ////( ! ! !(>(>(>V 0 0 0'-'-'-T               666888666444...( 6 6 6,,, 0 0 0///,///4 / / / (((B///6(((>///4*** : : : " " "&&&"0002000 + + +*** *** + + + & & &&&&&&&>444$444$ 3 3 3 3 3 3 ) ) )@@@F($$$--- --- ? ? ? ? ? ?444       9 9 9 ' ' ' ' ' '   *         & & & & %%%*>;;; ,,,&,,,*(,(,(,V,,,2,,,B / / /    $0002444<0000444:,,, U ,e4455545, U ,e44>>54>*   8886 + + +BBBD   ...$   %%%";;;")))4)))2###6(((&&"""r r^__main__r)*rr collectionsrrOunittest.test.testmockrrrrtest.test_importlib.utilr unittest.mockrr r r r r rrrrrrrr!rrBr.rmrrrr,r0rrMrOTestCaser^mainr2r rrs  ######******AAAAAAAA,,,,,, ;x  ( "      (     &    h !!!!!!!!$fffff!fffR; zHMOOOOOr