
    =er+                    :   d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZmZmZmZmZmZmZ  G d de          Z G d d	e          Z G d
 d          Zd Z G d dej                  Zedk    r ej                      dS dS )    N)	ALWAYS_EQ)is_instancemock)callDEFAULTpatchsentinel	MagicMockMockNonCallableMockNonCallableMagicMock	AsyncMock_Call	_CallListcreate_autospecInvalidSpecErrorc                   $    e Zd Zd Zd Zd ZeZdS )Iterc                 2    t          g d          | _        d S )Nthisisaniter)r   thingselfs    6/usr/lib/python3.11/unittest/test/testmock/testmock.py__init__zIter.__init__   s    66677


    c                     | S N r   s    r   __iter__zIter.__iter__   s    r!   c                 *    t          | j                  S r#   )nextr   r   s    r   r'   z	Iter.next   s    DJr!   N)__name__
__module____qualname__r    r%   r'   __next__r$   r!   r   r   r      sB        8 8 8        HHHr!   r   c                   F    e Zd ZddZedd            Zedd            ZdS )	SomethingNc                     d S r#   r$   r   abcds        r   methzSomething.meth          r!   c                     d S r#   r$   )clsr0   r1   r2   r3   s        r   cmethzSomething.cmeth"   s    %)Tr!   c                     d S r#   r$   r0   r1   r2   r3   s       r   smethzSomething.smeth%   s     $r!   r#   )r(   r)   r*   r4   classmethodr8   staticmethodr;   r$   r!   r   r-   r-      sH        ))))))) [)$$$ \$$$r!   r-   c                       e Zd ZdZdZdZdS )TyposN)r(   r)   r*   	autospect	auto_specset_specr$   r!   r   r?   r?   )   s        IIHHHr!   r?   c                     d S r#   r$   r0   s    r   	somethingrE   /   r5   r!   c                   D   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdM ZOdN ZPdO ZQdP ZRdQ ZSdR ZTdS ZUdT ZVdU ZWdV ZXdW ZYdX ZZdY Z[dZ Z\d[ Z]d\ Z^d] Z_d^ Z`d_ Zad` Zbda Zcdb Zddc Zedd Zfde Zgdf Zhdg Zidh Zjdi Zkdj Zldk Zmdl Zndm Zodn Zpdo Zqdp Zrdq Zsdr Ztds Zudt Zvdu Zwdv Zxdw Zydx Zzdy Z{dz Z|d{ Z}d| Z~d} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )MockTestc                 $    t          d           d S )Nzfrom unittest.mock import *)execr   s    r   test_allzMockTest.test_all4   s     	*+++++r!   c                 p   t                      }|                     |j        d           |                     |j        dd           |                     t          |j        t                     d           |                     |j        d d           |                     |j	        g d           |                     |j
        g d           |                     d|j        d	           |                     |j        d
           |                     |j        d           |                     |j        i d           d S )Nz called not initialised correctlyr   z$call_count not initialised correctlyz&return_value not initialised correctlyz#call_args not initialised correctly(call_args_list not initialised correctlyz&method_calls not initialised correctly_itemsz/default mock should not have '_items' attributez parent not initialised correctlyz!methods not initialised correctlyz$children not initialised incorrectly)r   assertFalsecalledassertEqual
call_count
assertTruer   return_value	call_argscall_args_listmethod_callsassertNotIn__dict__assertIsNone_mock_parent_mock_methods_mock_childrenr   r   s     r   test_constructorzMockTest.test_constructor;   s|   vv&HIII!?	A 	A 	AD$5t<<@	B 	B 	B 	>	@ 	@ 	@,bC	E 	E 	E*BB	D 	D 	D 	4=J	L 	L 	L 	$+<	> 	> 	>$,=	? 	? 	?,b?	A 	A 	A 	A 	Ar!   c                 \    t          d           }|                     |j        d           d S )NrS   z(return value in constructor not honoured)r   rY   rS   r]   s     r    test_return_value_in_constructorz)MockTest.test_return_value_in_constructorW   sA    &&&$+D	F 	F 	F 	F 	Fr!   c                 ~    d }t          |          }d|j        _        |                      |            d           d S )Nc                      d S r#   r$   r$   r!   r   fz9MockTest.test_change_return_value_via_delegate.<locals>.f^   r5   r!      )r   r   rS   rP   r   rd   r   s      r   %test_change_return_value_via_delegatez.MockTest.test_change_return_value_via_delegate]   sB    q!!!"	#####r!   c                     d }t          |          }t                      |j        _        |                     t                    5   |             d d d            d S # 1 swxY w Y   d S )Nc                      d S r#   r$   r$   r!   r   rd   z8MockTest.test_change_side_effect_via_delegate.<locals>.fe   r5   r!   )r   	TypeErrorr   side_effectassertRaisesrf   s      r   $test_change_side_effect_via_delegatez-MockTest.test_change_side_effect_via_delegated   s    q!! )	y)) 	 	DFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA!$A!c           	         t          d          }|                     dt          |                     |                     dt          |          z  t          |                     t                      dft          d          dfg}|D ]W\  }}|                     d|z  t          |j                             |                     d|z  t           |j                                         |                     d|z  t           |j                    j                             |                     d	|z  t           |                                 |                     d
|z  t            |                                             |                     d|z  t            |                        j        j                                        j                             Yd S )Nfoonamez'%s'r   barz%s.barz%s.foo()z%s.foo().bingz%s()z%s()()z%s()().foo.bar.baz().bing)r   assertInrepridrr   ro   bingbaz)r   r   mocksrq   s       r   	test_reprzMockTest.test_reprl   s   eT$ZZ(((fr$xx'd444&&&!De$4$4$4e#<= 	= 	=JD$MM(T/4>>:::MM*t+T($(**-=-=>>>MM/D0$xtxzz2G2GHHHMM&4-ddff666MM(T/4>>:::MM5<vttvvxx|/3355:;;= = = =	= 	=r!   c                     G d dt                     }t          |          }|                     dt          |                     t           |                      }|                     dt          |                     t          |          }|                     dt          |                     t           |                      }|                     dt          |                     t          |d          }|                     dt          |                     |                     d	t          |                     t          d
          }|                     dt          |                     t                      }|                     dt          |                     t          dg          }|                     dt          |                     d S )Nc                       e Zd ZdS )'MockTest.test_repr_with_spec.<locals>.XNr(   r)   r*   r$   r!   r   Xr|   }           Dr!   r~   specz
 spec='X' spec_setz spec_set='X' ro   )r   rq   z name='foo' rp   r   )objectr   rs   rt   rW   r   r~   r   s      r   test_repr_with_speczMockTest.test_repr_with_spec|   s   	 	 	 	 	 	 	 	 |||lDJJ///~~~lDJJ///Q&T

333QQSS!!!&T

333'''lDJJ///nd4jj111d,,,vvd,,,%!!!d,,,,,r!   c                 0   t                      }d }||_        |                     t          |ddd            |j        ddd           g dfd}||_        |                      |             |             |            gg dd	           t          t          j        
          }|                     |j        t          j        d           d }t          |t          j                  }|                      |            t          j                   d S )Nc                       t          d          )Nkablooie)SystemError)argskwargss     r   effectz)MockTest.test_side_effect.<locals>.effect   s    j)))r!   re         fishre   r   r   c                  ,                                      S r#   popresultss   r   r   z)MockTest.test_side_effect.<locals>.effect       ;;== r!   r   r   re   zside effect not used correctlyrk   z#side effect in constructor not usedc                      t           S r#   r   r$   r!   r   rk   z.MockTest.test_side_effect.<locals>.side_effect   s    Nr!   )rk   rS   )	r   rk   rl   r   assert_called_withrP   r
   
SideEffectRETURN)r   r   r   rk   r   s       @r   test_side_effectzMockTest.test_side_effect   sH   vv	* 	* 	* "+tQ:::11----))	! 	! 	! 	! 	!!$$&&$$&&$$&&1999:	< 	< 	<  3444)8+>?	A 	A 	A	 	 	(/JJJ11111r!   c                 T   g dfd}d }t          |          }g d|_        |                      |             |             |            gg dd           g dt          |          }||_        |                      |             |             |            gg dd           d S )Nr   c                  ,                                      S r#   r   r   s   r   r   z2MockTest.test_autospec_side_effect.<locals>.effect   r   r!   c                      d S r#   r$   r$   r!   r   rd   z-MockTest.test_autospec_side_effect.<locals>.f   r5   r!   z1side effect not used correctly in create_autospecr   z'callable side effect not used correctly)r   rk   rP   )r   r   rd   r   r   s       @r   test_autospec_side_effectz"MockTest.test_autospec_side_effect   s    ))	! 	! 	! 	! 	!q!!$99$$&&$$&&$$&&1999M	O 	O 	O ))q!!!$$&&$$&&$$&&1999C	E 	E 	E 	E 	Er!   c                     d }t          |          }t          d          |_        |                     t          d|           d S )Nc                      d S r#   r$   r$   r!   r   rd   z7MockTest.test_autospec_side_effect_exception.<locals>.f   r5   r!   zBazinga!)r   
ValueErrorrk   assertRaisesRegexrf   s      r   #test_autospec_side_effect_exceptionz,MockTest.test_autospec_side_effect_exception   sD    q!!%j11z:t<<<<<r!   c                     G d dt                     }t          j                             |d          5  |                     t          d          5  t          |          j         d d d            n# 1 swxY w Y   |                     t          d          5  t          j                             |dd                                           d d d            n# 1 swxY w Y   |                     t          d          5  t          j                             |j        d	d                                           d d d            n# 1 swxY w Y   |                     t          d
          5  t          j                             |d|j                                                   d d d            n# 1 swxY w Y   |                     t          d          5  t          j                             |d|j                                                   d d d            n# 1 swxY w Y   |                     t          d          5  t          j                             |d|j                                                   d d d            n# 1 swxY w Y   |                     t          d          5  t          j        |j                   d d d            n# 1 swxY w Y   t          j        dt          j	                              5  t          j	                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                   *    e Zd Z G d de          ZdS )&MockTest.test_autospec_mock.<locals>.Ac                       e Zd ZdZdS )(MockTest.test_autospec_mock.<locals>.A.BN)r(   r)   r*   Cr$   r!   r   Br      s        r!   r   N)r(   r)   r*   r   r   r$   r!   r   Ar      s>            F     r!   r   r   z8Cannot autospec attr 'B' from target <MagicMock spec='A'z(Cannot autospec attr 'B' from target 'A'Tautospecz-Cannot autospec attr 'C' as the patch target r   z!Cannot spec attr 'B' as the spec r   z%Cannot spec attr 'B' as the spec_set r   zCannot spec a Mock object.zbuiltins.open)
r   r   r	   r   r   r   r   startr   	mock_open)r   r   s     r   test_autospec_mockzMockTest.test_autospec_mock   s   	 	 	 	 	 	 	 	 Zq#&& 	! 	!''(8(bd d % %""$$% % % % % % % % % % % % % % % ''(8(RT T A A
!!!S4!88>>@@@A A A A A A A A A A A A A A A ''(8(WY Y C C
!!!#sT!::@@BBBC C C C C C C C C C C C C C C ''(8(KM M < <
!!!Sqs!3399;;;< < < < < < < < < < < < < < < ''(8(OQ Q @ @
!!!S13!77==???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ''(8(OQ Q @ @
!!!S13!77==???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ''(8:VWW  	!#              OT^-=-=>> ! !   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !+	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s1  L=A1%L=1A5	5L=8A5	9L=5CL=C	L=C	 L=>:E8L=E	L=E	L=*:F0$L=0F4	4L=7F4	8L=:HL=H 	 L=#H 	$L=:J<L=J	L=J	L=.KL=K	L=K	)L=L%L=%L)	)L=,L)	-L==MMc                    t                      }dg}t          d||          } |t          j        t          j                   |j        } |j                     t          j        |_        |j        } |              |j                     | 	                    |j
        dd           | 	                    |j        |d           | 	                    |j        |d           |                     |j        d           | 	                    |j        d	d
           | 	                    |j        d d           | 	                    |j        g d           | 	                    |j        g d|j        dg            | 	                    |j        g            | 	                    |j        t          j        d           | 	                    |j        |d           |                     |j        d           | 	                    |j        d|id           | 	                    |j        |d           |                     |j        j        d           d S )NrE   child)rq   parentr   rE   zname incorrectly resetzparent incorrectly resetzmethods incorrectly resetzcalled not resetr   zcall_count not resetzcall_args not resetzcall_args_list not resetz(method_calls not initialised correctly: z != zside_effect incorrectly resetzreturn_value incorrectly resetzreturn value mock not resetzchildren reset incorrectlyzchildren incorrectly clearedzchild not reset)r   r
   r-   SomethingElserE   r   rk   rS   
reset_mockrP   
_mock_namerZ   r[   rN   rO   rQ   rT   rU   rV   
mock_callsr\   )r   r   r   r   rE   rS   s         r   test_reset_mockzMockTest.test_reset_mock   ss   }d;;;X8+ABBBBN	#.('1	3 	3 	3*F3	5 	5 	5+T4	6 	6 	6 	&8999!-CDDD/DEEE,b2LMMM*BB***BB0	1 	1 	1 	"---)8+>9	; 	; 	;*L:	< 	< 	<,.KLLL,{I.F6	8 	8 	88	: 	: 	:.0ABBBBBr!   c                 N    t                      }||_         |j                     d S r#   )r   rS   r   r]   s     r   test_reset_mock_recursionz"MockTest.test_reset_mock_recursion  s+    vv  	r!   c                 T    t          j                    }|                                 d S r#   )r   r   r   r   r0   s     r   (test_reset_mock_on_mock_open_issue_18622z1MockTest.test_reset_mock_on_mock_open_issue_18622  s     N	r!   c                    t                      }|                     t          |j        t                     d            |            }|                      |            |d            |j                      |t          j                  }|                     |j        d           |                     |j	        dd           |                     |j
        t          j        fi fd           |                     |j
        j        t          j        fd           |                     |j
        j        i d           |                     |j        t          j        fi fgd           t          j        |_         |t          j        t          j                  }|                     |t          j        d	           |                     |j	        d
d           |                     |j
        t          j        fdt          j        ifd           |                     |j        t          j        fi ft          j        fdt          j        ifgd           d S )Nz%Default return_value should be a Mockz'different result from consecutive callszcalled not setre   zcall_count incorrectzcall_args not setrL   )keyzincorrect return valuer   r   zcall_args_list not set)r   rR   r   rS   rP   r   r
   ArgrO   rQ   rT   r   r   rU   ReturnValueKeyArg)r   r   resultret_vals       r   	test_callzMockTest.test_call"  sM   vvD$5t<<?	A 	A 	A B	D 	D 	D$x|$$%5666!-CDDD8</2)>,	. 	. 	.,x|o,	. 	. 	..,	. 	. 	.,/D.EC	E 	E 	E %0$x|999("61	3 	3 	3 	!-CDDD#</E8?+CD,	. 	. 	. 	,l_b!l_uho67/
 %		& 	& 	& 	& 	&r!   c           	         t                      } |              |t          j                    |t          j                    |t          j        t          j                   |                     |j        dt          j        ffdt          j        ift          j        fdt          j        ifg           |                     |j        t          j        fdt          j        if           |                     |j        j        t          j        f           |                     |j        j        dt          j        i           | 	                    |j        dk               d S )N)kwr$   r   za long sequence)
r   r
   r   KwargrP   rU   rT   r   r   rN   r]   s     r   test_call_args_comparisonz"MockTest.test_call_args_comparisonH  s>   vvX\X\hn----,l_HN#%l_tX^45	/
 	 	 	 	#</D(.+AB	D 	D 	D,x|o>>>.x~0FGGG 	+<<=====r!   c                    t          j                    }|                     ||k               |                     ||k               |                     |t          j                    k               |                     |t          j                    k               |                     |t           j        k               |                     |t           j        k               |                     t           j        |k               |                     t           j        |k               |                     |t
          k               |                     |t
          k               t          j        t          j                              }t          j        t           j                  }|                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     |t
          k               |                     |t
          k               |                     |dk               |                     |dk               d S )Nre   )r   r   rR   rN   ANYr   r   )r   mmcall1call2s       r   test_calls_equal_with_anyz"MockTest.test_calls_equal_with_any^  s    ^b!!!r"""t~///000dn...///dh'''tx(((B'''R(((i(((y)))	$.**++	$(##'''%((('''%(((*+++)+,,,!$$$
#####r!   c                 >   t                      } |              |j                     |                     t          |j        d            |j                     |                     t          |j                    |ddddd            |j        ddddd           d S )Nre   r   r   r   nothingr0   r1   )r   r   rl   AssertionErrorr   r]   s     r   test_assert_called_withz MockTest.test_assert_called_withz  s    vv 	 !!!.$*A1EEE.$*ABBBQ1),,,,1a6Y??????r!   c                     t                      } |t                                 |                    t          j                   d S r#   )r   r   r   r   r   ms     r   test_assert_called_with_anyz$MockTest.test_assert_called_with_any  s8    KK	)++	TX&&&&&r!   c                    d
d}t          |          } |ddd            |j        ddd            |j        ddd           |                     t          |j        ddd           |                     t                    5 } |j        d	           d d d            n# 1 swxY w Y   |                     |j        j        t                     d S )Nc                     d S r#   r$   r:   s       r   rd   z9MockTest.test_assert_called_with_function_spec.<locals>.f  r5   r!   r   re   r   r   r1   r2   r0   r1   r2      er#   )r   r   rl   r   assertIsInstance	exception	__cause__rj   r   rd   r   cms       r   %test_assert_called_with_function_specz.MockTest.test_assert_called_with_function_spec  s-   $$$$|||Q!q1a(((!qA.....$*AqA 	 	' 	' 	' ~.. 	)"#D#a((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)bl4i@@@@@   B$$B(+B(c                      fd}t          t                      j                  } ||           t          t          j                  } ||           t          t                      j                  } ||           t          t          j                  } ||           t          t                      j                  } ||           d S )Nc                      | ddd            | j         ddd            | j         ddd                               t          | j         ddd           d S )Nre   r   r   r   r   )r   rl   r   r   r   s    r   _checkz<MockTest.test_assert_called_with_method_spec.<locals>._check  s    Da1#D#Aq!,,,#D#a12222nd.E1  + + + + +r!   r   )r   r-   r4   r8   r;   )r   r   r   s   `  r   #test_assert_called_with_method_specz,MockTest.test_assert_called_with_method_spec  s    	+ 	+ 	+ 	+ 	+ )***t)))t*+++t)))t*+++tr!   c                    d}|                      t          |                    d                    5  t                                                       d d d            n# 1 swxY w Y   |                      t          |                    d                    5  t          d                                           d d d            d S # 1 swxY w Y   d S )Nz"Expected '{0}' to have been calledr   	test_namerp   )r   r   formatr   assert_called)r   msgs     r   $test_assert_called_exception_messagez-MockTest.test_assert_called_exception_message  s7   2##NCJJv4F4FGG 	# 	#FF  """	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	###NCJJ{4K4KLL 	3 	3k"""00222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s#   !AA"%A"#CCCc                    t                                     j                                   |                     t          j                    j                     |                     t          j                    ddd            j        ddd            j                      ddd           |                     t          fd           d S )Nro   rr   r   rw   c                  *      j         ddd          S )Nbobrr   r   r   assert_called_once_withr   s   r   <lambda>z7MockTest.test_assert_called_once_with.<locals>.<lambda>  s    0D01EEE r!   )r   r   rl   r   r   r]   s    @r   test_assert_called_once_withz%MockTest.test_assert_called_once_with  s    vv 	%$&&&.$*FGGG.$*FGGGUEq!!!!$$UEq9999UEq!!!!EEEE	
 	
 	
 	
 	
r!   c                     t                       d            d           |                     t          t          j        d          fd           d S )Nre   r   zCalls: [call(1), call(2)]c                  .                          d          S )Nr   r   )r   s   r   r   zAMockTest.test_assert_called_once_with_call_list.<locals>.<lambda>  s    A--a00 r!   )r   r   r   reescaper   s    @r   &test_assert_called_once_with_call_listz/MockTest.test_assert_called_once_with_call_list  sd    FF	!	!~I1220000	2 	2 	2 	2 	2r!   c                 R   dd}t          |          } |ddd            |j        ddd            |j        ddd           |                     t          |j        ddd           |                     t                    5 } |j        d	           d d d            n# 1 swxY w Y   |                     |j        j        t                      |d
dd           |                     t          |j        ddd           |                     t          |j        d
dd           d S )Nc                     d S r#   r$   r:   s       r   rd   z>MockTest.test_assert_called_once_with_function_spec.<locals>.f  r5   r!   r   re   r   r   r   r   r   r            r#   )r   r   rl   r   r   r   r   rj   r   s       r   *test_assert_called_once_with_function_specz3MockTest.test_assert_called_once_with_function_spec  s   $$$$|||Q!q$$Q1---$$qA3333.$*FqA 	 	' 	' 	' ~.. 	."(D(1----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.bl4i@@@Q1.$*FQ	# 	# 	#.$*FQ	# 	# 	# 	# 	#r   c                 v   t                      }|j        }|                     t          |t                     d           |                     |j        |d           t                      }d|j        _        |                      |j                    dd           |                     |j        j        d           d S )Nzattribute isn't a mockz+different attributes returned for same namer   zmethod returned wrong valuez!method didn't record being called)r   rE   rR   r   rP   rS   rO   r   r   rE   s      r   #test_attribute_access_returns_mocksz,MockTest.test_attribute_access_returns_mocks  s    vvN	It446NOOOF	H 	H 	H vv&'#))1.KLLL-;	= 	= 	= 	= 	=r!   c                     t                      }|j        }|                     |j        dd           |                     |j        |d           d S )NrE   z attribute name not set correctlyz"attribute parent not set correctly)r   rE   rP   r   rZ   r  s      r   (test_attributes_have_name_and_parent_setz1MockTest.test_attributes_have_name_and_parent_set  s`    vvN	-{;	= 	= 	=/=	? 	? 	? 	? 	?r!   c                 X   t                      } |j        dd            |j                            dt          j                   |                     |j        j        dddt          j        ifgd           |                     |j        dd	d
d ifdddt          j        ifgd           d S )Nr   r   r
  )cakerE   )r
  r  z#method calls not recorded correctly)r   r   zsomething_else.something)r   rE   something_elser
   CakerP   rV   r]   s     r   test_method_calls_recordedz#MockTest.test_method_calls_recorded  s    vvqt$$$$%%ahm%<<<,9'/FGH?	A 	A 	A 	*$/'/FG-
 2		3 	3 	3 	3 	3r!   c                    t                      } |j                     |                     |j        dg           |                     |j        ddi fg           t                      } |j        d           |                     |j        dg           |                     |j        ddi fg           t                      } |j        d           |                     |j        dd	difg           |                     |j        ddd	difg           t                      } |j        dd
           |                     |j        dddd
ifg           d S )Nr   rE   r$   	different)rE   r  r  re   xr  more)somer  )r   rE   rP   rV   r]   s     r    test_method_calls_compare_easilyz)MockTest.test_method_calls_compare_easily  s   vv*^,<===*k2r-B,CDDDvv{###*-J,KLLL*&;<	> 	> 	> vv*kC8-D,EFFF*k2Qx-H,IJJJvv{0000*.66*:;-
 	 	 	 	 	r!   c           	          dgdfD ]?}dD ]:}t          di ||i}|j         |                     t          dt          |d           ;@d S )NrE   r   )r   r   z-Mock object has no attribute 'something_else'r  r$   )r   rE   r   AttributeErrorgetattr)r   r   argr   s       r   test_only_allowed_methods_existz(MockTest.test_only_allowed_methods_exist2  s     M>1 
	 
	D) 	 	**sDk** &&"CT#3   	
	 
	r!   c                       G d dt                     } fd} |t          |                      |t           |                                 d S )Nc                       e Zd ZdZdZd ZdS )*MockTest.test_from_spec.<locals>.Somethingr   Nc                     d S r#   r$   r   s    r   yz,MockTest.test_from_spec.<locals>.Something.yD  r5   r!   )r(   r)   r*   r  __something__r'  r$   r!   r   r-   r%  A  s#        A Mr!   r-   c                     | j          | j         | j                             t          dt
          | d                               t          dt
          | d           d S )Nz Mock object has no attribute 'z'zz)Mock object has no attribute '__foobar__'
__foobar__)r  r'  r(  r   r  r   r   s    r   test_attributesz0MockTest.test_from_spec.<locals>.test_attributesF  sp    FFFF""2s  
 "";|    r!   r   )r   r   )r   r-   r,  s   `  r   test_from_speczMockTest.test_from_spec@  s    	 	 	 	 	 	 	 	
	 	 	 	 	  	),,,---))++.../////r!   c                    t                      }t          |          }|                      |             |                       |                                  |ddd           |                    ddd           d S )Nwrapsre   r   r   r   )r   rP   r   r   r   realr   s      r   test_wraps_callszMockTest.test_wraps_callsZ  s    vv$(((Q11-----r!   c                      G d dt                     } |            }t          |          |                     t          fd           d S )Nc                       e Zd ZdS )FMockTest.test_wraps_prevents_automatic_creation_of_mocks.<locals>.RealNr}   r$   r!   r   Realr6  g  r   r!   r7  r/  c                  "      j                     S r#   )new_attrr   s   r   r   zJMockTest.test_wraps_prevents_automatic_creation_of_mocks.<locals>.<lambda>m  s    -$-// r!   )r   r   rl   r  r   r7  r2  r   s      @r   /test_wraps_prevents_automatic_creation_of_mocksz8MockTest.test_wraps_prevents_automatic_creation_of_mocksf  sp    	 	 	 	 	6 	 	 	 tvv$.*A*A*A*ABBBBBr!   c                     t                      }t          |          }d|_        |                      |            d           |                     |j                   d S )Nr/  r   )r   rS   rP   rN   rO   r1  s      r   ,test_wraps_call_with_nondefault_return_valuez5MockTest.test_wraps_call_with_nondefault_return_valuep  s[    vv$###%%%%%r!   c                      G d dt                     } |            }t          |          |                      j                    |                                           |                     t
          fd           |                     j        |j                   j                            ddd          }|j        j                            ddd           |                     ||j                                                   d S )	Nc                   "    e Zd Z e            ZdS ),MockTest.test_wraps_attributes.<locals>.RealN)r(   r)   r*   r   	attributer$   r!   r   r7  r@  {  s        IIIr!   r7  r/  c                       j         S r#   r   r   s   r   r   z0MockTest.test_wraps_attributes.<locals>.<lambda>  s	    $) r!   re   r   r   r   )	r   r   rP   rA  rl   r  assertNotEqualfrogr   )r   r7  r2  r   r   s       @r   test_wraps_attributeszMockTest.test_wraps_attributesz  s   	 	 	 	 	6 	 	 	 tvv$))4>>+;+;<<<.*;*;*;*;<<<DNDN;;;$$Q$22..q!!.<<<!4!4!6!677777r!   c                     G d dt                     } |            }t          |          }t          j        t          g|j        _        |                      |j                    t          j                   |                      |j                    t          j                   | 	                    t          |j                   d S )Nc                       e Zd Zd ZdS )[MockTest.test_customize_wrapped_object_with_side_effect_iterable_with_default.<locals>.Realc                     t           j        S r#   )r
   ORIGINAL_VALUEr   s    r   methodzbMockTest.test_customize_wrapped_object_with_side_effect_iterable_with_default.<locals>.Real.method  s    ..r!   Nr(   r)   r*   rK  r$   r!   r   r7  rH    s#        / / / / /r!   r7  r/  )r   r   r
   VALUE1r   rK  rk   rP   rJ  rl   StopIterationr:  s       r   Dtest_customize_wrapped_object_with_side_effect_iterable_with_defaultzMMockTest.test_customize_wrapped_object_with_side_effect_iterable_with_default  s    	/ 	/ 	/ 	/ 	/6 	/ 	/ 	/ tvv$#+?G"<888(?@@@-55555r!   c                     G d dt                     } |            }t          |          }t          j        t          j        g|j        _        |                      |j                    t          j                   |                      |j                    t          j                   |                     t          |j                   d S )Nc                       e Zd Zd ZdS )NMockTest.test_customize_wrapped_object_with_side_effect_iterable.<locals>.Realc                     d S r#   r$   r   s    r   rK  zUMockTest.test_customize_wrapped_object_with_side_effect_iterable.<locals>.Real.method  r5   r!   NrL  r$   r!   r   r7  rR            """""r!   r7  r/  )
r   r   r
   rM  VALUE2rK  rk   rP   rl   rN  r:  s       r   7test_customize_wrapped_object_with_side_effect_iterablez@MockTest.test_customize_wrapped_object_with_side_effect_iterable  s    	# 	# 	# 	# 	#6 	# 	# 	# tvv$#+?HO"D888888-55555r!   c                      G d dt                     } |            }t          |          }t          |j        _        |                     t          |j                   d S )Nc                       e Zd Zd ZdS )OMockTest.test_customize_wrapped_object_with_side_effect_exception.<locals>.Realc                     d S r#   r$   r   s    r   rK  zVMockTest.test_customize_wrapped_object_with_side_effect_exception.<locals>.Real.method  r5   r!   NrL  r$   r!   r   r7  rY    rT  r!   r7  r/  )r   r   RuntimeErrorrK  rk   rl   r:  s       r   8test_customize_wrapped_object_with_side_effect_exceptionzAMockTest.test_customize_wrapped_object_with_side_effect_exception  sq    	# 	# 	# 	# 	#6 	# 	# 	# tvv$".,44444r!   c                      G d dt                     }d } |            }t          |          }||j        _        |                      |j                    t
          j                   d S )Nc                       e Zd Zd ZdS )NMockTest.test_customize_wrapped_object_with_side_effect_function.<locals>.Realc                     d S r#   r$   r   s    r   rK  zUMockTest.test_customize_wrapped_object_with_side_effect_function.<locals>.Real.method  r5   r!   NrL  r$   r!   r   r7  r_    rT  r!   r7  c                      t           j        S r#   )r
   VALUEr$   r!   r   rk   zUMockTest.test_customize_wrapped_object_with_side_effect_function.<locals>.side_effect  s
    >!r!   r/  )r   r   rK  rk   rP   r
   rb  )r   r7  rk   r2  r   s        r   7test_customize_wrapped_object_with_side_effect_functionz@MockTest.test_customize_wrapped_object_with_side_effect_function  s    	# 	# 	# 	# 	#6 	# 	# 	#	" 	" 	" tvv$"-77777r!   c                      G d dt                     } |            }t          |          }t          j        |j        _        |                      |j                    t          j                   d S )Nc                       e Zd Zd ZdS )FMockTest.test_customize_wrapped_object_with_return_value.<locals>.Realc                     d S r#   r$   r   s    r   rK  zMMockTest.test_customize_wrapped_object_with_return_value.<locals>.Real.method  r5   r!   NrL  r$   r!   r   r7  rf    rT  r!   r7  r/  )r   r   r
   rb  rK  rS   rP   r:  s       r   /test_customize_wrapped_object_with_return_valuez8MockTest.test_customize_wrapped_object_with_return_value  s{    	# 	# 	# 	# 	#6 	# 	# 	# tvv$#+> 77777r!   c                     G d dt                     } |            }t          |          }t          j        t          j        g|j        _        t          j        |j        _        | 	                     |j                    t          j                   | 	                     |j                    t          j                   | 
                    t          |j                   d S )Nc                       e Zd Zd ZdS )VMockTest.test_customize_wrapped_object_with_return_value_and_side_effect.<locals>.Realc                     d S r#   r$   r   s    r   rK  z]MockTest.test_customize_wrapped_object_with_return_value_and_side_effect.<locals>.Real.method  r5   r!   NrL  r$   r!   r   r7  rk    rT  r!   r7  r/  )r   r   r
   rM  rU  rK  rk   WRONG_VALUErS   rP   rl   rN  r:  s       r   ?test_customize_wrapped_object_with_return_value_and_side_effectzHMockTest.test_customize_wrapped_object_with_return_value_and_side_effect  s    	# 	# 	# 	# 	#6 	# 	# 	# tvv$#+?HO"D#+#7 888888-55555r!   c                      G d dt                     } |            }t          |          }d |j        _        t          j        |j        _        |                      |j                    t          j                   d S )Nc                       e Zd Zd ZdS )WMockTest.test_customize_wrapped_object_with_return_value_and_side_effect2.<locals>.Realc                     d S r#   r$   r   s    r   rK  z^MockTest.test_customize_wrapped_object_with_return_value_and_side_effect2.<locals>.Real.method  r5   r!   NrL  r$   r!   r   r7  rq    rT  r!   r7  r/  c                      t           S r#   r   r$   r!   r   r   z[MockTest.test_customize_wrapped_object_with_return_value_and_side_effect2.<locals>.<lambda>  s    ' r!   )r   r   rK  rk   r
   rb  rS   rP   r:  s       r   @test_customize_wrapped_object_with_return_value_and_side_effect2zIMockTest.test_customize_wrapped_object_with_return_value_and_side_effect2  s    	# 	# 	# 	# 	#6 	# 	# 	# tvv$"1/#+> 77777r!   c                     G d dt                     } |            }t          |          }t          j        t          g|j        _        t          j        |j        _        | 	                     |j                    t          j                   | 	                     |j                    t          j                   | 
                    t          |j                   d S )Nc                       e Zd Zd ZdS )^MockTest.test_customize_wrapped_object_with_return_value_and_side_effect_default.<locals>.Realc                     d S r#   r$   r   s    r   rK  zeMockTest.test_customize_wrapped_object_with_return_value_and_side_effect_default.<locals>.Real.method  r5   r!   NrL  r$   r!   r   r7  rw    rT  r!   r7  r/  )r   r   r
   rM  r   rK  rk   r   rS   rP   rl   rN  r:  s       r   Gtest_customize_wrapped_object_with_return_value_and_side_effect_defaultzPMockTest.test_customize_wrapped_object_with_return_value_and_side_effect_default  s    	# 	# 	# 	# 	#6 	# 	# 	# tvv$#+?G"<#+? 888888-55555r!   c                    ddi}t          |          }|                     |                    d          d           |                     |d         t                      |                     d|v            d|j        _        |                     |                    d          d           t          j        |j        _        |                     |                    d          d           |                     |                    d          d            |                     |d         t                      |                     d|v            d|d<   |                     |                    d          d           |                     |d         t                      |                     d|v            |d= |                     |                    d          d            d S )Nro   rr   r/  rS   rw   spam)r   rP   getr   rN   rS   r
   r   )r   datawrapped_dicts      r   test_magic_method_wraps_dictz%MockTest.test_magic_method_wraps_dict  s    u~ t,,,))%00%888l519===,./// )7%))%00.AAA )1(8%))%00%888))%00$777l519===,.///U))%00&999l519===,.///K))%00$77777r!   c                 .    G d d          }t          |          } |            }|                     |                    d          d           |                     |d         d           |                     |                                d           d S )Nc                       e Zd Zd Zd ZdS )3MockTest.test_magic_method_wraps_class.<locals>.Fooc                     |S r#   r$   )r   indexs     r   __getitem__z?MockTest.test_magic_method_wraps_class.<locals>.Foo.__getitem__  s    r!   c                     dS Nro   r$   r   s    r   __custom_method__zEMockTest.test_magic_method_wraps_class.<locals>.Foo.__custom_method__  s    ur!   N)r(   r)   r*   r  r  r$   r!   r   Foor    s2              r!   r  r/  r   ro   )r   rP   r  r  )r   r  klassobjs       r   test_magic_method_wraps_classz&MockTest.test_magic_method_wraps_class  s    	 	 	 	 	 	 	 	 $$$egg++Q///Q###..00%88888r!   c                     t          t                    }|                     t          |           t          t          d                    }|                     t          |           d S Nr   ro   )r   r  rl   r]   s     r   test_exceptional_side_effectz%MockTest.test_exceptional_side_effect%  s\    ///.$///u 5 5666.$/////r!   c                     t          t                    }|                     t          |           t          t          d                    }|                     t          |           d S r  )r   KeyboardInterruptrl   r]   s     r    test_baseexceptional_side_effectz)MockTest.test_baseexceptional_side_effect-  s`     1222+T222 1% 8 8999+T22222r!   c                 d    t                      }|                     t          d|j                   d S )Nz
not called)r   r   r   r   r]   s     r   test_assert_called_with_messagez(MockTest.test_assert_called_with_message5  s7    vv~| $ 7	9 	9 	9 	9 	9r!   c                 h    t          d          }|                     t          d|j                   d S )Ngeoffreyrp   z'Expected 'geoffrey' to be called once\.)r   r   r   r   r]   s     r   $test_assert_called_once_with_messagez-MockTest.test_assert_called_once_with_message;  s?    $$$~?1	3 	3 	3 	3 	3r!   c                     t                      |                     t          fd           d_        |                     j        d           d S )Nc                       j         S r#   )r(   r   s   r   r   z'MockTest.test__name__.<locals>.<lambda>D  s	    $- r!   ro   )r   rl   r  r(   rP   r]   s    @r   test__name__zMockTest.test__name__B  sQ    vv.*?*?*?*?@@@.....r!   c                      G d dt                     }t           |dg                    } |j        d           |j                            d           |                     t
          t          |d           d S )Nc                       e Zd ZdS )-MockTest.test_spec_list_subclass.<locals>.SubNr}   r$   r!   r   Subr  K  r   r!   r  ro   r   r   )listr   appendr   rl   r  r   )r   r  r   s      r   test_spec_list_subclassz MockTest.test_spec_list_subclassJ  s    	 	 	 	 	$ 	 	 	eW&&&A&&q))).'4?????r!   c                 
    G d dt                     }t          |          }|                     ||           t           |                      }|                     ||           |                     |j        |           |                     t                      j        j        d           t          |          }|                     ||           t           |                      }|                     ||           d S )Nc                       e Zd ZdS )#MockTest.test_spec_class.<locals>.XNr}   r$   r!   r   r~   r  U  r   r!   r~   r   r   r   )r   r   r   assertIs	__class__rP   r(   r   s      r   test_spec_classzMockTest.test_spec_classT  s   	 	 	 	 	 	 	 	 |||dA&&&~~~dA&&&dna((()2F;;;QdA&&&QQSS!!!dA&&&&&r!   c                     G d d          }t          |          }|                     ||           t           |                      }|                     ||           |                     |j        |           |                     t                      j        j        d           t          |          }|                     ||           t           |                      }|                     ||           d S )Nc                       e Zd ZdS )2MockTest.test_spec_class_no_object_base.<locals>.XNr}   r$   r!   r   r~   r  i  r   r!   r~   r   r   r   )r   r   r  r  rP   r(   r   s      r   test_spec_class_no_object_basez'MockTest.test_spec_class_no_object_baseh  s   	 	 	 	 	 	 	 	 |||dA&&&~~~dA&&&dna((()2F;;;QdA&&&QQSS!!!dA&&&&&r!   c                      G d dt                     }t          |          d_        t          |          fd}d_        |                     t
          |           d S )Nc                       e Zd ZdZdS )8MockTest.test_setting_attribute_with_spec_set.<locals>.Xr   N)r(   r)   r*   r'  r$   r!   r   r~   r  }  s        AAAr!   r~   r   ro   r   c                      d _         d S r  r  r   s   r   set_attrz?MockTest.test_setting_attribute_with_spec_set.<locals>.set_attr  s    DFFFr!   )r   r   r  r'  rl   r  )r   r~   r  r   s      @r   $test_setting_attribute_with_spec_setz-MockTest.test_setting_attribute_with_spec_set|  s    	 	 	 	 	 	 	 	 |||Q	 	 	 	 	 .(33333r!   c                     t          j                    }|                     t           j        |           t          j        t	          d                     t          j        t                                 d S )Ng    eA)sysgetrecursionlimit
addCleanupsetrecursionlimitintcopyr   )r   currents     r   	test_copyzMockTest.test_copy  sZ    '))-w777 	c$ii(((	$&&r!   c                      G d dt                     } ||          |                     j        d           fd}|                     t          |           fd}|                     t
          |           d S )Nc                   2    e Zd Zd Zd Z eee          ZdS )8MockTest.test_subclass_with_properties.<locals>.SubClassc                     dS Nr   r$   r   s    r   _getz=MockTest.test_subclass_with_properties.<locals>.SubClass._get  s    qr!   c                      t          d          )Nzstrange error)	NameError)r   values     r   _setz=MockTest.test_subclass_with_properties.<locals>.SubClass._set  s    000r!   N)r(   r)   r*   r  r  propertysome_attributer$   r!   r   SubClassr    s=          1 1 1%XdD11NNNr!   r  r   r   c                      d _         d S r  )r  ss   r   testz4MockTest.test_subclass_with_properties.<locals>.test  s     Ar!   c                      d _         d S )Nrr   ro   r  s   r   r  z4MockTest.test_subclass_with_properties.<locals>.test  s    AEEEr!   )r   rP   r  rl   r  r  )r   r  r  r  s      @r   test_subclass_with_propertiesz&MockTest.test_subclass_with_properties  s    	2 	2 	2 	2 	2t 	2 	2 	2 Hh''')1---	! 	! 	! 	! 	!)T***	 	 	 	 	.$/////r!   c                     t                      }d }|t          |          _         |d            |j        d           |                     t
          |dd           d S )Nc                 V    |                      |           |                     |          S r#   )_increment_mock_call
_mock_callr   s     r   __call__z,MockTest.test_setting_call.<locals>.__call__  s(    %%a(((??1%%%r!   onetwo)r   typer  r   rl   rj   )r   r   r  s      r   test_setting_callzMockTest.test_setting_call  sj    vv	& 	& 	& 'T

U&&&)T5%88888r!   c                    t                      }t          t          |                    }t          d t          t                     D                       }|                     t                      ||z
             |j        |j        f |                     dt          |                     |                     dt          |                     d x|_        |_        |                     dt          |                     |                     dt          |                     d |_	        |                     dt          |                     d S )Nc                 <    g | ]}|                     d           |S )_)
startswith).0r   s     r   
<listcomp>z%MockTest.test_dir.<locals>.<listcomp>  s)    HHHall36G6GH!HHHr!   r0   r1   r2   r3   c                      t          g           S r#   )r   r  s    r   r   z#MockTest.test_dir.<locals>.<lambda>  s    $r(( r!   r%   )
r   setdirrP   r0   r1   rs   r2   r3   r%   )r   r   attrs
type_attrss       r   test_dirzMockTest.test_dir  s   vvCIIHHSYYHHHII
 	
U 2333 	c3t99%%%c3t99%%% c3t99%%%c3t99%%% +*j#d)),,,,,r!   c                    t          t          j                  }t          t	          t          j                            }t          t	          |                    }|                     t                      ||z
             d|_        |                     t	          |                              d          d           d S )Nr   r   versionre   )r   unittestTestCaser  r  rP   r  count)r   r   testcase_attrsr  s       r   test_dir_from_speczMockTest.test_dir_from_spec  s    *+++S!23344CII 	 6777 T33Q77777r!   c                    t          j        t          dd          }|                                 	 t	          t          t                                          }t	          t          t                              }|                     t	                      ||z
             |                                 d S # |                                 w xY w)N
FILTER_DIRF)	r	   r   r   r   r  r  r   rP   stop)r   patcherr  r  s       r   test_filter_dirzMockTest.test_filter_dir  s    ,t\599	DFF$$ESYYJ SUUJ$6777LLNNNNNGLLNNNNs   A.B5 5Cc                     t                      }d|j        _        |                     dt	          |                     |`|                     dt	          |                     d S )Nre   r   )r   r   rS   rs   r  rW   r]   s     r   ,test_dir_does_not_include_deleted_attributesz5MockTest.test_dir_does_not_include_deleted_attributes  sV    vv"#
gs4yy)))J#d)),,,,,r!   c                    t          d          }|                     |j        d           t          d          }|                     |j        d           t          dt                      d}t          di |}|                     t          |           |                     |j                                        d           |                     |j        t                     t                      } |j        di | |                     t          |           |                     |j                                        d           |                     |j        t                     d S )Nrr   r  !   )rk   zfoo.bar.return_valuero   r$   )	r   rP   ro   r   KeyErrorrl   rr   r   configure_mock)r   r   r   s      r   test_configure_mockzMockTest.test_configure_mock  s:   5)))U###5)))!)2"& &~~f~~(D))),,,dh	222vv%%f%%%(D))),,,dh	22222r!   c                     |                      |          5 } ||i | d d d            n# 1 swxY w Y   t          |j                  }|                     ||           d S r#   )rl   strr   rP   )r   r   messagefuncr   r   contextr   s           r   assertRaisesWithMsgzMockTest.assertRaisesWithMsg  s    y)) 	"WD$!&!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"'#$$g&&&&&s   	+//c           
      P   t                      }d}d}d}|                     t          |||fz  |j        dddd            |j        dddd	           |j        j        |j        j        g}|D ].}d
}d}d}|                     t          |||fz  |dddd           /|D ]+}d
}d}d}|                     t          |||fz  |d           ,|D ],}d
}d}d}|                     t          |||fz  |ddd           -|D ])}d
}d}d}|                     t          |||fz  |           *d S )Nznot called.zmock(1, '2', 3, bar='foo')z0expected call not found.
Expected: %s
Actual: %sre   2r   ro   )rr   r  zfoo(1, '2', 3, foo='foo')zfoo(1, '2', 3, bar='foo')zfoo(bar='foo')zfoo(1, 2, 3)r   zfoo())r   r  r   r   ro   r   )r   r   actualexpectedr  	assertersr4   s          r   'test_assert_called_with_failure_messagez0MockTest.test_assert_called_with_failure_message  s     /F  Gx&88#QQE 	! 	
 	
 	

 	C&&&& H')I
	  	 	D0F2HJG$$8V*< <aaU %      	 	D0F'HJG$$8V*< <% %      	 	D0F%HJG$$8V*< <aA     	 	D0FHJG$$8V*< <d   		 	r!   c           	      N   t                      }|                     |j        g k    d           t                      } |             ddi fg}|                     |j        |            |j                     |                    t          j                               |                     |j        |           |                     |j        j        ddi fg           t                      } |                                ddddd	           ddi fd
dt          dd	          fg}|                     |j        |           |                     |j        j        j        ddt          dd	          fg           |                     |j        j        ddt          dd	          fg           t                      } |            j        	                                
                                 ddi fddi fddi fg}|                     |j        |           |                      |            j        t          j        	                                
                                                                           t                      t          d          fD ]}t          di |}t          |j                   ddi fg}|                     |j        |           t          di |}  |j                                 ddi fddi fg}|                     |j        |           |                      |j                    j        t                      g           t          di |}   |d          d          d           |                     |j          t          d          d          d                                                     |                      |            j         t          d          d                                                     |                       |                        j        t          d                                                     t          di |}   |d          d          d          j        j                            d           |                     |j          t          d          d          d          j        j                            d                                                     |                      |            j         t          d          d          j        j                            d                                                     |                       |                        j        t          d          j        j                            d                                                     t          di |}t           |            j        	                                
                                           ddi f}|                     |j        d         |           |                      |            j        t          j        	                                
                                                                                                           |                      |            j        	                                j        t          j
                                                                                               |                      |            j        	                                j
        j        t                                                                                                 d S )NT r$   re   r   r   r  r	  r   z().foor   ro   z
().foo.barz().foo.bar().bazrr   rp   zfoo.__int__r0   za()z().foo.bar().baz().__int__)r   r  r   rP   ro   r  r   dictrS   rr   rw   	call_listr  r0   r1   r2   __int__)r   r   r   r   	last_calls        r   test_mock_callszMockTest.test_mock_callsE  s   {{ 	do+T222{{RL>(333




###(333,B|n==={{

1aa1
%%%RL8YqA?
 	(333*.9y$a...9:	< 	< 	<*5 )TA^^^<=	? 	? 	? {{
RL<R0R(
 	(333*++--7799	; 	; 	; ffd.... $	; $	;F&&v&&DMMM&B/0HT_h777&&v&&DFDFHHJJJb"r27HT_h777VTVXX0466(;;;&&v&&DGDDGGAJJqMMMT_jgd1ggajjmm.E.E.G.GHHHTTVV.Q

0D0D0F0FGGGVTTVVXX0$q''2C2C2E2EFFF&&v&&DGDDGGAJJqMMO"""T_'WT!WWQZZ]]_.0033==??A A ATTVV.$T!WWQZZ\^--a00::<<> > >VTTVVXX0!!WWY[]]1--7799; ; ; &&v&&D
  $$&&'''5r2>IT_R0)<<<TTVV.!X\\^^//1199;;EEGGI I ITTVVZ^^--8!XZZ//11;;==? ? ?TTVVZ^^--1<!VV^^--7799; ; ; ;G$	; $	;r!   c                 F   t                      } |            }|                                 |                     |j        t	                      t	                                                      g           |                     |j        t	          j                    g           d S r#   )r   wibblerP   r   r   )r   r   r   s      r   test_child_mock_call_equalz#MockTest.test_child_mock_call_equal  sw    FF'@AAA*T[]]O<<<<<r!   c                 Z   t                      }|                                                                 |                     |j        d         t          j                                                               |                     |j        d         t          j                               d S Nre   r   )r   ro   rE   rC  r   r   r  rP   r   s     r   test_mock_call_not_equal_leafz&MockTest.test_mock_call_not_equal_leaf  s{    FF	ALOTXZZ-A-A-C-CDDDa$(**55555r!   c                 Z   t                      }|                                                                 |                     |j        d         t          j                                                               |                     |j        d         t          j                               d S r  r   ro   rr   rC  r   r   rw   r   s     r   !test_mock_call_not_equal_non_leafz*MockTest.test_mock_call_not_equal_non_leaf  st    FF	ALOTXZZ^^-=-=>>>ALOTXZZ88888r!   c                     t                      }|                    d                                           |                     |j        d         t          j        d                                                     d S )Nre   r  r   )r   ro   rr   rP   r   r   r   s     r   2test_mock_call_not_equal_non_leaf_params_differentz;MockTest.test_mock_call_not_equal_non_leaf_params_different  s_    FF	

a$(Q---*;*;*=*=>>>>>r!   c                     t                      }|j                                         |                     |j        d         t
          j                                                   d S Nr   r  r   s     r   &test_mock_call_not_equal_non_leaf_attrz/MockTest.test_mock_call_not_equal_non_leaf_attr  sF    FF			ALOTX\\^^<<<<<r!   c                     t                      }|j                                         |                     |j        d         t          j                                                               d S r  )r   ro   rr   rC  r   r   r   s     r   2test_mock_call_not_equal_non_leaf_call_versus_attrz;MockTest.test_mock_call_not_equal_non_leaf_call_versus_attr  sL    FF			ALOTXZZ^^-=-=>>>>>r!   c                    t                      }|                                                                j                                         |                     t          |j        d                   d           |                     t          |j        d                   d           |                     t          |j        d                   d           d S )Nr   z
call.foo()re   zcall.foo().bar()r   zcall.foo().bar().baz.bob())r   ro   rr   rw   r   rP   rt   r   r   s     r   test_mock_call_reprzMockTest.test_mock_call_repr  s    FF	al1o..===al1o..0BCCCal1o..0LMMMMMr!   c                     t                      }||_        t          |                                           |                     t          |                                          d           d S )Nz<Mock name='mock\(\)' id='\d+'>)r   ro   rt   assertRegexr   s     r   test_mock_call_repr_loopz!MockTest.test_mock_call_repr_loop  sP    FFQUUWWaeegg(JKKKKKr!   c                 t    t                      }|                     t                      g|j        v            d S r#   )r   rN   r   r   r   s     r   test_mock_calls_containsz!MockTest.test_mock_calls_contains  s2    FF$&&Q\122222r!   c                 ^    G d dt                     } |            }|                     |j        |           |                      |            |            G d dt                     } |            }|                     |j        |           |                      |            |           d S )Nc                       e Zd ZdS )+MockTest.test_subclassing.<locals>.SubclassNr}   r$   r!   r   Subclassr$    r   r!   r%  c                       e Zd Zd ZdS )r$  c                     t          di |S )Nr$   )r   )r   r   s     r   _get_child_mockz;MockTest.test_subclassing.<locals>.Subclass._get_child_mock  s    ~~f~~%r!   N)r(   r)   r*   r(  r$   r!   r   r%  z+MockTest.test_subclassing.<locals>.Subclass  s#        & & & & &r!   )r   r   ro   assertNotIsInstance)r   r%  r   s      r   test_subclassingzMockTest.test_subclassing  s    	 	 	 	 	t 	 	 	 xzzdh111ddffh///	& 	& 	& 	& 	&t 	& 	& 	& xzz  8444  22222r!   c                 (    t                      t                      t                      t                      g} fd}|D ]} ||           t	          |          r< |              |dd            |d            |j                      ||            |j                     |j                            dd            |j        d                                                              d            |j                      ||           d S )Nc                     d}|D ]^}t          | |          }                    |t                                         |t                                         |g            _d S )N)rU   rV   r   )r   r   r   r  rP   )r   namesrq   attrr   s       r   assert_attrsz-MockTest.test_arg_lists.<locals>.assert_attrs  su    BE + +tT**%%dI666%%dD111  r****	+ +r!   re   r   r   rD   )	r   r   r   r   callabler   ro   rr   rw   )r   rx   r/  r   s   `   r   test_arg_listszMockTest.test_arg_lists  s5   FFKK ""	
	+ 	+ 	+ 	+ 	+  	 	DL~~ #Q


q				!!!T"""DHJJJHLLaL   DHQKKOO!!!$$$DOL!	 	r!   c                    t                      } |dd            |dd           |                     t          |j                  d           |                     |j        j        d           |                     |j        j        t          d                     dt          d          fdt          d          fg}t          ||j                  D ]l\  }}|                     t          |          d           |                     |d	         |d	                    |                     |d         |d                    md S )
Nre   r   rD   r   r  r1   )r   re   r   )	r   rP   lenrT   r   r   r  ziprU   )r   r   expected_listr   rT   s        r   test_call_args_two_tuplez!MockTest.test_call_args_two_tuple  s5   vvQ!Q!T^,,a000,d333.q			:::q			*T4!999,=>#&}d6I#J#J 	8 	8HiS^^Q///Xa[)A,777Xa[)A,7777	8 	8r!   c                    t          t          g d                    }|                      |             |             |            gg d           |                     t          |           t          g d          }|                      |             |             |            gg d           |                     t          |           t          d          }|                      |             |             |            gg d           |                     t          |            G d dt                    }t          |          }|                      |            |           t          t                                }|                      |             |             |             |            gg d           |                     t          |           d S )	Nr   r   r   ghi)ghic                       e Zd ZdS )/MockTest.test_side_effect_iterator.<locals>.FooNr}   r$   r!   r   r  r?  #  r   r!   r  r   )	r   r   rP   rl   rN  r   r   r   r   )r   r   r  s      r   test_side_effect_iteratorz"MockTest.test_side_effect_iterator  s   YYY000$$&&$$&&$$&&1999===-...___555$$&&$$&&$$&&1???CCC-...&&&$$&&$$&&$$&&1???CCC-...	 	 	 	 	& 	 	 	S)))ddffc***'''$$&&$$&&$$&&$$&&9555	7 	7 	7-.....r!   c                 D   t           t          fD ]}t          dt          df} ||          }|                     t          |           |                      |            d           |                     t          |           |                      |            d           d S )Nr   r
  r   )r   r   r   r  rl   rP   )r   Klassiterabler   s       r   $test_side_effect_iterator_exceptionsz-MockTest.test_side_effect_iterator_exceptions.  s    9_ 	% 	%E"Ax3H(+++Aj!,,,QQSS!$$$h***QQSS!$$$$	% 	%r!   c                    t                      }t          g d          |_        |                      |             |             |            gg d           |                     t
          |           |j        }|                     |t          t          g                                g d|_        |                      |             |             |            gg d           |                     t
          |           |j        }|                     |t          t          g                                t                      }||_        |                      |             |             |             |            gg d           |                     t
          |           | 	                    |j        |           d S )Nr   r   r   )
r   r   rk   rP   rl   rN  r   r  r   r  )r   r   rk   	this_iters       r   !test_side_effect_setting_iteratorz*MockTest.test_side_effect_setting_iterator8  s   vv			??$$&&$$&&$$&&1999===-...&k4R>>:::*??$$&&$$&&$$&&1???CCC-...&k4R>>:::FF	$$$&&$$&&$$&&$$&&9555	7 	7 	7-...d&	22222r!   c                     t          d          }t          dt          g          |_        |                      |             |            gddg           d S )Nr   r`   re   )r   r   r   rk   rP   r]   s     r   !test_side_effect_iterator_defaultz*MockTest.test_side_effect_iterator_defaultM  sW    ###G--$$&&$$&&)Aq622222r!   c                    t                      } |dd            |d            |dd            |d            |d           t          dd          ddifd	d
ddifddddifddi fdd
ddifg}|D ]} |j        |gd           t          dd          t          d          t                      dd dfD ]&}|                     t          |j        |gd           't          dd          t          d          gt          dd          t          dd          gt          d          t          d          gg}|D ]} |j        |d           t          d          t          d          t          d          gt          dd          t          dd          gt          dd          t          dd          t          dd          gt          d          t          dd          t          d          t          dd          t          d          gg}|D ]%}|                     t          |j        |d           &d S )Nre   r   r   rD   r  r
  r3  r0   )r   r  r$   )r  re   r   r  rL  T	any_orderr  ro   r	     )r   r   assert_has_callsrl   r   )r   r   kallskall
kall_lists	kall_lists         r   test_assert_has_calls_any_orderz(MockTest.test_assert_has_calls_any_orderR  s   vvQ


q				Q


q				q				 AJJ#qS!H~2Qx.r2Qx0	
  	: 	:D!D!4&D99999CLL$)))TVVQeC 	 	D 5$      !QZZ#!QZZa$AYYYq			"

 $ 	= 	=I!D!)t<<<<< AYYYq			4!999-!QZZa$!QZZaT!QZZ0AYYYQ

D1IIItAqzz4!999E	

 $ 	 	I 5T     	 	r!   c                 B   t          dd          ddifdt          d          dd	d
difg}t          j                    t          j        d          g}|                    t          j                                        d                                                     |                    t          j        t                      i           	                    dg                                                     g }t                      t                      fD ]V} |dd            |d            |dd            |d            |dd           |                    ||f           Wt                      } |j                      |j        d            |j                                        d            |j        t                      i           	                    dg           |                    ||f           |D ]\  }}t          t          |                    D ]r}dD ]m}||||z            } |j        |           t          |          dk    r;|                     t"          |j        t%          t'          |                               nsd S )Nre   r   r0   r   rK  r
  r3  r  r4  r1   rD   r  r  r   )r   ro   rr   extendr{  rw   r  bamr  r   r   r   r  ranger5  rP  rl   r   r  reversed)	r   kalls1kalls2rx   r   rQ  r=  steptheses	            r   test_assert_has_callszMockTest.test_assert_has_calls~  s   Q

c1XK4!999TC8$

 (**dhqkk*dikkooo**4466777dhsuu"---22A377AACCDDDFFIKK' 	) 	)DDAJJJD1IIIIDAJJJD1IIIIDaLLLLLL$((((vv


	!B$$aS)))dF^$$$  	 	KD%3u::&& 
 
# 	 	D!!AdF(OE)D)%0005zzA~~))* 1 %11  	
	 	r!   c           	          G d d          }t          |          }| |            fD ]r}|                    dddd           |                    t          j        dddd          g           |                    t          j        dddd          g           s|                                 | |            fD ]}|                     t          |j        t          j                    g           |                    d                              dd           |                    t          j        d          t          j        d                              dd          g           |j                            t          d          t                                          dd          g           |                                 t          j        d          t          j	        d          t          j                    	                    d          t          j                                        dddd          g}|D ]$}|                     t          |j        |g           %d S )Nc                   6    e Zd Zd ZddZ G d d          ZdS )=MockTest.test_assert_has_calls_nested_spec.<locals>.Somethingc                     d S r#   r$   r   s    r   r    zFMockTest.test_assert_has_calls_nested_spec.<locals>.Something.__init__  r5   r!   Nc                     d S r#   r$   r/   s        r   r4   zBMockTest.test_assert_has_calls_nested_spec.<locals>.Something.meth  r5   r!   c                       e Zd Zd Zd ZdS )AMockTest.test_assert_has_calls_nested_spec.<locals>.Something.Fooc                     d S r#   r$   r   s     r   r    zJMockTest.test_assert_has_calls_nested_spec.<locals>.Something.Foo.__init__  r5   r!   c                     d S r#   r$   )r   r0   r1   s      r   meth1zGMockTest.test_assert_has_calls_nested_spec.<locals>.Something.Foo.meth1  r5   r!   N)r(   r)   r*   r    ri  r$   r!   r   r  rf    s"        ++++++++r!   r  r#   )r(   r)   r*   r    r4   r  r$   r!   r   r-   rb    sQ        $$$1111, , , , , , , , , ,r!   r-   re   r   r   r3   r  )
r   r4   rP  r   r   rl   r   r  ri  non_existent)r   r-   
mock_classr   invalid_callsrR  s         r   !test_assert_has_calls_nested_specz*MockTest.test_assert_has_calls_nested_spec  sH   	, 	, 	, 	, 	, 	, 	, 	, %Y//
jjll+ 	8 	8AFF1aaF   	!QQ 7 7 78999	!Q1 5 567777jjll+ 	B 	BAna.@48::,OOOEE!HHNN1a   TXa[[->->q!-D-DEFFFE""DGGTVV\\!Q-?-?#@AAAA1*1--0033Aq!446
 " 	 	Dn(9#f   	 	r!   c                    t                      } |                                                                                                             |                                                                                                 t          j                                                                                                                    }|	                    |           d S r#   )
r   ro   rr   rw   r  r  threer   r  rP  )r   r   callss      r   )test_assert_has_calls_nested_without_specz2MockTest.test_assert_has_calls_nested_without_spec  s    KK				

  &&((2244	5!!!!!r!   c                    dd}t          |          } |ddd            |ddd	d
            |ddd           ddi fdddd
ifdi fg} |j        |            |j        |d            |j        |dd                      |j        |dd          d            |j        |d d                     |j        |d d         d           t          t          |                    }|                     t
                    5   |j        |           d d d            n# 1 swxY w Y    |j        |d           |                     t
                    5   |j        |dd                     d d d            n# 1 swxY w Y    |j        |dd          d           |                     t
                    5   |j        |d d                    d d d            n# 1 swxY w Y    |j        |d d         d           d S )Nc                     d S r#   r$   r:   s       r   rd   z<MockTest.test_assert_has_calls_with_function_spec.<locals>.f  r5   r!   r   re   r   r   r   r  r	  r
  rO  r2   r3   
         )r2   r  r   )r  r	  r
  r3   )rv  rw  rx  TrM  r  r#   )r   rP  r  rZ  rl   r   )r   rd   r   rq  s       r   (test_assert_has_calls_with_function_specz1MockTest.test_assert_has_calls_with_function_spec  s!   $$$$|||Q!qQQ!RrBS!H%2
 	e$$$et4444eABBi(((eABBi48888eCRCj)))eCRCjD9999Xe__%%~.. 	) 	)!D!%(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)et4444~.. 	- 	-!D!%),,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-eABBi48888~.. 	. 	.!D!%*---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.eCRCjD999999s6   D((D,/D,FFFG((G,/G,c                    dd}t          |          } |d           |                     t          d                    t	          j        d                              5 } |j        t                      g           d d d            n# 1 swxY w Y   |                     |j	        j
                   |                     t          d                    t	          j        d                              5 } |j        t                      t          dd          g           d d d            n# 1 swxY w Y   |                     |j	        j
        t                     d S )	Nc                     d S r#   r$   r  s    r   rd   zAMockTest.test_assert_has_calls_not_matching_spec_error.<locals>.f  r5   r!   r   re   z^{}$z5Calls not found.
Expected: [call()]
Actual: [call(1)]zError processing expected calls.
Errors: [None, TypeError('too many positional arguments')]
Expected: [call(), call(1, 2)]
Actual: [call(1)]r   r#   )r   r   r   r   r  r  rP  r   rY   r   r   r   rj   r   s       r   -test_assert_has_calls_not_matching_spec_errorz6MockTest.test_assert_has_calls_not_matching_spec_error  s   |||Q##I 2 3 34 45 5 	,
 9;!D!466(+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	",0111 ##I,- -. ./ / 	8 35!D!46641::"6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	bl4i@@@@@s$    B

BB4-D--D14D1c                    t                      } |dd            |d            |dd            |j        dd            |j        d            |j        dd           |                     t          |j                   |                     t          |j        dd           |                     t          |j        d           d S )Nre   r   r   rD   r
  r3  r  )r   assert_any_callrl   r   r]   s     r   test_assert_any_callzMockTest.test_assert_any_call  s    vvQ


q				Q!Q"""q!!!!Q!$$$$ 	
 	
 	
 	 q	
 	
 	

 	  	 	
 	
 	
 	
 	
r!   c                    dd}t          |          } |ddd            |ddd	d
            |j        ddd            |j        ddd            |j        ddd	d
            |j        ddd	d
           |                     t          |j        ddd           |                     t                    5 } |j        d           d d d            n# 1 swxY w Y   |                     |j        j        t                     d S )Nc                     d S r#   r$   r:   s       r   rd   z;MockTest.test_assert_any_call_with_function_spec.<locals>.f+  r5   r!   r   re   r   r   r   r  r	  r
  rO  ru  r   r:   r   r   r#   )r   r~  rl   r   r   r   r   rj   r   s       r   'test_assert_any_call_with_function_specz0MockTest.test_assert_any_call_with_function_spec*  s{   $$$$|||Q!qQQ!Q1%%%qA++++Q1a(((qAa0000.$*>qA 	 	' 	' 	' ~.. 	&" D 1%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&bl4i@@@@@s   <CC!Cc           	      (   d }t                      }||_        t          |          t          |          j        g}|D ]S} |dd            |dd           |                     |j        t          dd          t          dd          g           Td S )Nc                     d S r#   r$   r   s     r   rd   z3MockTest.test_mock_calls_create_autospec.<locals>.f>  r5   r!   re   r   r   r  )r   rd   r   rP   r   r   )r   rd   r  funcsr  s        r   test_mock_calls_create_autospecz(MockTest.test_mock_calls_create_autospec=  s    ff AC  "
  	 	DDAJJJDAJJJ$q!**d1ajj!9   		 	r!   c                     t          j        t                      d          }|                     dt	          |                     d S )N
sweet_funcrp   )r   r   r   rs   rt   r   s     r   test_create_autospec_with_namez'MockTest.test_create_autospec_with_nameO  s;     ===lDGG,,,,,r!   c                 >    G d d          }dD ]}|                      |          5  t          j        t          ||                    } |             |                                 |                     t          |d           d d d            n# 1 swxY w Y   d S )Nc                   :    e Zd Zed             Zed             ZdS )MMockTest.test_create_autospec_classmethod_and_staticmethod.<locals>.TestClassc                     d S r#   r$   )r7   s    r   class_methodzZMockTest.test_create_autospec_classmethod_and_staticmethod.<locals>.TestClass.class_methodV  s    #'4r!   c                      d S r#   r$   r$   r!   r   static_methodz[MockTest.test_create_autospec_classmethod_and_staticmethod.<locals>.TestClass.static_methodY  s    !%r!   N)r(   r)   r*   r<   r  r=   r  r$   r!   r   	TestClassr  U  s6        '' ['%% \%%%r!   r  )r  r  )rK  	extra_arg)subTestr   r   r   r   rl   rj   )r   r  rK  mock_methods       r   1test_create_autospec_classmethod_and_staticmethodz:MockTest.test_create_autospec_classmethod_and_staticmethodT  s   	& 	& 	& 	& 	& 	& 	& 	& 8 	G 	GFV,, G G"279f3M3MNN33555!!)[+FFF	G G G G G G G G G G G G G G G	G 	Gs   ABB	B	c                    t                      }d}|                     t          |          5  |                                 d d d            n# 1 swxY w Y   |                     t          |          5  |                                 d d d            n# 1 swxY w Y   |                     t          |          5  |                                 d d d            n# 1 swxY w Y   |                     t          |          5  |                                 d d d            n# 1 swxY w Y   |                     t          |          5  |                                 d d d            n# 1 swxY w Y   t          d          }|                                 |                                 |                                 |                                 |                                 d S )Nz1is not a valid assertion. Use a spec for the mockT)unsafe)r   r   r  assert_foo_callassret_foo_callasert_foo_callaseert_foo_callassrt_foo_call)r   r   r   s      r   test_mock_unsafezMockTest.test_mock_unsafec  s   FFA##NC88 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ##NC88 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ##NC88 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	##NC88 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ##NC88 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 						sY   AAA3BBB:CC"CD""D&)D&E))E-0E-c                      G d dt                     }t          |          }|                                 |                                 |j                                         |j                                         d S )Nc                       e Zd Zd Zd ZdS ).MockTest.test_mock_safe_with_spec.<locals>.Fooc                     d S r#   r$   r   s    r   
assert_barz9MockTest.test_mock_safe_with_spec.<locals>.Foo.assert_barz      r!   c                     d S r#   r$   r   s    r   
assertSomez9MockTest.test_mock_safe_with_spec.<locals>.Foo.assertSome}  r  r!   N)r(   r)   r*   r  r  r$   r!   r   r  r  y  s2              r!   r  r   )r   r   r  r  assert_called_oncer   r  r   s      r   test_mock_safe_with_specz!MockTest.test_mock_safe_with_specx  s    	 	 	 	 	& 	 	 	 cNNN			'')))	'')))))r!   c                    t                      }|j                                         |                                 |                     t                    5  |j                                         d d d            d S # 1 swxY w Y   d S r#   )r   helloassert_not_calledrl   r   r   s     r   test_assert_not_calledzMockTest.test_assert_not_called  s    FF	!!###				~.. 	( 	(G%%'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   A==BBc                     t                      } |dd           |                     t          t          j        d          |j                   d S )Nre   r   zCalls: [call(1, 2)])r   r   r   r  r  r  r   s     r   test_assert_not_called_messagez'MockTest.test_assert_not_called_message  sR    FF	!Q~I+,,	! 	! 	! 	! 	!r!   c                 l   t                      }|                     t                    5  |j                                         d d d            n# 1 swxY w Y   |                                 |j                                         |                                 |j                                         d S r#   )r   rl   r   r  r   r   s     r   test_assert_calledzMockTest.test_assert_called  s    FF~.. 	$ 	$G!!###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$										s   AAAc                    t                      }|                     t                    5  |j                                         d d d            n# 1 swxY w Y   |                                 |j                                         |                                 |                     t                    5  |j                                         d d d            d S # 1 swxY w Y   d S r#   )r   rl   r   r  r  r   s     r   test_assert_called_oncez MockTest.test_assert_called_once  sB   FF~.. 	) 	)G&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)					""$$$				~.. 	) 	)G&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s#   AAA5CC #C c                     t                      } |dd            |d           |                     t          t          j        d          |j                   d S )Nre   r   r   zCalls: [call(1, 2), call(3)])r   r   r   r  r  r  r   s     r   test_assert_called_once_messagez(MockTest.test_assert_called_once_message  s_    FF	!Q	!~I455 	" 	" 	" 	" 	"r!   c                     t                      }|                     t                    5 }|                                 d d d            n# 1 swxY w Y   |                     dt          |j                             d S )NzCalls:)r   rl   r   r  rW   r  r   )r   r   r   s      r   *test_assert_called_once_message_not_calledz3MockTest.test_assert_called_once_message_not_called  s    FF~.. 	#!  """	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#3q{#3#344444s   A

AAc                     t                      }|                    dd           d}|                     t          |j        j                  |           d S )Nr  hero)rq   daddyz call(name='hello', daddy='hero'))r   r  rP   rt   rT   )r   r   texts      r   test_ordered_call_signaturez$MockTest.test_ordered_call_signature  sO    FF	WF+++1ag/00$77777r!   c                 J   t          j                    }t          j        dd          }t                      }|                                 |                    dd           |                     |j        d         |           |                     |j        d         |           d S )N   r  r   re   )r   r  r  r   rP   rV   )r   r2   r=  r   s       r   test_override_tuple_methodsz$MockTest.test_override_tuple_methods  s    JLLJs7##FF					G*A...*A.....r!   c                     t          dddg          }|                    dd           |                     |j        t                      |                     |j        d            d S )Nrv  r   r   rS   rk   T)r   r   r   rS   rP   rk   r   s     r   test_reset_return_sideeffectz%MockTest.test_reset_return_sideeffect  sd    bqe444	$D999and333-----r!   c                     t          dddg          }|                    d           |                     |j        t                      |                     |j        d            d S )Nrv  r   r   r  Tr`   )r   r   r   rS   rC  rk   r   s     r   test_reset_returnzMockTest.test_reset_return  sb    bqe444	$'''and333AM400000r!   c                     t          dddg          }|                    d           |                     |j        d           |                     |j        d            d S )Nrv  r   r   r  Tr   )r   r   rP   rS   rk   r   s     r   test_reset_sideeffectzMockTest.test_reset_sideeffect  sb    bq!f555	&&&,,,-----r!   c                    t          t          d                    }|                     |                                d           |                    d           |                     |                                d           d S )Nre   r`   rd   T)r   rP   rd   r   rC  r   s     r   test_reset_return_with_childrenz(MockTest.test_reset_return_with_children  ss    	q111222"""	$'''ACCEE1%%%%%r!   c                     t          t          ddg                    }|                     |j        j        d            |                    d           |                     |j        j        d            d S )Nr   r   r   r  T)r   rC  rd   rk   r   rP   r   s     r   +test_reset_return_with_children_side_effectz4MockTest.test_reset_return_with_children_side_effect  so    	q!f555666ACOT222	&&&$/////r!   c                 4  	  G d dt                     } G d dt                     } G d dt                     	t          t          t          t          g}t          |          D ]6}|                    |f	fd	           |                    |f	fd	           7|D ]y}t                      t          d	
          fD ]V} |            }|j        |j	        |j
        f ||fdgdgffD ])\  }}t                      t          d	
          fD ]} |j        |fi | |j         |                     t          t          |d           |                     t          t          |d           d|v r#|                     t          t          |dd             |j        |fi | |                     t          t          |d           |j	         |                     t          t          |d           d|v r#|                     t          t          |dd            +X{d S )Nc                       e Zd ZdZdS ))MockTest.test_mock_add_spec.<locals>._Onere   Nr(   r)   r*   r  r$   r!   r   _Oner            CCCr!   r  c                       e Zd ZdZdS ))MockTest.test_mock_add_spec.<locals>._Twor   N)r(   r)   r*   r  r$   r!   r   _Twor    r  r!   r  c                       e Zd ZdxZxZZdS )-MockTest.test_mock_add_spec.<locals>.AnythingfourN)r(   r)   r*   r  r  rp  r$   r!   r   Anythingr    s         &&C&#r!   r  c                      |           S )Nr   r$   Kr  s    r   r   z-MockTest.test_mock_add_spec.<locals>.<lambda>  s    11(+;+;+; r!   c                      |           S )Nr   r$   r  s    r   r   z-MockTest.test_mock_add_spec.<locals>.<lambda>  s    11h+?+?+? r!   Tr   r  r  rp  r   )r   r   r   r   r   r  r  r  r  r  rp  mock_add_specrl   r  r   setattr)
r   r  r  klassesrB  r   r   OneTwor  s
            @r   test_mock_add_speczMockTest.test_mock_add_spec  s   	 	 	 	 	6 	 	 		 	 	 	 	6 	 	 		' 	' 	' 	' 	'v 	' 	' 	' )_.B
 ']] 	A 	AENNE;;;;;<<<NNE?????@@@@ !	 !	E&&$"5"5"55    uww$(DJ.."&%/A B  HC"&&&$*=*=*="=  **399&999))*GT5   ))*GT7   &// -- .w   +*399&999))*GT5   ))*GT7   &// -- .w  1 !	 !	r!   c                    t           t          fD ]} |            t                      j        t                     |                     t          t                      |            d          dj        _         j        t                     | 	                    t                    d           |                     t          fd           d S )Nro   r  c                       d         S r  r$   r   s   r   r   z;MockTest.test_mock_add_spec_magic_methods.<locals>.<lambda>+  s    e r!   )
r   r   r  r  r   rl   rj   r  rS   rP   r   rB  r   s     @r    test_mock_add_spec_magic_methodsz)MockTest.test_mock_add_spec_magic_methods  s     44 	> 	>E577DIIIDv&&&id333577DKK'(DL%Ds###SYY***i)<)<)<)<====	> 	>r!   c                    t           t          t          t          t          fD ]W} |            }t                      |_         |j                     |                     |j        t          j                    g           |                     |j	        t          j                    g            |            }t          d          |_
         |j
                     |                     |j        g            |                     |j	        g             |            } t                                  |_         |j                     |                     |j        g            |                     |j	        g            Yd S )Nrq   rp   )r   r   r   r   r   ro   rP   rV   r   r   rr   rw   r  s      r   test_adding_child_mockzMockTest.test_adding_child_mock.  sH   %tY8L! 	2 	2E577DvvDHDHJJJT.===T_txzzl;;;577D(((DHDHJJJT.333T_b111 577D"y{{}}DHDHJJJT.333T_b1111+	2 	2r!   c                     t           t          fD ]n} |            }t                      |_          |                         |                     |j        t                       t                                  g           od S r#   )r   r   rS   rP   r   r   r  s      r   test_adding_return_value_mockz&MockTest.test_adding_return_value_mockG  sy    9_ 	B 	BE577D )DDDFFHHHT_tvvvtvvxx.@AAAA	B 	Br!   c                 z    G d dt                     }t                      }t          j         |d          }t          j         |d          }|                                }|                     |j                   |                                }|                     |j                   |                    |d           |                    |d           |                                 |                                 | 	                    |j
        t          j                    t          j                    g           d S )Nc                       e Zd ZdZdZdS )'MockTest.test_manager_mock.<locals>.Foor  r  N)r(   r)   r*   r  r  r$   r!   r   r  r  Q  s        CCCCr!   r  r  r  )r   r   r	   r   r  r  attach_mockr  r  rP   r   r   )r   r  managerp1p2mock_onemock_twos          r   test_manager_mockzMockTest.test_manager_mockP  s   	 	 	 	 	& 	 	 	 &&\#u%%\#u%%88::   88::   He,,,He,,,						+dhjj$(**-EFFFFFr!   c                    t           t          fD ]} |            }t          d          |_        t          d          |_        t	          |           t          |           |                     |j        t          j                    t          j                    g           |                     |j	        g            d S )Nr   r`   g      @)
r   r   r  	__float__r  floatrP   r   r   rV   )r   rB  r   s      r   test_magic_methods_mock_callsz&MockTest.test_magic_methods_mock_callsf  s    9_ 	1 	1EA!,,,AI#555AKFFF!HHHQ\DLNNDN<L<L+MNNNQ^R0000	1 	1r!   c                     t          j        d          } |d          }|                                } |d          }|                                }|                     ||           d S )Nr}  	read_dataa-namezanother-name)r   r   readrP   )r   mocked_openf1f1_dataf2f2_datas         r    test_mock_open_reuse_issue_21750z)MockTest.test_mock_open_reuse_issue_21750q  sh    nv666[""''))[((''))'*****r!   c                    t          j        d          } |d          }d |D             }|                     |d         d           |                     |d         d           |                     t          |          g            d S )	NzRemarkable
Norwegian Bluer  r  c                     g | ]}|S r$   r$   r  lines     r   r  z=MockTest.test_mock_open_dunder_iter_issue.<locals>.<listcomp>~      %%%$%%%r!   r   zRemarkable
re   zNorwegian Blue)r   r   rP   r  )r   r  r  liness       r    test_mock_open_dunder_iter_issuez)MockTest.test_mock_open_dunder_iter_issuey  s     n/KLLL[""%%"%%%q>222q#3444b2&&&&&r!   c                    t          j        d          } |d          }t          |          }|                                }d |D             }|                     |d           |                     |d           |                     |d         d           |                     t          |          g            |                     t                    5  t          |           d d d            d S # 1 swxY w Y   d S )	Nz1st line
2nd line
3rd liner  r  c                     g | ]}|S r$   r$   r  s     r   r  z6MockTest.test_mock_open_using_next.<locals>.<listcomp>  r  r!   z	1st line
z	2nd line
r   z3rd line)r   r   r'   r+   rP   r  rl   rN  )r   r  r  line1line2r  s         r   test_mock_open_using_nextz"MockTest.test_mock_open_using_next  s4   n/MNNN[""R%%"%%%------q:...b2&&&}-- 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   C22C69C6c                     t          j        d          }d|j        j        _        |                     dt           |                                 d S )Nfoo
barnr  abc)r   r   rS   readlinerP   r'   )r   mopens     r   3test_mock_open_next_with_readline_with_return_valuez<MockTest.test_mock_open_next_with_readline_with_return_value  sJ    55538#0UUWW.....r!   c                 0   t          j        t          j        d                    }t          j        d|          5  |j        }|j        }t          d          |_        d }|                     t          |           d d d            d S # 1 swxY w Y   d S )NJLVrp   ztempfile.NamedTemporaryFilezTest 2 Errorc                  R    t          j                                        d           d S )Nasd)tempfileNamedTemporaryFilewriter$   r!   r   attemptz.MockTest.test_mock_open_write.<locals>.attempt  s%    +--33E:::::r!   )	r   r   r   r	   rS   r  OSErrorrk   rl   )r   mock_namedtempmock_filehandle
mock_writer  s        r   test_mock_open_writezMockTest.test_mock_open_write  s    E(B(B(BCCZ5~FF 	0 	0,9O(.J%,^%<%<J"; ; ;gw///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   ABBBc                    t          j        d          }d |j        j        _         |                                            } |                                            }|                     d|           |                     d|           d S )Nr  r  c                      dS )Nr  r$   )r   s    r   r   z8MockTest.test_mock_open_alter_readline.<locals>.<lambda>  s    u r!   r  )r   r   rS   r  rk   rP   )r   r  firstseconds       r   test_mock_open_alter_readlinez&MockTest.test_mock_open_alter_readline  s    5552D2D#/  ""!!##&&&'''''r!   c                 N   t          j        d          } |d          }|                                 |                     d|                                           |                     d|                                           |                     d|                                           |                     d|                                           |                     g |                                           |                     g |                                           d S )Nro   r  rr   r  )r   r   r  rP   r  	readlines)r   _openr<  s      r   test_mock_open_after_eofz!MockTest.test_mock_open_after_eof  s    ///E%LL	QVVXX&&&QVVXX&&&QZZ\\***QZZ\\***Q[[]]+++Q[[]]+++++r!   c                 D   t           t          fD ]} |            }t          |          }||_        |                      |            |           |                     t          |          |           |                                 |                      |            |           |                     t          |          |            |            }|j        |_        | 	                    dt          |j                             | 	                    dt          |j                             |                                 | 	                    dt          |j                             | 	                    dt          |j                              |            }t          |          } |            |_        ||j        _        |                     t          |          |           |                     t          |                                          |           d S )Nzname='mock.a')
r   r   rt   rS   r  rP   r   r0   r1   rs   )r   rB  r   original_reprs       r   test_mock_parentszMockTest.test_mock_parents  s   9_ 	9 	9EA GGMANMM!!##q!!!T!WWm444LLNNNMM!!##q!!!T!WWm444A#ACMM/499555MM/499555LLNNNMM/499555MM/499555A GGM!##AC ACT!WWm444T!##%%[[-88883	9 	9r!   c                 :   t           t          t          t          f}|D ]}|D ]} |            } |d          }|                    |d           |                     |j        |           |                     dt          |                     |j        	                    d           | 
                    |j        t          j        	                    d          g           | 
                    |j        t          j        	                    d          g           d S )Nro   rp   rr   zname='mock.bar're   )r   r   r   r   r  r  rr   rs   rt   rw   rP   r   r   rV   r   classesrB  Klass2r   m2s         r   test_attach_mockzMockTest.test_attach_mock  s	   	#7H 	D 	DE! D DEGGV'''b%(((aeR(((/b:::		!  Q/@AAA  $(,,q//1BCCCCD	D 	Dr!   c                    t           t          t          t          f}t           t          fD ]}|D ]} |            } |d          }|                    |d           |                      |            |           |                     dt          |                     |                                 | 	                    |j
        t                                                                                                 όd S )Nro   rp   rS   zname='mock()')r   r   r   r   r  r  rs   rt   ro   rP   r   r   r  r/  s         r   test_attach_mock_return_valuez&MockTest.test_attach_mock_return_value  s    	#7H9_ 	I 	IE! 
I 
IEGGV'''b.111aacc2&&&otBxx888  tvvzz||/E/E/G/GHHHH
I	I 	Ir!   c                    t                      }t          j        t           dd          5 }|                     |j                                        d           |                    |d           |                    d           t          d            |d           t          j        d          t          j        d          t          j        d          g}t          d          t          d          t          d          g}|                     |j
        |           |                     |j        j
        |           |                     t          j
        |           |                     |j
        |           |                     d	t          |j        j                             |                     |j                                        d	           d d d            d S # 1 swxY w Y   d S )
N
.somethingTr   rE   r   re   r   r   
mock.child)r   r   r	   r(   rP   _extract_mock_namer  r   rE   r   r   rs   rt   )r   r   	mock_funcparent_callschild_callss        r   test_attach_mock_patch_autospecz(MockTest.test_attach_mock_patch_autospec  s   Z8///$??? 	P9Y^>>@@+NNNy'222LLOOOaLLLIaLLL JqMM4:a==$*Q--HL77DGGT!WW5KV.===V\4kBBBY1;???Y1;???MM,V\->(?(?@@@Y^>>@@,OOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps   F*G$$G(+G(c           
         t          j        t           dd          5 }t                      }|                    |d           t                      }|                    dddd	           |                    t          j	        t           j
        dddd	          g           |j                            t          t           j
        dddd	          g           |                    t          t           j
        dddd	          g           d d d            n# 1 swxY w Y   t          j        t           d
d          5 }t                      }|                    |d           t          d           |                    t          j        d          g           t                              t          d          g           |                    t          d          g           d d d            n# 1 swxY w Y   t          j        t           dd          5 }t                      }|                    |d           t                      }|                    dddd	           |                    t          j                    t          j                                        dddd	          g           |j                            t          dddd	          g           |                    t                      t                                          dddd	          g           d d d            d S # 1 swxY w Y   d S )N.Something.methTr   attach_methre   r   r   r  rj  r7  attach_func
.Something
attach_obj)r   r	   r(   r   r  r-   r4   rP  r   r@  r   rE   rA  rC  )r   mockedr  r  s       r   )test_attach_mock_patch_autospec_signaturez2MockTest.test_attach_mock_patch_autospec_signature  s   Z8444tDDD 	DffG666++CHHQ1H"""$$d&6txAqA&N&N&N%OPPPH%%tDHaA'C'C'C&DEEE##T$(Aq!q%A%A%A$BCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D Z8///$??? 	/6ffG666aLLL$$d&6q&9&9%:;;;&&Qy111##T!WWI...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ Z8///$??? 	I6ffG555++CHHQ1H"""$$do&7&7&*o&7&7&<&<Q1&<&J&J&L M M MH%%tAq!q'9'9'9&:;;;##TVVTVV[[AqA[-F-F$GHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Is8   C,DDD B'G33G7:G7DL77L;>L;c                    t                      t                      t                      t                      fD ]}|                     t          |d                     |`|                     t          |d                     |`|                     t          |d                     | 	                    t          t          |d           d S )Nr   rd   )r   r   r   r   rR   hasattrr   rN   rd   rl   r  r   r]   s     r   test_attribute_deletionz MockTest.test_attribute_deletion#  s    VVY[[*>*@*@$&&( 		B 		BDOOGD#..///WT3//000WT3//000ngtSAAAA		B 		Br!   c                     t                      t                      t                      t                      fD ]}d|_        |                     t          |d                     |                     |j        d           |`|                     t          |d                     d|_        |                     t          |d                     |                     |j        d           |`|                     t          |d                     d S )Nr   ro   r  )	r   r   r   r   ro   rR   rG  rP   rN   r]   s     r   7test_mock_does_not_raise_on_repeated_attribute_deletionz@MockTest.test_mock_does_not_raise_on_repeated_attribute_deletion0  s    VVY[[*>*@*@$&&( 	3 	3DDHOOGD%00111TXq)))WT511222DHOOGD%00111TXq)))WT5112222	3 	3r!   c                     t                      t                      t                      t                      fD ]8}|`|                     t                    5  |`d d d            n# 1 swxY w Y   9d S r#   )r   r   r   r   ro   rl   r  r]   s     r   4test_mock_raises_when_deleting_nonexistent_attributez=MockTest.test_mock_raises_when_deleting_nonexistent_attributeC  s    VVY[[*>*@*@$&&( 	 	D"">22  H              	 	s   A$$A(	+A(	c                     t                      }d|_        |` |j                     |                     t	          |d                     d S )NTr   )r   r   r   rN   rG  r]   s     r   /test_reset_mock_does_not_raise_on_attr_deletionz8MockTest.test_reset_mock_does_not_raise_on_attr_deletionK  sM     vv
Jw//00000r!   c                     t                      t                      fD ]K}|                     |t                     t          |_        |                     |t                     |j         Ld S r#   )r   r   r)  r  r  r   ro   r]   s     r   test_class_assignablezMockTest.test_class_assignableU  sd    FFIKK' 	 	D$$T3/// DN!!$,,,HHH	 	r!   c                 $   |                      t          j                   |                     t	          t          j                  t
                     |                     t	          t          j                    j                  t
                     d S r#   )assertIsNotNoner   rq   rP   r  r   r   s    r   test_name_attribute_of_callz$MockTest.test_name_attribute_of_call]  se     	TY'''di%000dikk.//77777r!   c                 $   |                      t          j                   |                     t	          t          j                  t
                     |                     t	          t          j                    j                  t
                     d S r#   )rR  r   r   rP   r  r   r   s    r   test_parent_attribute_of_callz&MockTest.test_parent_attribute_of_calld  sg     	T[)))dk**E222dkmm233U;;;;;r!   c                 l   d }t                      }t          |          |_         |j        dd           |                     t          |j        d           |                     |j        t          j        dd          g           |                     dt          |j        j
                             d S )Nc                     d S r#   r$   r   s     r   ro   zBMockTest.test_parent_propagation_with_create_autospec.<locals>.foon  r5   r!   re   r   r8  )r   r   r   rl   rj   rP   r   r   rs   rt   r   )r   ro   r   s      r   ,test_parent_propagation_with_create_autospecz5MockTest.test_parent_propagation_with_create_autospecl  s    vv$S))

1a)TZ3334:a+;+;*<===lD$9$9:::::r!   c                    d }t                      }|                    t          |d          d           |                    dd           |                     t
          |j        d           |                     |j        j        t          j        dd          g           | 	                    dt          |j        j                             d S )Nc                     d S r#   r$   r   s     r   ro   zGMockTest.test_parent_propagation_with_autospec_attach_mock.<locals>.fooz  r5   r!   rr   rp   r   re   r   r8  )r   r  r   r   rl   rj   rP   r   r   rs   rt   r   )r   ro   r   s      r   1test_parent_propagation_with_autospec_attach_mockz:MockTest.test_parent_propagation_with_autospec_attach_mockx  s    ?3U;;;WEEEQ)V\155504:a3C3C2DEEElD):$;$;<<<<<r!   c                   	 t           j        j        }|                     d |           t          j        d          5  t
          j        d= 	fd	|                     t
          j        t          j                               t          j        	           ddl	m
}m}m}m} ||||t          g}|D ].} |t                    }|                     |t                     /	 d d d            d S # 1 swxY w Y   d S )Nc                 8    t          t          j        d|           S )Nr	   )r  r  r   )r	   s    r   r   z9MockTest.test_isinstance_under_settrace.<locals>.<lambda>  s    ghmWe&L&L r!   zsys.moduleszunittest.mockc                     S r#   r$   )frameeventr!  traces      r   ra  z6MockTest.test_isinstance_under_settrace.<locals>.trace  s    r!   r   )r   r   r   r   r   )r  r   r	   r  r  r  modulessettracegettraceunittest.mockr   r   r   r   r   r-   r   )
r   	old_patchr   r   r   r   rx   r   r  ra  s
            @r   test_isinstance_under_settracez'MockTest.test_isinstance_under_settrace  s    M'	
 	LL!	# 	# 	# Z&& 	6 	6O,     OOCL#,..999L           
 i2F	E  6 6d	***%%c955556%	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   B!C--C14C1c                     G d d          } |            }t           j        j                            |dt                    5  d d d            n# 1 swxY w Y   |                     |j        j        j        d           d S )Nc                       e Zd Zd ZdS )FMockTest.test_bool_not_called_when_passing_spec_arg.<locals>.Somethingc                 L    t           j                                        | _        d S r#   )r  r   r   obj_with_bool_funcr   s    r   r    zOMockTest.test_bool_not_called_when_passing_spec_arg.<locals>.Something.__init__  s    *2-*A*A*C*C'''r!   N)r(   r)   r*   r    r$   r!   r   r-   rj    s(        D D D D Dr!   r-   rl  r   r   )r  r   r	   r   rP   rl  __bool__rQ   )r   r-   r  s      r   *test_bool_not_called_when_passing_spec_argz3MockTest.test_bool_not_called_when_passing_spec_arg  s    	D 	D 	D 	D 	D 	D 	D 	D ikk] ''-A'OOUUUUUUUUUUUUUUUUU/8CQGGGGGs   AAAc                 
    G d d          }|                      t                    5  t          t           dd          5  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                      t                    5  t          j        |dd          5  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                      t                    5  t          t           dd          5  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                      t                    5  t          j        |dd          5  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                      t                    5  t          t           dd          5  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                      t                    5  t          j        |dd          5  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                      t                    5  t          |d          }d d d            n# 1 swxY w Y   |                      t                    5  t          j        t           d	t          d
          5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                      t                    5  t          j        t           d	t          d          5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                      t                    5  t          j        t           d	t          d          5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t           ddd          5  	 d d d            n# 1 swxY w Y   t          j        |ddd          5  d d d            n# 1 swxY w Y   t          t           ddd          5  	 d d d            n# 1 swxY w Y   t          j        |ddd          5  d d d            n# 1 swxY w Y   t          t           ddd          5  	 d d d            n# 1 swxY w Y   t          j        |ddd          5  d d d            n# 1 swxY w Y   t          |dd          }t          j        t           dddd          5  	 d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdZdS )/MockTest.test_misspelled_arguments.<locals>.Foor  Nr  r$   r!   r   r  rq    s        CCCr!   r  r?  T)r@   r  )rA   )rB   rB  )r4   r@   )r4   rA   )r4   rB   )r  r@   )r  rA   )r  rB   )rB   r  z.Typos)r@   rB   rA   )	rl   r[  r	   r(   r   r   r  multipler   r  s      r   test_misspelled_argumentsz"MockTest.test_misspelled_arguments  sY   	 	 	 	 	 	 	 	 |,, 	K 	K(333tDDDJJJJJJJJJJJJJJJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K|,, 	@ 	@c5D999?????????????????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@|,, 	K 	K(333tDDDJJJJJJJJJJJJJJJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K|,, 	@ 	@c5D999?????????????????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@|,, 	J 	J(333dCCCIIIIIIIIIIIIIIIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J|,, 	? 	?c54888>>>>>>>>>>>>>>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?|,, 	4 	4d333A	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4
 ~.. 	M 	M'''gG G G M MHLM M M M M M M M M M M M M M M	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M ~.. 	M 	M'''gG G G M MHLM M M M M M M M M M M M M M M	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M ~.. 	L 	L'''gF F F L LGKL L L L L L L L L L L L L L L	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L h///MMM 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	\#uTTBBBHHHHHHHHHHHHHHHHHh///MMM 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	\#uTTBBBHHHHHHHHHHHHHHHHHh///tLLL 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	\#uTDAAAGGGGGGGGGGGGGGGGGC$t<<<^4$$P P P 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	su  A&AA&A	A&A	A&&A*-A*C#B0$C0B4	4C7B4	8CCC,D*DD*D	D*D	D**D.1D.F'E4(F4E8	8F;E8	<FFF0G.
GG.G	G.G	G..G25G2I+H8,I8H<	<I?H<	 III4JJJ7%LK*L*K.	.L1K.	2LLL&%M0MM0M	M0 M	!M00M47M4%O:O<OO	OO	OO#&O#PPP5QQ	Q'Q55Q9<Q9R%%R),R)
SSS;TTTUUUN)r(   r)   r*   rJ   r^   ra   rg   rm   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r"  r-  r3  r;  r=  rE  rO  rV  r\  rc  rh  rn  rt  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r  r  r!  r*  r1  r8  r@  rD  rG  rI  rU  r_  rn  rr  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r!  r&  r*  r-  r3  r5  r=  rE  rH  rJ  rL  rN  rP  rS  rU  rX  r[  rg  rn  rs  r$   r!   r   rG   rG   2   sh       , , ,A A A8F F F$ $ $  = = = - - -<2 2 26E E E$= = =! ! !<&C &C &CR    #& #& #&L> > >,$ $ $8@ @ @' ' 'A A A   (3 3 3
 
 
.2 2 2# # #,= = = ? ? ?3 3 3  0  0 0 04	. 	. 	.C C C& & &8 8 8 6 6 6
6 
6 
65 5 5
8 
8 
88 8 86 6 6
8 
8 
86 6 68 8 8B9 9 9$0 0 03 3 39 9 93 3 3/ / /@ @ @' ' '(' ' '(4 4 4  0 0 0(
9 
9 
9- - -.
8 
8 
8
 
 
- - -3 3 3*' ' '5 5 5pK; K; K;\= = =6 6 69 9 9? ? ?= = =? ? ?N N NL L L3 3 3
3 3 3"     F8 8 8 / / /0% % %3 3 3*3 3 3
* * *X% % %P% % %P" " ": : :>A A A6
 
 
4A A A&  $- - -
G G G  ** * * ( ( (! ! !     	) 	) 	)" " "5 5 58 8 8/ / /. . .1 1 1. . .& & &0 0 00 0 0j> > >"2 2 22B B BG G G,	1 	1 	1+ + +' ' '  / / /
	0 	0 	0( ( (
, 
, 
,9 9 9:D D D"I I I P P P(I I I:
B 
B 
B3 3 3&  1 1 1  8 8 8< < <
; 
; 
;
= 
= 
=%6 %6 %6NH H H, , , , ,r!   rG   __main__)!r  r  r  r  test.supportr   r  unittest.test.testmock.supportr   r   re  r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r-   r?   rE   r  rG   r(   mainr$   r!   r   <module>rx     s    				 



  " " " " " "  6 6 6 6 6 6                                   
 
 
 
 
6 
 
 
% % % % % % % %          p" p" p" p" p"x  p" p" p"fE zHMOOOOO r!   