
    4hh                        S SK r S SKrS SKJr  S SKrS SKrS SKJr  S SKJ	r	J
r
  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJr  Sr\R8                  \   rS	\-  rSS
 jr \RB                  q"\RF                  r$ " S S\%5      r&S\-  r'\&4S jr( " S S\%5      r) " S S\RT                  5      r+\S:X  a  \RX                  " 5         gg)    N)OrderedDict)support)	SomeClassis_instance)DirsOnSysPath)uncache)NonCallableMockCallableMixinsentinel	MagicMockMockNonCallableMagicMockpatch_patchDEFAULTcall_get_targetbuiltinsz%s.PTModulec                 t   ^   " U 4S jS[         5      nU(       d  U 4S jnU 4S jnX2l        XBl        U" 5       $ )Nc                   "   > \ rS rSrU 4S jrSrg)_get_proxy.<locals>.Proxy   c                    > [        TU5      $ N)getattrselfnameobjs     N/opt/python-3.13.8/usr/lib/python3.13/test/test_unittest/testmock/testpatch.py__getattr__%_get_proxy.<locals>.Proxy.__getattr__   s    3%%     N)__name__
__module____qualname____firstlineno__r!   __static_attributes__)r   s   r    Proxyr      s    	& 	&r#   r*   c                    > [        TX5        g r   )setattr)r   r   valuer   s      r    __setattr___get_proxy.<locals>.__setattr__"   s    C%r#   c                    > [        TU5        g r   )delattrr   s     r    __delattr___get_proxy.<locals>.__delattr__$   s    Cr#   )objectr.   r2   )r   get_onlyr*   r.   r2   s   `    r    
_get_proxyr6      s1    & & 	&	''7Nr#   c                   `    \ rS rSrS rS rS rSr\S 5       r	\
S 5       r " S S	\5      rS
rg)Foo0   c                     g r   r$   r   as     r    __init__Foo.__init__1   s    4r#   c                     g r   r$   r;   s     r    fFoo.f2   s    Dr#   c                     g r   r$   r   s    r    gFoo.g3   s    r#   barc                      g r   r$   r$   r#   r    static_methodFoo.static_method6   s    r#   c                     g r   r$   )clss    r    class_methodFoo.class_method9   s    r#   c                       \ rS rSrS rSrg)Foo.Bar<   c                     g r   r$   rC   s    r    r<   	Foo.Bar.a=   s    Tr#   r$   Nr%   r&   r'   r(   r<   r)   r$   r#   r    BarrO   <   s    r#   rT   r$   N)r%   r&   r'   r(   r=   r@   rD   foostaticmethodrH   classmethodrL   r4   rT   r)   r$   r#   r    r8   r8   0   s8    
C  f r#   r8   z%s.Fooc                     g r   r$   r<   bs     r    functionr[   B   s    r#   c                   2    \ rS rSrS rS rS rS rS rSr	g)		ContainerE   c                     0 U l         g r   valuesrC   s    r    r=   Container.__init__F   s	    r#   c                      U R                   U   $ r   r`   r   r   s     r    __getitem__Container.__getitem__I   s    {{4  r#   c                      X R                   U'   g r   r`   )r   r   r-   s      r    __setitem__Container.__setitem__L   s    !Dr#   c                     U R                   U	 g r   r`   rd   s     r    __delitem__Container.__delitem__O   s    KKr#   c                 ,    [        U R                  5      $ r   )iterra   rC   s    r    __iter__Container.__iter__R   s    DKK  r#   r`   N)
r%   r&   r'   r(   r=   re   rh   rk   ro   r)   r$   r#   r    r]   r]   E   s    !"!r#   r]   c                      \ rS rSrS~S jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rAS@ rBSA rCSB rDSC rESD rFSE rGSF rHSG rISH rJSI rKSJ rLSK rMSL rNSM rOSN rPSO rQSP rRSQ rSSR rTSS rUST rVSU rWSV rXSW rYSX rZSY r[SZ r\S[ r]S\ r^S] r_S^ r`\a" S_S`5      Sa 5       rb\a" S_Sb5      Sc 5       rcSd rdSe reSf rfSg rgSh rhSi riSj rjSk rkSl rlSm rmSn rnSo roSp rpSq rqSr rrSs rsSt rtSu ruSv rvSw rwSx rxSy rySz rzS{ r{S|r|g})	PatchTestW   c                     [         nU(       d  [        nU R                  [        U5        U R	                  [        X5      5        U R                  [        U[        5      5        g r   )r   r	   assertRaises	TypeError
assertTruer   assertFalser
   )r   r   magic	MockClasss       r    assertNotCallablePatchTest.assertNotCallableY   sE    (	'I)S)C34S-89r#   c                    ^ ^  " S S[         5      m[        R                   " TS[        R                  5      UU 4S j5       nU" 5         T R	                  TR
                  [        R                  S5        g )Nc                   ,    \ rS rSr\R
                  rSrg)4PatchTest.test_single_patchobject.<locals>.Somethingd   r$   Nr%   r&   r'   r(   r   Original	attributer)   r$   r#   r    	Somethingr   d        ))Ir#   r   r   c                  \   > TR                  T R                  [        R                  S5        g N	unpatchedassertEqualr   r   Patchedr   r   s   r    test/PatchTest.test_single_patchobject.<locals>.testg   s!    Y00(2B2BKPr#   patch not restoredr4   r   r   r   r   r   r   r   r   r   s   ` @r    test_single_patchobject!PatchTest.test_single_patchobjectc   sa    	* 	* 
ih.>.>	?	Q 
@	Q 	,,h.?.?-	/r#   c                     SnU R                  [        U5         [        R                  " SS5        S S S 5        g ! , (       d  f       g = f)Nz>'Something' must be the actual object to be patched, not a strr   do_something)assertRaisesRegexrv   r   r4   )r   msgs     r    &test_patchobject_with_string_as_target0PatchTest.test_patchobject_with_string_as_targeto   s1    N##Is3LLn5 433s	   :
Ac                    ^ ^  " S S[         5      m[        R                   " TSS 5      UU 4S j5       nU" 5         T R                  TR                  [        R
                  S5        g )Nc                   ,    \ rS rSr\R
                  rSrg)7PatchTest.test_patchobject_with_none.<locals>.Somethingu   r$   Nr   r$   r#   r    r   r   u   r   r#   r   r   c                  >   > TR                  T R                  S5        g r   )assertIsNoner   r   s   r    r   2PatchTest.test_patchobject_with_none.<locals>.testx   s    i11;?r#   r   )r4   r   r   r   r   r   r   s   ` @r    test_patchobject_with_none$PatchTest.test_patchobject_with_nonet   sZ    	* 	* 
id	3	@ 
4	@ 	,,h.?.?-	/r#   c                   ^ ^  " S S[         5      m[        R                   " TS[        R                  5      [        R                   " TS[        R                  5      UU 4S j5       5       nU" 5         T R                  TR                  [        R                  S5        T R                  TR                  [        R                  S5        g )Nc                   D    \ rS rSr\R
                  r\R                  rSr	g)6PatchTest.test_multiple_patchobject.<locals>.Something   r$   N
r%   r&   r'   r(   r   r   r   	Original2next_attributer)   r$   r#   r    r   r           ))I%//Nr#   r   r   r   c                     > TR                  T R                  [        R                  S5        TR                  T R                  [        R
                  S5        g r   )r   r   r   r   r   Patched2r   s   r    r   1PatchTest.test_multiple_patchobject.<locals>.test   sG     Y00(2B2B(*Y55x7H7H(*r#   r   )
r4   r   r   r   r   r   r   r   r   r   r   s   ` @r    test_multiple_patchobject#PatchTest.test_multiple_patchobject   s    	0 	0 
ih.>.>	?	i!183D3D	E	* 
F 
@	* 	,,h.?.?-	/1183E3E-	/r#   c                     [         n[        S[        -  [        R                  5      S 5       n [        R
                  q U" 5         U R                  [         [        R
                  5        Uq g ! Uq f = f)N%s.somethingc                      g r   r$   r$   r#   r    r   8PatchTest.test_object_lookup_is_quite_lazy.<locals>.test       r#   )	somethingr   r%   r   
Something2replacement_valuer   r   originalr   s      r     test_object_lookup_is_quite_lazy*PatchTest.test_object_lookup_is_quite_lazy   sa    	~((*=*=	>	 
?		! 22IFY(B(BC IIs   ;A- -A1c                   ^  [        S[        -  [        R                  5      U 4S j5       nU" 5         T R	                  [
        R                  [        R                  S5        [        S[        -  [        R                  5      [        S[        -  [        R                  5      U 4S j5       5       nT R	                  [
        R                  [        R                  S5        T R	                  [
        R                  [        R                  S5        U" 5         T R	                  [
        R                  [        R                  S5        T R	                  [
        R                  [        R                  S5        [        5       n[        R                  Ul        [        S[        -  U5      U 4S j5       nU" 5         U" 5         T R                  [        US5        g )Nr   c                  d   > T R                  [        R                  [        R                  S5        g r   )r   PTModuler   r   r   rC   s   r    r   "PatchTest.test_patch.<locals>.test   s$    X//1D1D(*r#   r   z%s.something_elsec                     > T R                  [        R                  [        R                  S5        T R                  [        R
                  [        R                  S5        g r   )r   r   r   r   r   something_elseSomethingElserC   s   r    r   r      sG     X//1D1D(*X44h6L6L(*r#   %s.openc                  \   > T R                  [        SS5      [        R                  S5        g )Nfilenamerzopen not patched)r   openr   HandlerC   s   r    r   r      s#    T*c2HOO/1r#   )r   r%   r   r   r   r   r   r   r   r   r   r   return_valuebuiltin_stringassertNotEqualr   )r   r   mocks   `  r    
test_patchPatchTest.test_patch   sp   	~((*=*=	>	* 
?	* 	++X-?-?-	/ 
~((*=*=	>	"X-x/E/E	F	* 
G 
?	* 	++X-?-?-	/00(2H2H-	/ 	++X-?-?-	/00(2H2H-	/ v$OO	y>)4	0	1 
1	1 	D$(<=r#   c                    ^  [        S[        -  [        R                  5      U 4S j5       nU" 5         T R	                  [
        R                  R                  S5        g )Nz%s.SomeClass.class_attributec                  x   > T R                  [        R                  R                  [        R
                  S5        g r   )r   r   r   class_attributer   ClassAttributerC   s   r    r   2PatchTest.test_patch_class_attribute.<locals>.test   s-     X//??%44kCr#   r   )r   r%   r   r   r   r   r   r   r   r   s   ` r    test_patch_class_attribute$PatchTest.test_patch_class_attribute   sS    	-8&&
(	C
(	C 	(,,<<.	0r#   c                   ^ ^^^  " S S[         5      m[        R                   " TS5      UU 4S j5       nU" 5         [        R                   " TS5      [        R                   " TS5      UUUU 4S j5       5       nS =mmU" [        R                  [        R                  5      u  mmU" [        R                  [        R                  5        g )Nc                   D    \ rS rSr\R
                  r\R                  rSr	g):PatchTest.test_patchobject_with_default_mock.<locals>.Test   r$   N)
r%   r&   r'   r(   r   r   r   r   
something2r)   r$   r#   r    Testr      s     ))I!++Jr#   r   r   c                 n   > TR                  U TR                  S5        TR                  U [        S5        g )N"Mock not passed into test function.patch with two arguments did not create a mock)r   r   assertIsInstancer   )r   r   r   s    r    r   :PatchTest.test_patchobject_with_default_mock.<locals>.test   s3    T4>>AC!!$	LNr#   r   c                   > TR                  U [        R                  S5        TR                  U[        R                  S5        TR                  UTR                  S5        TR                  UTR
                  S5        TR                  U[        S5        TR                  U[        S5        TR                  TUS5        TR                  TUS5        X#4$ )Nz0Patched function didn't receive initial argumentz/Patched function didn't receive second argumentr   z)Second Mock not passed into test functionr   zunexpected value for mock1)	r   r   this1this2r   r   r   r   r   )r   r   mock1mock2r   
outerMock1
outerMock2r   s       r    r   r      s     UHNNOQUHNNNPUDOOACUDNNHJ!!%LN!!%LN 
E3OP
E3OP<r#   )r4   r   r   r   r   )r   r   r   r   r   s   ` @@@r    "test_patchobject_with_default_mock,PatchTest.test_patchobject_with_default_mock   s    	,6 	, 
dK	(	N 
)	N 		dK	(	dL	)	  
* 
)	 & #'&
Z!%hnnhnn!E
J 	X^^X^^,r#   c                 P   ^  [        S[        -  [        S9U 4S j5       nU" 5         g )N%s.SomeClassspecc                    > TR                  [        U 5        TR                  [        [        R                  [
        5      5        TR                  [        S 5        g )Nc                  "    [         R                  $ r   r   
not_wibbler$   r#   r    <lambda>>PatchTest.test_patch_with_spec.<locals>.test.<locals>.<lambda>
  
    i6J6Jr#   r   r   rw   r   wibbler   ru   AttributeErrorMockSomeClassr   s    r    r   ,PatchTest.test_patch_with_spec.<locals>.test  =    Y6OOK	(8(8)DEn.JKr#   )r   r%   r   r   s   ` r    test_patch_with_specPatchTest.test_patch_with_spec  s*    	~(y	9	L 
:	L
 	r#   c                 b   ^  [         R                  " [        S[        S9U 4S j5       nU" 5         g )Nr   r   c                    > TR                  [        R                  U 5        TR                  [	        [        R                  R
                  [        5      5        TR                  [        S 5        g )Nc                  6    [         R                  R                  $ r   r   r   r   r$   r#   r    r   DPatchTest.test_patchobject_with_spec.<locals>.test.<locals>.<lambda>      i&?&?&J&Jr#   	r   r   r   rw   r   r   r   ru   r   MockAttributer   s    r    r   2PatchTest.test_patchobject_with_spec.<locals>.test  Q    Y66FOOK	(A(A(H(H'02 3nJLr#   r   r4   r   r   s   ` r    test_patchobject_with_spec$PatchTest.test_patchobject_with_spec  s-    	i!2	C	L 
D	L 	r#   c                 J   ^  [        S[        -  S/S9U 4S j5       nU" 5         g )Nr   r   r   c                    > TR                  [        U 5        TR                  [        [        R                  [
        5      5        TR                  [        S 5        g )Nc                  "    [         R                  $ r   r   r$   r#   r    r   FPatchTest.test_patch_with_spec_as_list.<locals>.test.<locals>.<lambda>   r   r#   r   r   s    r    r   4PatchTest.test_patch_with_spec_as_list.<locals>.test  r   r#   r   r%   r   s   ` r    test_patch_with_spec_as_list&PatchTest.test_patch_with_spec_as_list  s,    	~(z	:	L 
;	L
 	r#   c                 \   ^  [         R                  " [        SS/S9U 4S j5       nU" 5         g )Nr   r   r   c                    > TR                  [        R                  U 5        TR                  [	        [        R                  R
                  [        5      5        TR                  [        S 5        g )Nc                  6    [         R                  R                  $ r   r  r$   r#   r    r   LPatchTest.test_patchobject_with_spec_as_list.<locals>.test.<locals>.<lambda>,  r  r#   r  r  s    r    r   :PatchTest.test_patchobject_with_spec_as_list.<locals>.test&  r	  r#   r
  r   s   ` r    "test_patchobject_with_spec_as_list,PatchTest.test_patchobject_with_spec_as_list%  s/    	i!2(	D	L 
E	L 	r#   c                 t   ^  [        S[        -  5      [        S[        -  S/S9U 4S j5       5       nU" 5         g )Nr   r   r   r   c                    > TR                  [        U 5        TR                  [        [        R                  [
        5      5        TR                  [        S 5        g )Nc                  "    [         R                  $ r   r   r$   r#   r    r   MPatchTest.test_nested_patch_with_spec_as_list.<locals>.test.<locals>.<lambda>8  r   r#   r   )r   MockOpenr   s     r    r   ;PatchTest.test_nested_patch_with_spec_as_list.<locals>.test3  s?     Y6OOK	(8(8)DEn.JKr#   )r   r   r%   r   s   ` r    #test_nested_patch_with_spec_as_list-PatchTest.test_nested_patch_with_spec_as_list1  s>    	y>)	*	~(z	:	L 
; 
+	L 	r#   c                 H   ^  [        S[        -  SS9U 4S j5       nU" 5         g )Nr   Tr   c                    >^  TR                  [        T 5        T R                    TR                  [        U 4S j5        g )Nc                     > T R                   $ r   r   r   s   r    r   IPatchTest.test_patch_with_spec_as_boolean.<locals>.test.<locals>.<lambda>C      m6N6Nr#   r   r   r   ru   r   r   s   `r    r   7PatchTest.test_patch_with_spec_as_boolean.<locals>.test=  -    Y6  n.NOr#   r  r   s   ` r    test_patch_with_spec_as_boolean)PatchTest.test_patch_with_spec_as_boolean<  s*    	~(t	4	P 
5	P 	r#   c                 Z   ^  [         R                  " [        SSS9U 4S j5       nU" 5         g )Nr   Tr   c                    >^  TR                  [        T 5        T R                    TR                  [        U 4S j5        g )Nc                     > T R                   $ r   r'  r(  s   r    r   PPatchTest.test_patch_object_with_spec_as_boolean.<locals>.test.<locals>.<lambda>O  r*  r#   r+  r   s   `r    r   >PatchTest.test_patch_object_with_spec_as_boolean.<locals>.testI  r-  r#   )r   r4   r   r   s   ` r    &test_patch_object_with_spec_as_boolean0PatchTest.test_patch_object_with_spec_as_booleanH  s+    	h$	7	P 
8	P 	r#   c                 H   ^  [        S[        -  SS9U 4S j5       nU" 5         g )Nr   Tr   c                    >^ TR                  [        U [        5      5        U " 5       mTR                  T5        TR                    TR                  [        U4S j5        g )Nc                     > T R                   $ r   r'  )instances   r    r   VPatchTest.test_patch_class_acts_with_spec_is_inherited.<locals>.test.<locals>.<lambda>]  s    h6I6Ir#   )rw   r   r   r{   r   ru   r   )r   r:  r   s    @r    r   DPatchTest.test_patch_class_acts_with_spec_is_inherited.<locals>.testU  sC    OOKyAB$H""8,OOn.IJr#   r  r   s   ` r    ,test_patch_class_acts_with_spec_is_inherited6PatchTest.test_patch_class_acts_with_spec_is_inheritedT  s*    	~(t	4	K 
5	K 	r#   c                    ^  [        S[        -  [        R                  SS9U 4S j5       nU" 5         T R	                  [
        S 5        g )N
%s.froobleTcreatec                  N   > T R                  [        [        R                  5        g r   )r   froobler   FrooblerC   s   r    r   LPatchTest.test_patch_with_create_mocks_non_existent_attributes.<locals>.testc  s    Wh&6&67r#   c                      [         $ r   rD  r$   r#   r    r   PPatchTest.test_patch_with_create_mocks_non_existent_attributes.<locals>.<lambda>h      Wr#   )r   r   r   rE  ru   	NameErrorr   s   ` r    4test_patch_with_create_mocks_non_existent_attributes>PatchTest.test_patch_with_create_mocks_non_existent_attributesb  sA    	|n,h.>.>t	L	8 
M	8 	)_5r#   c                    ^  [         R                  " [        S[        R                  SS9U 4S j5       nU" 5         T R                  [        [        S5      5        g )NrD  TrA  c                  b   > T R                  [        R                  [        R                  5        g r   )r   r   rD  r   rE  rC   s   r    r   RPatchTest.test_patchobject_with_create_mocks_non_existent_attributes.<locals>.testl  s    Y..0@0@Ar#   )r   r4   r   r   rE  rx   hasattrr   s   ` r    :test_patchobject_with_create_mocks_non_existent_attributesDPatchTest.test_patchobject_with_create_mocks_non_existent_attributesk  sI    	iH,<,<T	J	B 
K	B 	I67r#   c                     U R                  [        5         [        S[        -  [        R
                  5      S 5       nU" 5         S S S 5        U R                  [        S 5        g ! , (       d  f       N&= f)Nr@  c                      g r   r$   r$   r#   r    r   9PatchTest.test_patch_wont_create_by_default.<locals>.testv      r#   c                      [         $ r   rH  r$   r#   r    r   =PatchTest.test_patch_wont_create_by_default.<locals>.<lambda>z  rJ  r#   )ru   r   r   r   r   rE  rK  r   s     r    !test_patch_wont_create_by_default+PatchTest.test_patch_wont_create_by_defaultt  sV    ~.<.0(2B2BC DF	 /
 	)_5 /.s   /A%%
A3c                    U R                  [        5         [        R                  " [        S[
        R                  5      S 5       nU" 5         S S S 5        U R                  [        [        S5      5        g ! , (       d  f       N.= f)Nordc                      g r   r$   r$   r#   r    r   ?PatchTest.test_patchobject_wont_create_by_default.<locals>.test  rW  r#   )	ru   r   r   r4   r   r   rE  rx   rQ  r   s     r    'test_patchobject_wont_create_by_default1PatchTest.test_patchobject_wont_create_by_default}  s[    ~.\\)UH,<,<= >F / 	E23	 /.s   8A66
Bc                     [        [        S-   5      S 5       n[        [        S-   5      S 5       nU R                  U" 5       S5        U R                  U" 5       S5        g )Nz.ordc                 &    SU l         [        S5      $ )Ne   c)r   r]  )mock_ords    r    test_ord>PatchTest.test_patch_builtins_without_create.<locals>.test_ord  s    $'H!s8Or#   z.openc                     U R                   nSUR                  l         [        S5      nUR                  5       nUR                  5         U$ )Nabcdzdoesnotexists.txt)r   readr   close)	mock_openmfobjdatas       r    	test_open?PatchTest.test_patch_builtins_without_create.<locals>.test_open  s=    &&A"(AFF+,D99;DJJLKr#   rd  rj  r   r%   r   )r   rg  rq  s      r    "test_patch_builtins_without_create,PatchTest.test_patch_builtins_without_create  sa    	x		 
 	 
x	 	 
!	 	S)f-r#   c                    ^ ^  " S S[         5      m[        R                   " TS[        S 5      5      UU 4S j5       nU" 5         T R                  TR	                  5       [
        R                  5        g )Nc                   $    \ rS rSr\S 5       rSrg)5PatchTest.test_patch_with_static_methods.<locals>.Fooi  c                  "    [         R                  $ r   )r   Staticr$   r#   r    woot:PatchTest.test_patch_with_static_methods.<locals>.Foo.woot  s    &r#   r$   N)r%   r&   r'   r(   rV   r{  r)   r$   r#   r    r8   rx    s    ' 'r#   r8   r{  c                  "    [         R                  $ r   )r   r   r$   r#   r    r   :PatchTest.test_patch_with_static_methods.<locals>.<lambda>  s
    8H8Hr#   c                  b   > TR                  T R                  5       [        R                  5        g r   )r   r{  r   r   )r8   r   s   r    	anonymous;PatchTest.test_patch_with_static_methods.<locals>.anonymous  s    SXXZ)9)9:r#   )r4   r   rV   r   r{  r   rz  )r   r  r8   s   ` @r    test_patch_with_static_methods(PatchTest.test_patch_with_static_methods  sV    	'& 	'
 
c6<0H#I	J	; 
K	;X__5r#   c                    ^  [         R                  n[        R                  " [         SS5      U 4S j5       nU" 5         T R	                  [         R                  U5        g )Nr8   c                  F   > T R                  [        R                  S5        g Nr8   )r   r   r8   rC   s   r    r  -PatchTest.test_patch_local.<locals>.anonymous  s    X\\51r#   )r   r8   r   r4   r   )r   rU   r  s   `  r    test_patch_localPatchTest.test_patch_local  sD    ll	hu	-	2 
.	2s+r#   c                   ^ ^  " S S[         5      nU" 5       m[        R                  Tl        [        R                   " TSS5      UU 4S j5       nU" 5         T R	                  TR                  [        R                  5        g )Nc                       \ rS rSrSrSrg)'PatchTest.test_patch_slots.<locals>.Fooi  )r8   r$   N)r%   r&   r'   r(   	__slots__r)   r$   r#   r    r8   r    s     Ir#   r8   c                  >   > TR                  T R                  S5        g r  )r   r8   rU   r   s   r    r  -PatchTest.test_patch_slots.<locals>.anonymous  s    SWWe,r#   )r4   r   r8   r   r   )r   r8   r  rU   s   `  @r    test_patch_slotsPatchTest.test_patch_slots  s_    	!& 	! e,,	c5%	(	- 
)	-(,,/r#   c                 H  ^ ^  " S S[         5      m " UU 4S jS[         5      n[        R                   " TS[        R                  5      " U5      nU" 5       nUR	                  5         UR                  5         T R                  TR                  [        R                  S5        g )Nc                   ,    \ rS rSr\R
                  rSrg)=PatchTest.test_patchobject_class_decorator.<locals>.Somethingi  r$   Nr   r$   r#   r    r   r    r   r#   r   c                   2   > \ rS rSrU U4S jrU U4S jrSrg)7PatchTest.test_patchobject_class_decorator.<locals>.Fooi  c                 \   > TR                  TR                  [        R                  S5        g r   r   
other_selfr   r   s    r    test_methodCPatchTest.test_patchobject_class_decorator.<locals>.Foo.test_method  s$      !4!4h6F6F!,.r#   c                 \   > TR                  TR                  [        R                  S5        g Nznon-test method patched)r   r   r   r   r  s    r    not_test_methodGPatchTest.test_patchobject_class_decorator.<locals>.Foo.not_test_method  s$      !4!4h6G6G!:<r#   r$   N)r%   r&   r'   r(   r  r  r)   r   s   r    r8   r    s    .< <r#   r8   r   r   )	r4   r   r   r   r  r  r   r   r   )r   r8   r@   r   s   `  @r     test_patchobject_class_decorator*PatchTest.test_patchobject_class_decorator  s|    	* 	*	< 	<& 	< ll9k83C3CDSIE		,,h.?.?-	/r#   c                 z  ^   " S S[         5      n " U 4S jS[         5      n[        S[        -  5      " U5      nU" 5       nUR                  5         UR	                  5         T R                  UR                  [        R                  S5        T R                  [        R                  [        R                  S5        g )Nc                   ,    \ rS rSr\R
                  rSrg)7PatchTest.test_patch_class_decorator.<locals>.Somethingi  r$   Nr   r$   r#   r    r   r    r   r#   r   c                   2   > \ rS rSrSrU 4S jrU 4S jrSrg)1PatchTest.test_patch_class_decorator.<locals>.Fooi  whateverc                 H   > TR                  [        R                  US5        g r   )r   r   r   )r  mock_somethingr   s     r    r  =PatchTest.test_patch_class_decorator.<locals>.Foo.test_method  s      !3!3^!,.r#   c                 d   > TR                  [        R                  [        R                  S5        g r  )r   r   r   r   r   )r  r   s    r    r  APatchTest.test_patch_class_decorator.<locals>.Foo.not_test_method  s$      !3!3X5G5G!:<r#   r$   N)r%   r&   r'   r(   test_class_attrr  r  r)   rC   s   r    r8   r    s    (O.< <r#   r8   r   r   )r4   r   r%   r  r  r   r   r   r   r   r   r   )r   r   r8   r@   s   `   r    test_patch_class_decorator$PatchTest.test_patch_class_decorator  s    	* 	*		<& 		< NX-.s3E		,,h.?.?-	/++X-?-?-	/r#   c                 <  ^ ^  " S S[         5      m[        R                   " TS[        R                  5      [        R                   " TS[        R                  5      UU 4S j5       5       nU" 5         T R	                  TR
                  [        R                  S5        g )Nc                   D    \ rS rSr\R
                  r\R                  rSr	g)3PatchTest.test_patchobject_twice.<locals>.Somethingi  r$   Nr   r$   r#   r    r   r    r   r#   r   r   c                  \   > TR                  T R                  [        R                  S5        g r   r   r   s   r    r   .PatchTest.test_patchobject_twice.<locals>.test  s#     Y00(2B2BKPr#   r   r   r   s   ` @r    test_patchobject_twice PatchTest.test_patchobject_twice  s}    	0 	0 
ih.>.>	?	ih.>.>	?	Q 
@ 
@	Q 	,,h.?.?-	/r#   c                   ^ ^ [        5       SS.mTR                  5       n[        R                  " T5      U4S j5       nU" 5         T R	                  TU5        [        R                  " TSS05      UU 4S j5       nU" 5         T R	                  TU5        [        R                  " TS/5      UU 4S j5       nU" 5         T R	                  TU5        g )	Nr   initialotherc                      > ST S'   T S	 ST S'   g N   r<   r  something elser  r$   rU   s   r    r   'PatchTest.test_patch_dict.<locals>.test      CHI+CLr#   r<   rZ   c                  f   > TR                  [        T 5      S5        TR                  T S   S5        g Nr  r<   rZ   r   lenr  s   r    r   r    +    SXq)SXs+r#   rY   c                  f   > TR                  [        T 5      S5        TR                  T S   S5        g r  r  r  s   r    r   r    r  r#   r4   copyr   dictr   r   r   r   rU   s   `  @r    test_patch_dictPatchTest.test_patch_dict   s     ([988:	C	, 
	,
 	h'	C#s	$	, 
%	, 	h'	C*	&	, 
'	, 	h'r#   c                   ^ ^ [        5       m[        5       TS'   STS'   TR                  R                  5       n[        R
                  " T5      U4S j5       nU" 5         T R                  TR                  U5        [        R
                  " TSS05      UU 4S j5       nU" 5         T R                  TR                  U5        g )Nr  r   r  c                      > ST S'   T S	 ST S'   g r  r$   r  s   r    r   =PatchTest.test_patch_dict_with_container_object.<locals>.test(  r  r#   r<   rZ   c                  z   > TR                  [        T R                  5      S5        TR                  T S   S5        g r  )r   r  ra   r  s   r    r   r  2  s/    S_a0SXs+r#   r]   r4   ra   r  r   r  r   r  s   `  @r    %test_patch_dict_with_container_object/PatchTest.test_patch_dict_with_container_object!  s    kI#G::??$	C	, 
	,
 	X.	C#s	$	, 
%	, 	X.r#   c                   ^ ^ [        5       SS.mTR                  5       n[        R                  " TSS9UU 4S j5       nU" 5         T R	                  TU5        [        R                  " TSS0SS9UU 4S j5       nU" 5         T R	                  TU5        [        R                  " TS	/SS9UU 4S
 j5       nU" 5         T R	                  TU5        g )Nr   r  Tclearc                  >   > TR                  T 0 5        ST S'   ST S'   g Nr  r<   r  r  r   r  s   r    r   2PatchTest.test_patch_dict_with_clear.<locals>.test@  s%    S"%CH+CLr#   r<   rZ   c                  .   > TR                  T SS05        g Nr<   rZ   r  r  s   r    r   r  J      S3*-r#   rY   c                  .   > TR                  T SS05        g r  r  r  s   r    r   r  R  r  r#   r  r  s   `  @r    test_patch_dict_with_clear$PatchTest.test_patch_dict_with_clear<  s     ([988:	Ct	$	, 
%	,
 	h'	C#s4	0	. 
1	. 	h'	C*T	2	. 
3	. 	h'r#   c                   ^ ^ [        5       m[        5       TS'   STS'   TR                  R                  5       n[        R
                  " TSS9UU 4S j5       nU" 5         T R                  TR                  U5        [        R
                  " TSS0SS9UU 4S	 j5       nU" 5         T R                  TR                  U5        g )
Nr  r   r  Tr  c                  R   > TR                  T R                  0 5        ST S'   ST S'   g r  r   ra   r  s   r    r   GPatchTest.test_patch_dict_with_container_object_and_clear.<locals>.testb  s)    SZZ,CH+CLr#   r<   rZ   c                  B   > TR                  T R                  SS05        g r  r  r  s   r    r   r  l  s    SZZ#s4r#   r  r  s   `  @r    /test_patch_dict_with_container_object_and_clear9PatchTest.test_patch_dict_with_container_object_and_clear[  s    kI#G::??$	Ct	$	, 
%	,
 	X.	C#s4	0	5 
1	5 	X.r#   c                     SS0n[         R                  " USS9 nU R                  USS05        S S S 5        U R                  USS05        g ! , (       d  f       N#= f)Nr<   rZ   re  )r<   )r   r  r   )r   rU   patcheds      r    "test_patch_dict_as_context_manager,PatchTest.test_patch_dict_as_context_manageru  sQ    CjZZs#wWsCj1 $sCj) $#s   A
Ac                 :   0 n[        S[        -  [        5       5      [        S[        -  [        5       SS9[         R                  " [        [        5       5      [         R                  " U5      S 5       5       5       5       nU R                  UR                  S5        g )Nr   Tautospecc                      g r   r$   r$   r#   r    	some_name0PatchTest.test_name_preserved.<locals>.some_name  s     r#   r  )r   r%   r4   r   r  r   )r   rU   r  s      r    test_name_preservedPatchTest.test_name_preserved|  sy    	~(&(	3	~(&(T	B	i	*	C 
 
+ 
C 
4 	++[9r#   c                     0 n[         R                  " USS05      S 5       nU R                  [        5         U" 5         S S S 5        U R	                  U0 5        g ! , (       d  f       N!= f)Nr<   rZ   c                      [        S5      e)NKonradrK  r$   r#   r    r   1PatchTest.test_patch_with_exception.<locals>.test  s    H%%r#   )r   r  ru   rK  r   )r   rU   r   s      r    test_patch_with_exception#PatchTest.test_patch_with_exception  s]    	C#s	$	& 
%	& y)F * 	b! *)s   A
A(c                 X   ^  [         R                  " SSS05      U 4S j5       nU" 5         g )Nz
os.environkonrad_delongz
some valuec                  F   > T R                  S[        R                  5        g )Nr  )assertInosenvironrC   s   r    r   3PatchTest.test_patch_dict_with_string.<locals>.test  s    MM/2::6r#   )r   r  r   s   ` r    test_patch_dict_with_string%PatchTest.test_patch_dict_with_string  s-    	L?L"A	B	7 
C	7 	r#   c                 *  ^  [         R                  R                  5       n[        R                  " SSS05      U 4S j5       n SS0[         l        U" 5         T R                  [         R                  SS05        U[         l        g ! U[         l        f = f)Nz*test.test_unittest.testmock.support.targetrF   BARc                  L   > T R                  [        R                  SSS.5        g )NBAZr  rU   rF   )r   r   targetrC   s   r    r   <PatchTest.test_patch_dict_decorator_resolution.<locals>.test  s    W^^U5-IJr#   rU   r	  )r   r  r  r   r  r   r   s   `  r    $test_patch_dict_decorator_resolution.PatchTest.test_patch_dict_decorator_resolution  sx     >>&&(	@5%.	Q	K 
R	K	&#U^GNFW^^eU^<%GNXGNs   6B Bc                    [        S[        -  [        SS9S 5       nU R                  [        U5        [         R
                  " [        S[        SS9S 5       nU R                  [        U5        [        S[        -  SS9S 5       nU R                  [        U5        [         R
                  " [        SSS9S	 5       nU R                  [        U5        g )
Nr   Tr   spec_setc                     SU l         g NrU   zrz   s    r    r   +PatchTest.test_patch_spec_set.<locals>.test  	    IKr#   r   c                     SU l         g r  r  r  s    r    r   r    r  r#   r  c                     SU l         g r  r  r  s    r    r   r    r  r#   c                     SU l         g r  r  r  s    r    r   r    r  r#   )r   r%   r   ru   r   r4   r   r   s     r    test_patch_spec_setPatchTest.test_patch_spec_set  s    	~(y4	H	  
I	  	.$/	g{T	J	  
K	  	.$/	~(4	8	  
9	  	.$/	g{T	:	  
;	  	.$/r#   c                 ^    [        S[        -  SS9S 5       nU R                  [        U5        g )Nr   Tr  c                      U " 5       nSUl         g r  r  )rz   r:  s     r    r   -PatchTest.test_spec_set_inherit.<locals>.test  s     {HHJr#   )r   r%   ru   r   r   s     r    test_spec_set_inheritPatchTest.test_spec_set_inherit  s2    	~(4	8	 
9	 	.$/r#   c                 F   [         n[        S[        -  5      nU R                  [         U5        UR	                  5       n U R                  X15        U R                  [         U5        UR                  5         U R                  [         U5        g ! UR                  5         f = f)Nr   )r   r   r%   assertIsstartassertIsNotstop)r   r   patcherr   s       r    test_patch_start_stopPatchTest.test_patch_start_stop  st    12i*}}	T,MM)T*LLNi* LLNs    'B B c                 d    [        [        SS5      nU R                  UR                  5       5        g NrF   r  )r   foo_namer   r(  r   r)  s     r    test_stop_without_start!PatchTest.test_stop_without_start  s$    %+',,.)r#   c                     [        [        SS5      nUR                  5         UR                  5         U R	                  UR                  5       5        g r-  )r   r.  r&  r(  r   r/  s     r    test_stop_idempotentPatchTest.test_stop_idempotent  s6    %+',,.)r#   c                 ~    [        [        SS5      nU   UR                  5         S S S 5        g ! , (       d  f       g = fr-  )r   r.  r(  r/  s     r    test_exit_idempotentPatchTest.test_exit_idempotent  s&    %+LLN WWs   .
<c                     [        [        SS5      nUR                  5          U R                  [        UR                  5        UR                  5         g ! UR                  5         f = fr-  )r   r.  r&  ru   RuntimeErrorr(  r/  s     r    test_second_start_failure#PatchTest.test_second_start_failure  sE    %+	lGMM:LLNGLLNs    A A&c                     [        [        SS5      nU   U R                  [        UR                  5        S S S 5        g ! , (       d  f       g = fr-  )r   r.  ru   r9  r&  r/  s     r    test_second_enter_failure#PatchTest.test_second_enter_failure  s1    %+lGMM: WWs	   !>
Ac                     [        [        SS5      nUR                  5         UR                  5         UR                  5         UR                  5         g r-  )r   r.  r&  r(  r/  s     r    test_second_start_after_stop&PatchTest.test_second_start_after_stop  s4    %+r#   c                 ~   [        5       nUR                  n[        R                  " USS5      nU   U R	                  UR
                  S5        U R                  UR                  U5        U R	                  UR                  U5        SUl        X#l        Xl        U R	                  UR
                  S5        U R                  UR                  U5        U R	                  UR                  U5        S S S 5        U R	                  UR                  U5        U R	                  UR                  S5        g ! , (       d  f       NG= f)NrF   xFT)	r   rF   r   r4   r   is_localr%  r  temp_original)r   mock_objectmock_barr)  s       r    test_property_settersPatchTest.test_property_setters	  s    f??,,{E37W--u5MM'..+6W22H=#G%N$/!W--t4MM'..(3W22K@  	{3#. Ws   B<D..
D<c                 \   [         n[        R                  " [        SS5      nU R	                  [         U5        UR                  5       n U R                  US5        U R	                  [         U5        UR                  5         U R	                  [         U5        g ! UR                  5         f = f)Nr   rU   )r   r   r4   r   r%  r&  r   r(  )r   r   r)  replaceds       r    test_patchobject_start_stop%PatchTest.test_patchobject_start_stop  sy    ,,xe<i*==?	Xu-MM)X.LLNi* LLNs   
(B B+c                 2   SS0nUR                  5       n[        R                  " US/SS9nU R                  X5        UR	                  5          U R                  USS05        UR                  5         U R                  X5        g ! UR                  5         f = f)NrU   rF   spameggsTr  rP  rQ  )r  r   r  r   r&  r(  r   dr   r)  s       r    test_patch_dict_start_stop$PatchTest.test_patch_dict_start_stop)  s    EN668**Q!1 2$?%	Q 01LLN% LLNs   B Bc                     SS0nUR                  5       n[        R                  " US/SS9nU R                  UR	                  5       5        U R                  X5        g )NrU   rF   rO  Tr  )r  r   r  rx   r(  r   rR  s       r    "test_patch_dict_stop_without_start,PatchTest.test_patch_dict_stop_without_start7  sN    EN668**Q!1 2$?(%r#   c                   ^^ U mSS0mTR                  5       n " UU4S jS[        5      n[        R                  " TSS0SS9" U5      nU R	                  TU5        U" 5       nUR
                  " 5         U R	                  TU5        UR                  " 5         U R	                  TU5        U" 5       nUR
                  " 5         U R	                  TU5        UR                  " 5         U R	                  TU5        g )	NrP  rQ  c                   2   > \ rS rSrU U4S jrU U4S jrSrg)7PatchTest.test_patch_dict_class_decorator.<locals>.TestiD  c                 .   > TR                  TSS05        g NrU   rF   r  r   rS  thiss    r    
test_firstBPatchTest.test_patch_dict_class_decorator.<locals>.Test.test_firstE        UEN3r#   c                 .   > TR                  TSS05        g r]  r  r^  s    r    test_secondCPatchTest.test_patch_dict_class_decorator.<locals>.Test.test_secondG  rb  r#   r$   N)r%   r&   r'   r(   r`  rd  r)   )rS  r_  s   r    r   r[  D  s    44 4r#   r   rU   rF   Tr  )r  r4   r   r  r   r`  rd  )r   r   r   r   rS  r_  s       @@r    test_patch_dict_class_decorator)PatchTest.test_patch_dict_class_decorator?  s    V668	4 	46 	4 zz!eU^48>H%vH%H%vH%H%r#   c                 l  ^ ^  " S S[         5      n " S S5      nXU" 5       U4 H  n[        U5      m[        R                   " TSS5      UU 4S j5       nU" 5         T R                  TR                  S5        T R                  UR                  S5        T R                  STR                  5        M     g )Nc                       \ rS rSrSrSrg)0PatchTest.test_get_only_proxy.<locals>.Somethingi_  rU   r$   Nr%   r&   r'   r(   rU   r)   r$   r#   r    r   rj  _      Cr#   r   c                       \ rS rSrSrSrg)4PatchTest.test_get_only_proxy.<locals>.SomethingElseia  rU   r$   Nrk  r$   r#   r    r   rn  a  rl  r#   r   rU   rF   c                  >   > TR                  T R                  S5        g NrF   r   rU   proxyr   s   r    r   +PatchTest.test_get_only_proxy.<locals>.testg        E2r#   r4   r6   r   r   rU   assertNotIn__dict__r   r   r   thingr   rs  s   `    @r    test_get_only_proxyPatchTest.test_get_only_proxy^  s    	 		 	 y{MIEu%E\\%.3 /3FUYY.UYY.UENN3 Jr#   c                 j  ^ ^  " S S[         5      n " S S5      nXU" 5       U4 H  n[        USS9m[        R                   " TSS5      UU 4S	 j5       nU" 5         T R                  TR                  S5        T R                  UR                  S5        T R                  STR                  5        M     g )
Nc                       \ rS rSrSrSrg)6PatchTest.test_get_set_delete_proxy.<locals>.Somethingiq  rU   r$   Nrk  r$   r#   r    r   r  q  rl  r#   r   c                       \ rS rSrSrSrg):PatchTest.test_get_set_delete_proxy.<locals>.SomethingElseis  rU   r$   Nrk  r$   r#   r    r   r  s  rl  r#   r   F)r5   rU   rF   c                  >   > TR                  T R                  S5        g rp  rq  rr  s   r    r   1PatchTest.test_get_set_delete_proxy.<locals>.testy  ru  r#   rv  ry  s   `    @r    test_get_set_delete_proxy#PatchTest.test_get_set_delete_proxyp  s    	 		 	 y{MIEy59E\\%.3 /3FUYY.UYY.UENN3 Jr#   c                 H   [         S[        5       S.n[        [        40 UD6nUR	                  5       nUR                  5         U R                  [         U5        U R                  UR                  R                  5       S5        U R                  UR                  [        5        g )N!   side_effectzfoo.bar.return_valuerU   )KeyErrorr   r   r.  r&  r(  ru   r   rU   rF   r   r   kwargsr)  r   s       r    test_patch_keyword_args!PatchTest.test_patch_keyword_args  sv    !)2"& +F+}}(D),dhh	2r#   c                 `   [         S[        5       S.n[        R                  " [        S40 UD6nUR                  5       nUR                  5         U R                  [         U5        U R                  UR                  R                  5       S5        U R                  UR                  [        5        g )Nr  r  r@   )r  r   r   r4   r8   r&  r(  ru   r   rU   rF   r   r  s       r    test_patch_object_keyword_args(PatchTest.test_patch_object_keyword_args  s|    !)2"& ,,sC262}}(D),dhh	2r#   c           	         SS0nUR                  5       n[        R                  " USSSS9nUR                  5          U R	                  U[        SSSS95        UR                  5         U R	                  X5        g ! UR                  5         f = f)NrU   rF   r        )rU   rF   baz)r  r   r  r&  r   r(  )r   r   r  r)  s       r    test_patch_dict_keyword_args&PatchTest.test_patch_dict_keyword_args  su    5>}}**X1!;	Xtqa'@ALLN( LLNs   A: :Bc                 n  ^ ^^  " S S[         5      nU 4S jmU 4S jmUUU 4S jn[        [        SS9" U5      nU" 5       nT R                  [        U5        U" 5         [
        R                  [           n[        R                   " USSS9" U5      nU" 5       nT R                  [        U5        U" 5         g )	Nc                   @    \ rS rSrS rS rS rSr " S S\5      r	Sr
g	)
$PatchTest.test_autospec.<locals>.Booi  c                     g r   r$   r;   s     r    r=   -PatchTest.test_autospec.<locals>.Boo.__init__  s    4r#   c                     g r   r$   r;   s     r    r@   &PatchTest.test_autospec.<locals>.Boo.f  s    Dr#   c                     g r   r$   rC   s    r    rD   &PatchTest.test_autospec.<locals>.Boo.g  s    r#   rF   c                       \ rS rSrS rSrg)(PatchTest.test_autospec.<locals>.Boo.Bari  c                     g r   r$   rC   s    r    r<   *PatchTest.test_autospec.<locals>.Boo.Bar.a  s    Tr#   r$   NrS   r$   r#   r    rT   r    s    !r#   rT   r$   N)r%   r&   r'   r(   r=   r@   rD   rU   r4   rT   r)   r$   r#   r    Boor    s    ' C"f "r#   r  c                 d   > U " S5        U R                  S5        TR                  [        U 5        g N   )assert_called_withru   rv   r   r   s    r    _test&PatchTest.test_autospec.<locals>._test  s(    G##A&i.r#   c                   > U R                  S5        U R                   R                  S5        TR                  [        U R                   5        U R	                  5         U R                  R                  5         TR                  [        U R                  S5        TR                  [
        [        U S5        U R                  R                  5         U R                  R                  R                  5         TR                  [
        [        U R                  S5        U R                  5         U R                  R                  5         U R                  R                  5         U R                  R                  R                  5         TR                  [        U R                  R                  S5        U R                  5       R                  5         U R                  5       R                  R                  5         TR                  [        U R                  5       R                  S5        TR                  [
        [        U R                  S5        TR                  [
        [        U R                  5       S5        g )Nr  hrF   rZ   )r@   r  ru   rv   rD   r   r   rU   lowerrT   r<   r  s    r    _test2'PatchTest.test_autospec.<locals>._test2  sx   FF1IFF%%a(i0FFHFF%%'i3ngtSAHHNNHHNN--/ngtxxGHHJHH'')HHJJLHHJJ))+iQ7HHJLLNHHJLL++-iq9ngtxxEngtxxz3Gr#   c                 p   > T" U 5        T" U 5        T" U " S5      5        TR                  U [        5        U $ r  )r%  r8   )r   r  r  r   s    r    r[   )PatchTest.test_autospec.<locals>.function  s/    $K4L47OMM$$Kr#   Tr  r8   )r4   r   r.  r'  r8   sysmodulesr%   )r   r  r[   r   r   moduler  r  s   `     @@r    test_autospecPatchTest.test_autospec  s    	"& 	"	/
	H:	 X-h7vd#X&||FED9(Cvd#r#   c                 H   ^  [        S[        -  SS9U 4S j5       nU" 5         g )N%s.functionTr  c                 N  > [         R                  5         TR                  [        [         R                  5        TR                  [        [         R
                  5        [        S5        TR                  [        [         R                  5        [         R                  S5        [         R	                  5         [         R                  5         [        SS5        [         R                  SS5        TR                  [        [         5        TR                  [        [        [         S5        g )Nr     r  rU   )
r[   assert_not_calledru   AssertionErrorassert_calledassert_called_oncer  rv   r   r   r  s    r    r   .PatchTest.test_autospec_function.<locals>.test  s    &&(nh.D.DEnh.I.IJQKnh.H.HI''*""$'')QN''1-i2ngxGr#   r  r   s   ` r    test_autospec_function PatchTest.test_autospec_function  s*    	}x'$	7	H 
8	H 	r#   c                 f    [        S[        -  SSS9S 5       nU" 5       nU R                  US5        g )Nr  Tr  )r  r   c                     [        SS5      $ )Nr  r  )r[   )mock_functions    r    r   .PatchTest.test_autospec_keywords.<locals>.test  s     Aq>!r#   rs  )r   r   results      r    test_autospec_keywords PatchTest.test_autospec_keywords  s>    	}x'$
	"
	" #r#   c                     [        S[        -  SS9 n[        R                  5         UR	                  5         S S S 5        g ! , (       d  f       g = f)Nz%s.Foo.static_methodTr  )r   r%   r8   rH   assert_called_once_withr   methods     r    test_autospec_staticmethod$PatchTest.test_autospec_staticmethod  s9    )H4tD**, EDD   %A  
Ac                     [        S[        -  SS9 n[        R                  5         UR	                  5         S S S 5        g ! , (       d  f       g = f)Nz%s.Foo.class_methodTr  )r   r%   r8   rL   r  r  s     r    test_autospec_classmethod#PatchTest.test_autospec_classmethod  s9    (83dCv**, DCCr  c           
      4    " S S5      nUR                  SSSS9  [        R                  " USSS	9 nU" SSSS9  U R                  [        U5        U R                  [        US5        U R                  [        USSSS
S9  S S S 5        g ! , (       d  f       g = f)Nc                   (    \ rS rSr\SS j5       rSrg);PatchTest.test_autospec_staticmethod_signature.<locals>.Fooi  c                    g r   r$   )r<   rZ   re  s      r    rH   IPatchTest.test_autospec_staticmethod_signature.<locals>.Foo.static_method  s    .2r#   r$   N
   )r%   r&   r'   r(   rV   rH   r)   r$   r#   r    r8   r    s    2 2r#   r8   r  r  r  re  rH   Tr  r  )rH   r   r4   ru   rv   r   r8   r  s      r    $test_autospec_staticmethod_signature.PatchTest.test_autospec_staticmethod_signature  s    	3 	3 	!Q!$\\#>&1a1i0i3iAqA>	 ?>>   AB		
Bc           
      4    " S S5      nUR                  SSSS9  [        R                  " USSS	9 nU" SSSS9  U R                  [        U5        U R                  [        US5        U R                  [        USSSS
S9  S S S 5        g ! , (       d  f       g = f)Nc                   (    \ rS rSr\SS j5       rSrg):PatchTest.test_autospec_classmethod_signature.<locals>.Fooi*  c                    g r   r$   )rK   r<   rZ   re  s       r    rL   GPatchTest.test_autospec_classmethod_signature.<locals>.Foo.class_method+  s    26r#   r$   Nr  )r%   r&   r'   r(   rW   rL   r)   r$   r#   r    r8   r  *  s    6 6r#   r8   r  r  r  r  rL   Tr  r  )rL   r   r4   ru   rv   r  s      r    #test_autospec_classmethod_signature-PatchTest.test_autospec_classmethod_signature(  s    	7 	7 	A#\\#~=1a1i0i3iAqA>	 >==r  c                    [        S[        -  SSS9nU R                  [        UR                  5        [
        R                  [           n[         R                  " USSSS9nU R                  [        UR                  5        g )Nr  r  T)newr  r[   )r   r%   ru   rv   r&  r  r  r4   )r   r)  r  s      r    test_autospec_with_new PatchTest.test_autospec_with_new7  s_    0a$G)W]]3X&,,vzq4H)W]]3r#   c                     " S S[         5      n[        [        US9nUR                  5       n U R	                  X15        U R	                  UR
                  [        5        UR                  5         g ! UR                  5         f = f)Nc                       \ rS rSr/ rSrg)0PatchTest.test_autospec_with_object.<locals>.BariA  r$   N)r%   r&   r'   r(   extrar)   r$   r#   r    rT   r  A  s    Er#   rT   r  )r8   r   r.  r&  r   r  listr(  )r   rT   r)  r   s       r    test_autospec_with_object#PatchTest.test_autospec_with_object@  sa    	# 	 3/}}	!!$,!!$**d3LLNGLLNs   1A1 1Bc                     [         n[        [        SS9nUR                  5       n U R	                  X15        U R	                  U" S5      U5        UR                  5         g ! UR                  5         f = f)NTr  r  )r8   r   r.  r&  r   r(  )r   FooClassr)  r   s       r    test_autospec_inherits PatchTest.test_autospec_inheritsM  sX    40}}	!!$1!!$q'84LLNGLLNs   )A   A2c                    [        [        SS9nUR                  5       n U R                  S[	        U5      5        U R                  S[	        UR
                  5      5        U R                  S[	        U" S 5      5      5        U R                  S[	        U" S 5      R
                  5      5        UR                  5         g ! UR                  5         f = f)NTr  z name='Foo'z name='Foo.f'z name='Foo()'z name='Foo().f')r   r.  r&  r   reprr@   r(  )r   r)  r   s      r    test_autospec_namePatchTest.test_autospec_nameX  s    40}}	MM-d4MM/4<8MM/4T
+;<MM+T$t*,,-?@LLNGLLNs   BB= =Cc                    [         R                  " [        S[        5       5      S 5       n U" 5         [
        R                  " S S S5      nUR                  WU 5      nU R                  SU5        g !   [        R                  " 5       n NV= f)Nr@   c                      [         er   )r  r$   r#   r    r   'PatchTest.test_tracebacks.<locals>.testf  s      r#   r   zraise AssertionError)	r   r4   r8   r  exc_infounittestTextTestResult_exc_info_to_stringr   )r   r   errr  	tracebacks        r    test_tracebacksPatchTest.test_tracebackse  sv    	c3	)	! 
*	!	!F ((tQ7..sD9	,i8	!,,.Cs   A0 0B	c                     [        [        [        S9nUR                  5       nUR	                  5         UR                  5       nUR	                  5         U R                  X#5        X#4 H  nU R                  U5        M     g )Nnew_callable)r   r.  r   r&  r(  r'  r{   r   r)  m1m2r   s        r    test_new_callable_patch!PatchTest.test_new_callable_patchs  s_    /CD]]_]]_ FD""4( r#   c                    [         R                  " [        S[        S9nUR	                  5       nUR                  5         UR	                  5       nUR                  5         U R                  X#5        X#4 H  nU R                  U5        M     g )Nr@   r  )r   r4   r8   r   r&  r(  r'  r{   r	  s        r    test_new_callable_patch_object(PatchTest.test_new_callable_patch_object  se    ,,sC6JK]]_]]_ FD""4( r#   c                 4  ^  " U4S jS[         5      m[        [        TSSS9nUR                  5       n U R	                  [        U5      T5        U R                  TR                  [        SSS95        UR                  5         g ! UR                  5         f = f)Nc                   &   > \ rS rSrSrU 4S jrSrg):PatchTest.test_new_callable_keyword_arguments.<locals>.Bari  Nc                    > UTl         g r   r  r   r  rT   s     r    r=   CPatchTest.test_new_callable_keyword_arguments.<locals>.Bar.__init__  
    #
r#   r$   r%   r&   r'   r(   r  r=   r)   rT   s   r    rT   r        F$ $r#   rT   r  r  )r  arg1arg2)r  r  )
r4   r   r.  r&  r%  typer   r  r  r(  )r   r)  rn  rT   s      @r    #test_new_callable_keyword_arguments-PatchTest.test_new_callable_keyword_arguments  sq    	$& 	$
 sCMMO	MM$q'3'SZZ11)=>LLNGLLNs   ?B Bc                   ^  " U4S jS[         5      m[        [        TTS9nUR                  5          U R	                  TR
                  [        TS95        UR                  5         [        [        TTS9nUR                  5          U R	                  TR
                  [        TS95        UR                  5         g ! UR                  5         f = f! UR                  5         f = f)Nc                   &   > \ rS rSrSrU 4S jrSrg)-PatchTest.test_new_callable_spec.<locals>.Bari  Nc                    > UTl         g r   r  r  s     r    r=   6PatchTest.test_new_callable_spec.<locals>.Bar.__init__  r  r#   r$   r  r  s   r    rT   r#    r  r#   rT   r  r   r   )r  r  r  )r4   r   r.  r&  r   r  r  r(  )r   r)  rT   s     @r    test_new_callable_spec PatchTest.test_new_callable_spec  s    	$& 	$
 s=	SZZ38LLNsSA	SZZs);<LLN LLN LLNs   #B; #C ;CC"c                    S[         -  n[        U[        S9nU R                  [        UR
                  5        [        U[        SS9nUR                  5       n U R                  USS9  UR                  5         g ! UR                  5         f = f)Nz	%s.weeeeer  T)r  rB  F)ry   )r.  r   r	   ru   r   r&  r{   r(  )r   non_existent_attrprn  s       r    test_new_callable_create"PatchTest.test_new_callable_create  sv    '(2#/B.!''2#/GGI	""1E"2FFHAFFHs   A9 9Bc           	          U R                  [        [        [        [	        5       [
        S9  U R                  [        [        R                  [        S[	        5       [
        S9  g )N)r  r  r@   )ru   
ValueErrorr   r.  r4   r   r8   rC   s    r    'test_new_callable_incompatible_with_new1PatchTest.test_new_callable_incompatible_with_new  sK    xVXI 	 	
 	c3FH" 	 	
r#   c           	          U R                  [        [        [        [        SS9  U R                  [        [        R
                  [        S[        SS9  g )NT)r  r  r@   )ru   r/  r   r.  r   r4   r8   rC   s    r    ,test_new_callable_incompatible_with_autospec6PatchTest.test_new_callable_incompatible_with_autospec  sH    xi 	 	
 	c3Y 	 	
r#   c                 \    " S S[         5      n[        [        [        [         U4nU Hk  nS Hb  nUS0n[	        [
        4SU0UD6nUR                  5       n UR                  nU R                  [        [        US5        UR                  5         Md     Mm     g ! UR                  5         f = f)Nc                       \ rS rSrSrg)>PatchTest.test_new_callable_inherit_for_mocks.<locals>.MockSubi  r$   Nr%   r&   r'   r(   r)   r$   r#   r    MockSubr7        r#   r9  r  Tr  rC  )r   r	   r   r   r   r.  r&  r   ru   r   r   r(  )	r   r9  MockClassesKlassargr  r+  rn  r:  s	            r    #test_new_callable_inherit_for_mocks-PatchTest.test_new_callable_inherit_for_mocks  s    	d 	 19dG
 !E)t(AA&AGGI ~~H%%ngxMFFH * ! FFHs   (BB+c                 X    " S S[         5      n[        [        USS9nUR                  5       n U R	                  [        X15      5        U R                  [        [        US5        UR                  5         U R                  UR                  [        5        g ! UR                  5         f = f)Nc                       \ rS rSrS rSrg)>PatchTest.test_new_callable_inherit_non_mock.<locals>.NotAMocki  c                     Xl         g r   r   )r   r   s     r    r=   GPatchTest.test_new_callable_inherit_non_mock.<locals>.NotAMock.__init__  s     	r#   r   N)r%   r&   r'   r(   r=   r)   r$   r#   r    NotAMockrB    s    !r#   rE  Tr&  r   )r4   r   r.  r&  rw   r   ru   r   r   r(  r   r   r8   )r   rE  r+  rn  s       r    "test_new_callable_inherit_non_mock,PatchTest.test_new_callable_inherit_non_mock  s}    	!v 	! (=GGI	OOK45ngq.IFFH% FFHs   6B B)c                    ^^ U m[         m " UU4S jS[        5      n[        [        [        S9" U5      nU" 5       R                  5         U" 5       R                  5         U R                  [         T5        g )Nc                   0   > \ rS rSrU U4S jrS rS rSrg)>PatchTest.test_new_callable_class_decorating.<locals>.SomeTesti  c                    > TR                   " [        T5        TR                  " [        U5        TR                  " [        [        5        g r   )r'  r8   r%  r   r   )r   mock_foor   r   s     r    r  DPatchTest.test_new_callable_class_decorating.<locals>.SomeTest._test  s1      h/c8,%%c95r#   c                 &    U R                  U5        g r   r  r   rL  s     r    test_twoGPatchTest.test_new_callable_class_decorating.<locals>.SomeTest.test_two      

8$r#   c                 &    U R                  U5        g r   rO  rP  s     r    test_oneGPatchTest.test_new_callable_class_decorating.<locals>.SomeTest.test_one  rS  r#   r$   Nr%   r&   r'   r(   r  rQ  rU  r)   )r   r   s   r    SomeTestrJ    s    6
%%r#   rX  r  )r8   r4   r   r.  r   rU  rQ  r%  )r   rX  r   r   s     @@r    "test_new_callable_class_decorating,PatchTest.test_new_callable_class_decorating  s[    
	% 
	%v 
	% 	:8D

c8$r#   c                   ^ ^ [         m[         R                  n[         R                  n[        R                  " [
        SSS9n[        R                  " [         SSS9nX44 H  nUR                  5          T R                  [         T5        T R                  [         R                  S5        T R                  [         R                  S5        UR                  5         T R                  [         T5        T R                  [         R                  U5        T R                  [         R                  U5        M     [        R                  " [
        SSS9UU 4S j5       nU" 5         g ! UR                  5         f = f)Nr  r  )r@   rD   r  r  c                     > TR                  [        T 5        TR                  [        R                  S5        TR                  [        R                  S5        g )Nr  r  )r%  r8   r   r@   rD   )original_foor   s   r    r   +PatchTest.test_patch_multiple.<locals>.test"  s9    MM#|,SUUA&SUUA&r#   )
r8   r@   rD   r   multipler.  r&  r%  r   r(  )r   
original_f
original_gpatcher1patcher2r)  r   r]  s   `      @r    test_patch_multiplePatchTest.test_patch_multiple  s   UU
UU
>>(a15>>#a0)GMMOc<0  *  *MM#|,SUUJ/SUUJ/ * 
A	+	' 
,	'
 	 s   4AE  E2c                     U R                  [        [        R                  [        5        U R                  [        [        R                  [
        5        g r   )ru   r/  r   r_  r.  r8   rC   s    r    test_patch_multiple_no_kwargs'PatchTest.test_patch_multiple_no_kwargs+  s.    *ennh?*ennc:r#   c                 <  ^ ^ [         m[         R                  n[         R                  n[        R                  " [
        [        S[        S9UU 4S j5       nU" 5         T R                  [         R                  U5        T R                  [         R                  U5        g )Nr  r@   rD   rU   c                 n  > TR                  [        T5        TR                  [        R                  U 5        TR                  [        R                  S5        TR                  [        R
                  U5        TR                  [        U [        5      5        TR                  [        U[        5      5        g Nr  	r%  r8   r@   r   rD   rU   rw   r   r   )r@   rU   r]  r   s     r    r   8PatchTest.test_patch_multiple_create_mocks.<locals>.test5  so    MM#|,MM#%%#SUUA&MM#''3'OOK956OOKY78r#   r8   r@   rD   r   r_  r.  r   r   )r   r`  ra  r   r]  s   `   @r     test_patch_multiple_create_mocks*PatchTest.test_patch_multiple_create_mocks0  sj    UU
UU
	Gqg	>	9 
?	9 	
+
+r#   c                   ^  [         R                  n[         R                  n[        R                  " [         SS5      nSUl        [        R                  " [         S[        5      nSUl        U/Ul        UU 4S j5       nU" 5         T R                  [         R                  U5        T R                  [         R                  U5        g )Nr@   r  rD   c                    > TR                  [        R                  U 5        TR                  [        R                  S5        g rl  )r%  r8   rD   r   r@   )rD   r   s    r    r   HPatchTest.test_patch_multiple_create_mocks_different_order.<locals>.testN  s)    MM#%%#SUUA&r#   )	r8   r@   rD   r   r4   attribute_namer   additional_patchersr   )r   r`  ra  r)  r  r   s   `     r    0test_patch_multiple_create_mocks_different_order:PatchTest.test_patch_multiple_create_mocks_different_orderC  s    UU
UU
,,sC+!$S#w/"',g#		' 
	' 	
+
+r#   c                 0  ^ ^^ [         m[         R                  n[         R                  n[        R                  " [
        [        S9[        R                  " [
        [        S9[        [
        S-   5      U4S j5       5       5       n[        R                  " [
        [        S9[        [
        S-   5      [        R                  " [
        [        S9U4S j5       5       5       n[        [
        S-   5      [        R                  " [
        [        S9[        R                  " [
        [        S9U4S j5       5       5       nUU 4S jmU" 5         U" 5         U" 5         T R                  [         R                  U5        T R                  [         R                  U5        g )N)r@   r  z.gc                    > T" U 40 UD6  g r   r$   rD   r  r  s     r    test1?PatchTest.test_patch_multiple_stacked_decorators.<locals>.test1]       !vr#   c                    > T" U 40 UD6  g r   r$   r{  s     r    test2?PatchTest.test_patch_multiple_stacked_decorators.<locals>.test2c  r~  r#   c                    > T" U 40 UD6  g r   r$   r{  s     r    test3?PatchTest.test_patch_multiple_stacked_decorators.<locals>.test3i  r~  r#   c                   > UR                  S5      nUR                  S5      nTR                  U5        TR                  [        T5        TR                  [        R                  U5        TR                  [        R
                  U 5        TR                  [        R                  U5        TR                  [        U[        5      5        TR                  [        U [        5      5        TR                  [        U[        5      5        g )Nr@   rU   )
poprx   r%  r8   r@   rD   rU   rw   r   r   )rD   r  r@   rU   r]  r   s       r    r  ?PatchTest.test_patch_multiple_stacked_decorators.<locals>._testo  s    

3A**U#CV$MM#|,MM#%%#MM#%%#MM#''3'OOK956OOK956OOKY78r#   ro  )r   r`  ra  r|  r  r  r  r]  s   `     @@r    &test_patch_multiple_stacked_decorators0PatchTest.test_patch_multiple_stacked_decoratorsX  s   UU
UU
	G	,	g	.	x$		 
  
/ 
-	 
G	,	x$		g	.	 
/ 
  
-	 
x$		G	,	g	.	 
/ 
- 
 		9 	
+
+r#   c                 
   [         n[         R                  n[         R                  n[        R                  " [
        [        S[        S9nUR                  5       n US   nUS   nU R                  [        U5      [        SS/5      5        U R                  [         U5        U R                  [         R                  U5        U R                  [         R                  U5        U R                  [        U[        5      5        U R                  [        U[        5      5        UR                  5         U R                  [         R                  U5        U R                  [         R                  U5        g ! UR                  5         f = f)Nr  rj  r@   rU   )r8   r@   rD   r   r_  r.  r   r&  r   setr%  rU   rw   r   r   r(  )r   r]  r`  ra  r)  r  r@   rU   s           r    (test_patch_multiple_create_mocks_patcher2PatchTest.test_patch_multiple_create_mocks_patcher  s   UU
UU
..WwG	sA-CS[#sEl*;<MM#|,MM#%%#MM#''3'OOK956OOKY78LLN
+
+ LLNs   CE0 0Fc                   ^^ U m[         m[         R                  n[         R                  n " UU4S jS[        5      n[        R
                  " [        [        S[        S9" U5      nU" 5       nUR                  5         UR                  5         U R                  [         R                  U5        U R                  [         R                  U5        g )Nc                   0   > \ rS rSrU U4S jrS rS rSrg)@PatchTest.test_patch_multiple_decorating_class.<locals>.SomeTesti  c                 z  > TR                   " [        T5        TR                   " [        R                  U5        TR                  " [        R                  S5        TR                   " [        R
                  U5        TR                  " [        U[        5      5        TR                  " [        U[        5      5        g rl  rm  )r   r@   rU   r]  r   s      r    r  FPatchTest.test_patch_multiple_decorating_class.<locals>.SomeTest._test  so    c<0ceeQ'  *cggs+Ay 9:C ;<r#   c                 &    U R                  X5        g r   rO  r   r@   rU   s      r    rQ  IPatchTest.test_patch_multiple_decorating_class.<locals>.SomeTest.test_two      

1"r#   c                 &    U R                  X5        g r   rO  r  s      r    rU  IPatchTest.test_patch_multiple_decorating_class.<locals>.SomeTest.test_one  r  r#   r$   NrW  )r]  r   s   r    rX  r    s    =##r#   rX  r  rj  )r8   r@   rD   r4   r   r_  r.  r   rU  rQ  r   )r   r`  ra  rX  rz  r]  r   s        @@r    $test_patch_multiple_decorating_class.PatchTest.test_patch_multiple_decorating_class  s    UU
UU
	# 	#v 	# >>1'

 

+
+r#   c                    [         R                  " [        SS9nU R                  [        UR
                  5        [         R                  " [        SSS9nUR                  5          U R                  [        R                  S5        UR                  5         U R                  [        [        S5      5        g ! UR                  5         f = f)Nblam)r  T)r  rB  )r   r_  r8   ru   r   r&  r   r  r(  rx   rQ  r/  s     r    test_patch_multiple_create$PatchTest.test_patch_multiple_create  s    ..62.'--8..6$?	SXXv.LLNf-. LLNs   % B5 5Cc                 l   [         R                  " [        [        SS/S9nUR	                  5       n U R                  [        R                  US   5        [        R                  R                  S5        [        R                  R                  S5        [        R                  R                  R                  S5        [        R                  R                  R                  S5        U R                  [        [        [        R                  SS 5        UR                  5         g ! UR                  5         f = f)Nr<   rZ   )rU   r  rU   r  r  re  )r   r_  r8   r   r&  r   rU   r<   rZ   r  ru   r   r,   r(  )r   r)  r  s      r    test_patch_multiple_spec_set&PatchTest.test_patch_multiple_spec_set  s     ..'S#JG	SWWfUm4GGIIaLGGIIaLGGII((+GGII((+ngswwTJLLNGLLNs   CD! !D3c                 <    " S S[         5      n[        R                  " [        [        [        US9nUR                  5       n U R                  [        R                  US   5        U R                  [        R                  US   5        U R                  [        R                  U5        U R                  [        R                  U5        U R                  [        R                  [        R                  5        UR                  5         g ! UR                  5         f = f)Nc                       \ rS rSrSrg)9PatchTest.test_patch_multiple_new_callable.<locals>.Thingi  r$   Nr8  r$   r#   r    Thingr    r:  r#   r  )r@   rD   r  r@   rD   )r4   r   r_  r8   r   r&  r%  r@   rD   r   r'  r(  )r   r  r)  r  s       r     test_patch_multiple_new_callable*PatchTest.test_patch_multiple_new_callable  s    	F 	 ..7gE
 	MM#%%-MM#%%-!!#%%/!!#%%/SUUCEE*LLNGLLNs   B4D	 	Dc                 F   [         R                  n[         R                  n[        R                  " [         SS5      [        R                  " [         SS5      [        R                  " [         SS5      S 5       5       5       n[        R                  " [         SS5      [        R                  " [         SS5      [        R                  " [         SS5      S 5       5       5       n[        R                  " [         SS5      [        R                  " [         SS5      [        R                  " [         SS5      S 5       5       5       nX4U4 HY  nU R                  [        U5        U R                  [         R                  U5        U R                  [         R                  U5        M[     g )NrD   r  missingr@   c                      g r   r$   r$   r#   r    thing13PatchTest.test_nested_patch_failure.<locals>.thing1       r#   c                      g r   r$   r$   r#   r    thing23PatchTest.test_nested_patch_failure.<locals>.thing2  r  r#   c                      g r   r$   r$   r#   r    thing33PatchTest.test_nested_patch_failure.<locals>.thing3  r  r#   )r8   r@   rD   r   r4   ru   r   r   )r   r`  ra  r  r  r  funcs          r    test_nested_patch_failure#PatchTest.test_nested_patch_failure  s0   UU
UU
	c3	"	c9a	(	c3	" 
# 
) 
# 		c9a	(	c3	"	c3	" 
# 
# 
) 		c3	"	c3	"	c9a	( 
) 
# 
# 	F*Dnd3SUUJ/SUUJ/ +r#   c                    [         R                  n[         R                  n[         R                  nS n[        R
                  " [         SS5      [        R
                  " [         SUS9[        R
                  " [         SS5      S 5       5       5       n[        R
                  " [         SUS9[        R
                  " [         SS5      [        R
                  " [         SS5      S 5       5       5       n[        R
                  " [         SS5      [        R
                  " [         SS5      [        R
                  " [         SUS9S	 5       5       5       nXVU4 Hy  nU R                  [        U5        U R                  [         R                  U5        U R                  [         R                  U5        U R                  [         R                  U5        M{     g )
Nc                      [        S5      eNcrasherr  r$   r#   r    r  4PatchTest.test_new_callable_failure.<locals>.crasher      I&&r#   rD   r  rU   r  r@   c                      g r   r$   r$   r#   r    r  3PatchTest.test_new_callable_failure.<locals>.thing1  r  r#   c                      g r   r$   r$   r#   r    r  3PatchTest.test_new_callable_failure.<locals>.thing2  r  r#   c                      g r   r$   r$   r#   r    r  3PatchTest.test_new_callable_failure.<locals>.thing3  r  r#   )	r8   r@   rD   rU   r   r4   ru   rK  r   )	r   r`  ra  r]  r  r  r  r  r  s	            r    test_new_callable_failure#PatchTest.test_new_callable_failure  sT   UU
UU
ww	' 
c3	"	c5w	7	c3	" 
# 
8 
# 		c5w	7	c3	"	c3	" 
# 
# 
8 		c3	"	c3	"	c5w	7 
8 
# 
# 	F*Di.SUUJ/SUUJ/SWWl3	 +r#   c                    [         R                  n[         R                  n[        R                  " [         SS5      nSUl        [        R                  " [         SS5      nSUl        [        R                  " [         SS5      nSUl        XE/XT/4 Hg  nXcl        US 5       nU R                  [        U5        U R                  [         R                  U5        U R                  [         R                  U5        Mi     g )Nr@   r  rD   r  c                      g r   r$   r$   r#   r    r  3PatchTest.test_patch_multiple_failure.<locals>.func4  rW  r#   )
r8   r@   rD   r   r4   ru  rv  ru   r   r   )r   r`  ra  r)  goodbadadditionalsr  s           r    test_patch_multiple_failure%PatchTest.test_patch_multiple_failure$  s    UU
UU
,,sC+!$||Ca(!ll3	1-& ;3K*5' nd3SUUJ/SUUJ/ 4r#   c                 Z   [         R                  n[         R                  n[         R                  nS n[        R
                  " [         SS5      nSUl        [        R
                  " [         SS5      nSUl        [        R
                  " [         SUS9nSUl        Xg/Xv/4 H  nXl        US 5       n	U R                  [        U	5        U R                  [         R                  U5        U R                  [         R                  U5        U R                  [         R                  U5        M     g )Nc                      [        S5      er  r  r$   r#   r    r  CPatchTest.test_patch_multiple_new_callable_failure.<locals>.crasherA  r  r#   r@   r  rD   rU   r  c                      g r   r$   r$   r#   r    r  @PatchTest.test_patch_multiple_new_callable_failure.<locals>.funcP  rW  r#   )r8   r@   rD   rU   r   r4   ru  rv  ru   rK  r   )
r   r`  ra  r]  r  r)  r  r  r  r  s
             r    (test_patch_multiple_new_callable_failure2PatchTest.test_patch_multiple_new_callable_failure<  s    UU
UU
ww	' ,,sC+!$||Ca(!ll3G<" ;3K*5' i.SUUJ/SUUJ/SWWl3 4r#   c                    ^ ^ [        S[        4SS05      nU" 5       m[        R                  " TSS9UU 4S j5       nU" 5         T R	                  TR
                  S5        g )Nr8   fishtastynearly gone)r  c                  >   > TR                  T R                  S5        g )Nr  )r   r  r  s   r    r   =PatchTest.test_patch_multiple_string_subclasses.<locals>.test\  s    SXX}5r#   )r  strr   r_  r   r  )r   r8   r   rU   s   `  @r    %test_patch_multiple_string_subclasses/PatchTest.test_patch_multiple_string_subclassesY  sW    53&67"34e	-	0	6 
1	6 	7+r#   zunittest.mock.patch.TEST_PREFIXrU   c                 l    " S S[         5      n[        R                   " USS5      " U5      nU" 5       nU R                  UR                  5       S5        U R                  UR	                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       S5        g )Nc                   0    \ rS rSrSrS rS rS rS rSr	g)	-PatchTest.test_patch_test_prefix.<locals>.Fooif  r   c                     U R                   $ r   rz  rC   s    r    foo_one5PatchTest.test_patch_test_prefix.<locals>.Foo.foo_onei      zz!r#   c                     U R                   $ r   r  rC   s    r    foo_two5PatchTest.test_patch_test_prefix.<locals>.Foo.foo_twok  r  r#   c                     U R                   $ r   r  rC   s    r    rU  6PatchTest.test_patch_test_prefix.<locals>.Foo.test_onem  r  r#   c                     U R                   $ r   r  rC   s    r    rQ  6PatchTest.test_patch_test_prefix.<locals>.Foo.test_twoo  r  r#   r$   N)
r%   r&   r'   r(   rz  r  r  rU  rQ  r)   r$   r#   r    r8   r  f  s    E""""r#   r8   rz  changedr   )r4   r   r   r  r  rU  rQ  )r   r8   rU   s      r    test_patch_test_prefix PatchTest.test_patch_test_prefixd  s    
	"& 
	" ll33C8e	2	244r#   rF   c                   ^  " U4S jS[         5      nSS0m[        R                  " TSS9" U5      nU" 5       nU R                  UR	                  5       SS05        U R                  UR                  5       SS05        U R                  UR                  5       SS05        U R                  UR                  5       SS05        g )Nc                   F   > \ rS rSrU 4S jrU 4S jrU 4S jrU 4S jrSrg)2PatchTest.test_patch_dict_test_prefix.<locals>.Fooi}  c                    > [        T5      $ r   r  r   the_dicts    r    bar_one:PatchTest.test_patch_dict_test_prefix.<locals>.Foo.bar_one~      H~%r#   c                    > [        T5      $ r   r  r  s    r    bar_two:PatchTest.test_patch_dict_test_prefix.<locals>.Foo.bar_two  r  r#   c                    > [        T5      $ r   r  r  s    r    rU  ;PatchTest.test_patch_dict_test_prefix.<locals>.Foo.test_one  r  r#   c                    > [        T5      $ r   r  r  s    r    rQ  ;PatchTest.test_patch_dict_test_prefix.<locals>.Foo.test_two  r  r#   r$   N)	r%   r&   r'   r(   r  r  rU  rQ  r)   )r  s   r    r8   r  }  s    &&&& &r#   r8   keyr   r  )r   )r4   r   r  r   r  r  rU  rQ  )r   r8   rU   r  s      @r    test_patch_dict_test_prefix%PatchTest.test_patch_dict_test_prefix{  s    	&& 	& :&jjy1#6U	(:;	(:;%)<=%)<=r#   c                    S H  n[        S[        -  40 US0D6nUR                  5       n U R                  S[	        U5      5        U R                  S[	        UR
                  5      5        U R                  S[	        U" 5       5      5        U R                  S[	        U" 5       R
                  5      5        UR                  5         M     g ! UR                  5         f = f)Nr   r  r  r   Tz name='SomeClass'z! name='SomeClass.class_attribute'z name='SomeClass()'z# name='SomeClass().class_attribute')r   r%   r&  r   r  r   r(  )r   r=  r+  rn  s       r    test_patch_with_spec_mock_repr(PatchTest.test_patch_with_spec_mock_repr  s    3Cnx/?C;?A	A147;A"1#4#4573T!#Y?C"13#6#679  4 s   B
CCc                     [        SSS9 nU R                  S[        UR                  R	                  5       5      5        U R                  S[        UR                  5       R	                  5       5      5        S S S 5        g ! , (       d  f       g = f)N#test.test_unittest.testmock.supportTr  z" name='support.SomeClass.wibble()'z$ name='support.SomeClass().wibble()')r   r   r  r   r   )r   rn  s     r    test_patch_nested_autospec_repr)PatchTest.test_patch_nested_autospec_repr  sf    84HAMM>q{{11346MM@q{{}33568 IHHs   A+A??
Bc                    S GH  n[        S[        -  40 US0D6nUR                  5       n UR                  5         [        R                  " 5       /nU R                  UR                  U5        U R                  UR                  U5        U R                  UR                  R                  [	        5       /5        U" 5       nUR                  [	        5       5        U R                  UR                  U5        UR                  5         UR                  [	        5       R                  5       5        U R                  UR                  U5        U R                  UR                  [        R                  " 5       /5        U R                  UR                  R                  [	        5       /5        U R                  UR                  [        R                  " 5       /5        UR                  5         GM     g ! UR                  5         f = f)Nr  r   T)
r   r%   r&  r   r   r   
mock_callsmethod_callsappendr(  )r   r=  r+  rn  kallsr  s         r    test_mock_calls_with_patch$PatchTest.test_mock_calls_with_patch  sZ   3Cnx/?C;?A	A
  u5  7  !4!4tvh?TV$  u5TV]]_-  u5  !2!2T[[]OD  !9!9DF8D  !4!4t{{}oF/ 4. s   F+G..H c                    [        S5      nU R                  [        UR                  5        [	        S5         [        5       nU[        R                  S'   SUl        [        S5      nSUl        UR                  5         UR                  5         S S S 5        U R                  WR                  S5        g ! , (       d  f       N+= f)Nsquizz.squozzsquizz   r  )r   ru   ImportErrorr&  r   r   r  r  squozzr(  r   )r   p1r  s      r    test_patch_imports_lazily#PatchTest.test_patch_imports_lazily  s    ?#+rxx0XVF$*CKK!FM'BFMHHJGGI  	* s   AB33
Cc                   ^^  " S S5      m " U4S jS[         5      mU4S jnU" S5      S 5       n[        S5         [        5       nU[        R                  S'   U R                  [        U5        S S S 5        U R                  TR                  S	   [        5        U R                  TR                  S
   S5        U R                  TR                  S   S5        g ! , (       d  f       Np= f)Nc                       \ rS rSrSrSrg);PatchTest.test_patch_propagates_exc_on_exit.<locals>.holderi  NNNr$   N)r%   r&   r'   r(   r  r)   r$   r#   r    holderr    s    'Hr#   r  c                   *   > \ rS rSrSU 4S jjr\rSrg)APatchTest.test_patch_propagates_exc_on_exit.<locals>.custom_patchi  Nc                 F   > [         R                  " XX#5        XU4Tl        g r   )r   __exit__r  )r   etypevaltbr  s       r    r#  JPatchTest.test_patch_propagates_exc_on_exit.<locals>.custom_patch.__exit__  s    S5"'b.r#   r$   r  )r%   r&   r'   r(   r#  r(  r)   )r  s   r    custom_patchr!    s    1 Dr#   r(  c                 D   > [        U 5      u  pT" X[        S SS S S 0 5	      $ )NF)r   r   )r  getterr   r(  s      r    with_custom_patchFPatchTest.test_patch_propagates_exc_on_exit.<locals>.with_custom_patch  s/     +F 3F7D%dB r#   r  c                     [         er   )r9  r   s    r    r   9PatchTest.test_patch_propagates_exc_on_exit.<locals>.test  s    r#   r  r   r  zexception value not propagatedr  z"exception traceback not propagated)
r   r   r   r  r  ru   r9  r%  r  assertIsNotNone)r   r+  r   r  r(  r  s       @@r    !test_patch_propagates_exc_on_exit+PatchTest.test_patch_propagates_exc_on_exit  s    	( 	(	6 		 
?	+	 
,	 XVF$*CKK!lD1	  	fooa(,7V__Q/<	>V__Q/@	B s   4C
C*c                   ^  [         R                  R                  [         R                  R                  [        R
                  5      SS5      nS nU 4S jn[        SS5         [        U5         U" S5        U" S5        S S S 5        S S S 5        [        SS5         [        U5         U" S	5        U" S
5        S S S 5        S S S 5        [        SS5         [        U5         U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        S S S 5        S S S 5        [        SS5         [        U5         U" S5        U" S5        U" S	5        U" S
5        U" S5        U" S5        S S S 5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Ntest_importrp  c                 Z    [        U 5      nUR                  5         UR                  5         g r   r   r&  r(  r   r+  s     r    check>PatchTest.test_name_resolution_import_rebinding.<locals>.check      dAGGIFFHr#   c                 \   > [        U 5      nTR                  [        UR                  5        g r   r   ru   r   r&  r   r+  r   s     r    check_errorDPatchTest.test_name_resolution_import_rebinding.<locals>.check_error       dAnagg6r#   package3zpackage3.submodulezpackage3.submodule.A.attrzpackage3.submodule.B.attrzpackage3.submodule:A.attrzpackage3.submodule:B.attrzpackage3:submodule.B.attrzpackage3:submodule.A.attrr  pathjoindirnamer   __file__r   r   r   rC  r8  r>  s   `   r    %test_name_resolution_import_rebinding/PatchTest.test_name_resolution_import_rebinding  s   
 ww||BGGOODMM:M6R		7 Z!56d8K-.34 9L6 Z!56d8K-.34 9L6 Z!56d8K-.34-.34-.34 9L6 Z!56d8K-.34-.34-.34 9L66 9L8K66 9L8K66 9L8K66 9L8K66   #F/E< FF1(F 9F1G!1GG.G5:1G$+G5<
F	F
F 
F.	*F11
F?
G	G
G!$
G2	.G55
Hc                   ^  [         R                  R                  [         R                  R                  [        R
                  5      SS5      nS nU 4S jn[        SS5         [        U5         U" S5        U" S5        S S S 5        S S S 5        [        SS5         [        U5         U" S	5        U" S
5        S S S 5        S S S 5        [        SS5         [        U5         U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        S S S 5        S S S 5        [        SS5         [        U5         U" S5        U" S5        U" S	5        U" S
5        U" S5        U" S5        S S S 5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr4  rp  c                 Z    [        U 5      nUR                  5         UR                  5         g r   r6  r7  s     r    r8  ?PatchTest.test_name_resolution_import_rebinding2.<locals>.check  r:  r#   c                 \   > [        U 5      nTR                  [        UR                  5        g r   r<  r=  s     r    r>  EPatchTest.test_name_resolution_import_rebinding2.<locals>.check_error  r@  r#   package4zpackage4.submodulezpackage4.submodule.A.attrzpackage4.submodule.B.attrzpackage4.submodule:A.attrzpackage4.submodule:B.attrzpackage4:submodule.B.attrzpackage4:submodule.A.attrrB  rG  s   `   r    &test_name_resolution_import_rebinding20PatchTest.test_name_resolution_import_rebinding2  s   ww||BGGOODMM:M6R		7 Z!56d8K-.34 9L6 Z!56d8K-.34 9L6 Z!56d8K-.34-.34-.34 9L6 Z!56d8K-.34-.34-.34 9L66 9L8K66 9L8K66 9L8K66 9L8K66rJ  c                    S H  n[        S[        -  4SS0US0D6nU R                  [        UR                  5        U R                  [
        S 5        [        [        4SS0US0D6nUR	                  5         UR                  5         M     g )Nr   r  r  z%s.doesnotexistrB  Tc                      [         $ r   )doesnotexistr$   r#   r    r   1PatchTest.test_create_and_specs.<locals>.<lambda>;  s    r#   )r   r%   ru   rv   r&  rK  MODNAMEr(  )r   kwargr+  s      r    test_create_and_specsPatchTest.test_create_and_specs6  s    5E'(2 '4 ''Ai1i)=> g<d<udm<AGGIFFH 6r#   c                    [         nS HM  n[        [        4SS0US0D6nU R                  [        UR
                  5        U R                  [         U5        MO     S HM  n[        [        4SS0US0D6nU R                  [        UR
                  5        U R                  [         U5        MO     S HM  n[        [        4SS0US0D6nU R                  [        UR
                  5        U R                  [         U5        MO     g )Nr  r  r   r   r  r  )r  r  r   )r   r   rX  ru   rv   r&  r%  )r   r   rY  r+  s       r    test_multiple_specsPatchTest.test_multiple_specsC  s    )Eg88eQZ8Ai1MM(H- *
 *Eg88eQZ8Ai1MM(H- *
 .Eg4A4%4Ai1MM(H- .r#   c                     [        [        SSSS9nUR                  5       n UR                    SUl        UR	                  5         g ! UR	                  5         f = f)NFrT  r  )r   rX  r&  does_not_existr(  )r   r+  r   s      r     test_specs_false_instead_of_none*PatchTest.test_specs_false_instead_of_noneU  sF    'Fwwy	"#DFFHAFFHs   A Ac                     S HR  n[        [        40 US0D6nUR                  5       n U R                  [        [
        US5        UR                  5         MT     g ! UR                  5         f = f)Nr  r   doesnotexit)r   rX  r&  ru   r   r   r(  r   rY  r+  rn  s       r    test_falsey_specPatchTest.test_falsey_spec`  sY    5Eg,%,A	A!!.'1mL 6 s   AA,c                    S Hq  n[        [        4SS0US0D6nUR                  5       n U R                  [        [
        USS5        U R                  [        [        US5        UR                  5         Ms     g ! UR                  5         f = f)Nr]  r  TrV  r   )r   rX  r&  ru   r   r,   r   r(  rf  s       r    test_spec_set_truePatchTest.test_spec_set_truej  sw    )Eg>>>A	A!!.'1"0+?!!.'1nM * s   9A99Bc                     Sn[        [        US9nUR                  5       n U R                  [	        U5      5        UR                  5         g ! UR                  5         f = f)N)__call__r   )r   rX  r&  rw   callabler(  r   r   r+  rn  s       r    test_callable_spec_as_list$PatchTest.test_callable_spec_as_listv  sF    '%GGI	OOHQK(FFHAFFH   A Ac                     Sn[        [        US9nUR                  5       n U R                  [	        U5      5        UR                  5         g ! UR                  5         f = f)Nr
  r   )r   rX  r&  rx   rn  r(  ro  s       r    test_not_callable_spec_as_list(PatchTest.test_not_callable_spec_as_list  sH    '%GGI	Xa[)FFHAFFHrr  c                 \  ^ ^^ [         R                  m[         R                  m[         R                  n[	        S[
        5      R                  5         [	        S[        5      R                  5         [	        S5      UU U4S j5       nU" 5         T R                  [         R                  U5        g )N	os.unlinkos.chdirzos.pathc                    > [         R                  " 5         TR                  [        R                  U 5        TR                  [        R
                  T5        TR                  [        R                  T5        g r   )r   stopallr%  r  rC  unlinkchdir)	mock_pathr|  r   r{  s    r    r  -PatchTest.test_patch_stopall.<locals>.patched  sB    MMOMM"''9-MM"))V,MM"((E*r#   )	r  r{  r|  rC  r   r   r&  r   r%  )r   rC  r  r|  r{  s   `  @@r    test_patch_stopallPatchTest.test_patch_stopall  st    wwk9%++-j.)//1	y		+ 
	+ 		bggt$r#   c                    ^^ / m " S S[         5      mUU4S jnS Vs/ s H  o!" U5      R                  5       PM       n[        R                  " 5         U R	                  T/ SQ5        g s  snf )Nc                        \ rS rSrS=r=rrSrg)*PatchTest.test_stopall_lifo.<locals>.thingi  Nr$   )r%   r&   r'   r(   onetwothreer)   r$   r#   r    rz  r    s     $$C$#r#   rz  c                 X   >^ ^  " U UU4S jS[         5      mT" U4S jT S S SS S S 0 5	      $ )Nc                   0   >^  \ rS rSrU UUU4S jrSrU =r$ )?PatchTest.test_stopall_lifo.<locals>.get_patch.<locals>.mypatchi  c                 B   > TR                  T5        [        TU ]  5       $ r   )r  superr(  )r   	__class__r   mypatchstoppeds    r    r(  DPatchTest.test_stopall_lifo.<locals>.get_patch.<locals>.mypatch.stop  s    NN9- $466r#   r$   )r%   r&   r'   r(   r(  r)   __classcell__)r  r   r  r  s   @r    r  r    s    7 7r#   r  c                     > T $ r   r$   r  s   r    r   @PatchTest.test_stopall_lifo.<locals>.get_patch.<locals>.<lambda>  s    5r#   F)r   )r   r  r  rz  s   `@r    	get_patch.PatchTest.test_stopall_lifo.<locals>.get_patch  s6    7 7& 7 =)T4 $dB8 8r#   )r  r  r  )r  r  r  )r4   r&  r   rz  r   )r   r  r%  r  rz  s      @@r    test_stopall_lifoPatchTest.test_stopall_lifo  s]    	%F 	%	8 ,CC+BC3			+BC"9: 	Ds   A*c                 `  ^ 0 nSS0nSSS.mUR                  5       nUR                  5       nTR                  5       n[        R                  " USSS.5      R                  5         [        R                  " USS	05      R                  5         [        R                  " T5      U4S
 j5       nU" 5         U R	                  X5        U R	                  X$5        U R                  TU5        [        R                  " 5         U R                  X5        U R                  X$5        U R                  TU5        g )Nr  r<   ABr  r  IIIr  rZ   c                     > T S	 g r  r$   )dic3s   r    r  2PatchTest.test_patch_dict_stopall.<locals>.patched  s
    Qr#   )r  r   r  r&  r   r   rz  )r   dic1dic2origdic1origdic2origdic3r  r  s          @r    test_patch_dict_stopall!PatchTest.test_patch_dict_stopall  s    3x399;99;99;

4ST*+113

4!S"((*	D		 
	 		D+D+x(((x(r#   c                 Z   [         R                  n[         R                  n0 nSSS.nUR                  5       nUR                  5       n[	        S[
        5      R                  5         [	        S[        5      R                  5         [        R                  " USSS.5      R                  5         [        R                  " U5      R                  5         US	 U R                  [         R                  U5        U R                  [         R                  U5        U R                  X55        U R                  XF5        [        R                  " 5         U R                  [         R                  U5        U R                  [         R                  U5        U R                  X55        U R                  XF5        g )	Nr  r  r  rw  rx  r  r  r  )r  r{  r|  r  r   r   r&  r   r  r'  r   rz  r%  r   )r   original_unlinkoriginal_chdirr  r  r  r  s          r    !test_patch_and_patch_dict_stopall+PatchTest.test_patch_and_patch_dict_stopall  s$   ))399;99;k9%++-j.)//1

4ST*+113

4 GO4>2D+D+bii1bhh/((r#   c                    SS jn[         R                  " USS5         U R                  U" 5       S5        S S S 5        U R                  U" 5       S5        UR                  n[         R                  " USS5         U R                  UR                  S5        S S S 5        U R                  UR                  U5        [         R                  " USS	5         U R                  UR                  S	5        S S S 5        U R                  UR                  [
        5        [         R                  " US
[        S/5      5         U R                  UR                  [        S/5      5        S S S 5        U R                  UR                  [        5       5        SS.S jn[         R                  " US[        S/5      5         U R                  U" 5       S5        S S S 5        U R                  U" 5       S5        g ! , (       d  f       GN= f! , (       d  f       GNp= f! , (       d  f       GN)= f! , (       d  f       N= f! , (       d  f       Nm= f)Nr   c                     U $ )TESTr$   rC  s    r    rU   )PatchTest.test_special_attrs.<locals>.foo  s    Hr#   __defaults__)r  r  __doc__FUNr&   
testpatch2__annotations__)sr  r  c                     U $ r   r$   )rC  r<   s     r    rU   r    s    Hr#   __kwdefaults__)rC  r  )r   )r   r4   r   r  r&   r%   r  r  )r   rU   orig_docs      r    test_special_attrsPatchTest.test_special_attrs  s   	 \\#~u5SUA& 6";;\\#y%0S[[%0 1h/\\#|\:S^^\: ;2\\#0$
|2DES00$
|2DE F,,df5 	\\#/zl1CDSUA& E"+ 65
 10 ;: FE EDs;   G-9G?H9'H#5H4-
G<?
H
H #
H14
Ic                    [        5       n[        5       US'   SUS'   UR                  5       n[        [	        S[        S5      5      5      n[        UR                  5       5      U-   n[        R                  " U[        U5      5         U R                  [        UR                  5       5      U5        S S S 5        U R                  X5        [        R                  " X5         U R                  [        UR                  5       5      U5        S S S 5        U R                  X5        g ! , (       d  f       Ny= f! , (       d  f       N1= f)Nr<   pythonrZ   cdefghijklmnopqrstuvwxyz   )
r   r4   r  r  ziprangeitemsr   r  r   )r   rU   r   update_valuespatched_valuess        r    test_patch_orderdictPatchTest.test_patch_orderdict  s    m8CC88:S!;U2YGHciik*]:ZZ[78T#))+.? 9 	'ZZ+T#))+.? , 	' 98
 ,+s   *D$ *D5$
D25
Ec                 $   SS K n[        R                  " S5         [        R                  S	 [        R                  S	 [        R                  S	 [        R                  S	 [        S5      S 5       nU" 5         S S S 5        g ! , (       d  f       g = f)	Nr   zsys.modulesr  ztest.test_unittest.testmockztest.test_unittestr   %test.test_unittest.testmock.support.Xc                     g r   r$   r.  s    r    r   9PatchTest.test_dotted_but_module_not_loaded.<locals>.test  s    r#   )#test.test_unittest.testmock.supportr   r  r  r  r   s     r    !test_dotted_but_module_not_loaded+PatchTest.test_dotted_but_module_not_loaded  sq     	3ZZ&AB9:01F# :; <F '&&s   AB
Bc                     " S S5      nSSU" 5       4 HD  nU R                  US9   U R                  [        5         [        U5        S S S 5        S S S 5        MF     g ! , (       d  f       N= f! , (       d  f       Mi  = f)Nc                       \ rS rSrSrg)*PatchTest.test_invalid_target.<locals>.Fooi!  r$   Nr8  r$   r#   r    r8   r  !  r:  r#   r8       )r  )subTestru   rv   r   )r   r8   r  s      r    test_invalid_targetPatchTest.test_invalid_target   s`    	 	 2suoFV,&&y1&M 2 -, &11 -,s"   A/A	A/
A,(A//
A>	c                     [        S[        5       SS9S 5       nU R                  [        5         U" 5         S S S 5        g ! , (       d  f       g = f)Nr  r  )r  rC  c                      g r   r$   r$   r#   r    r   @PatchTest.test_cant_set_kwargs_when_passing_a_mock.<locals>.test+  s    r#   )r   r4   ru   rv   r   s     r    (test_cant_set_kwargs_when_passing_a_mock2PatchTest.test_cant_set_kwargs_when_passing_a_mock*  s<    	6FH	J 
Ky)F *))s   A  
Ac                 B    [        S[        5       S9S 5       nU" 5         g )Nz%test.test_unittest.testmock.support.gr  c                     g r   r$   )_s    r    r   /PatchTest.test_patch_proxy_object.<locals>.test1  r   r#   )r   r   r   s     r    test_patch_proxy_object!PatchTest.test_patch_proxy_object0  s&    	6Y[	Q	 
R	 	r#   r$   NT)}r%   r&   r'   r(   r{   r   r   r   r   r   r   r   r   r   r  r  r  r"  r.  r5  r=  rL  rR  rZ  r`  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r*  r0  r3  r6  r:  r=  r@  rH  rL  rT  rW  rf  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r'  r,  r0  r3  r>  rF  rY  rd  rg  rp  rw  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r	  r  r  r1  rH  rQ  rZ  r^  rb  rg  rj  rp  rt  r  r  r  r  r  r  r  r  r  r  r)   r$   r#   r    rr   rr   W   s   :
/6

//(!(>V	0'-T				6864.(6,0/,/4/ (B/6(>/4*	:
"&"020
+**;/&
+&&&>4$4$
3
3)@F($--??4

9
)
)*

&& %*>;
,&,*(,V,2,B/ $024<004:, ,e45 55, ,e4> 5>*86+BD 5D5>
.$	%";")4)2#6(&&"r#   rr   __main__r  )-r  r  collectionsr   r  r   test.test_unittest.testmockr   r  r   r   test.support.import_helperr   test.test_importlib.utilr   unittest.mockr	   r
   r   r   r   r   r   r   r   r   r   r   r  r%   r   rX  r6   r   r   r   r   r4   r8   r.  r[   r]   TestCaserr   mainr$   r#   r    <module>r     s   
 
 
 #   / F 4 ,    ;;x 
(
" 	((&  h  ! !$^!! ^B? zMMO r#   