
    4hh/                        S SK r S SKJr  S SKJr  S SKJrJrJrJ	r	J
r
Jr  \	R                  r\	R                  r " S S\5      r " S S\ R$                  5      r " S	 S
\ R$                  5      r\S:X  a  \ R,                  " 5         gg)    N)catch_warnings)is_instance)	MagicMockMockpatchsentinel	mock_opencallc                       \ rS rSrSrg)SampleException    N)__name__
__module____qualname____firstlineno____static_attributes__r       M/opt/python-3.13.8/usr/lib/python3.13/test/test_unittest/testmock/testwith.pyr   r      s    $r   r   c                   \    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)WithTest   c                    [        S[        -  [        R                  5         U R	                  [
        [        R                  S5        S S S 5        U R	                  [
        [        R                  5        g ! , (       d  f       N3= fN%s.something	unpatched)r   r   r   
Something2assertEqual	something	Somethingselfs    r   test_with_statementWithTest.test_with_statement   sU    >H,h.A.ABY(;(;[I CH$6$67 CBs   &A55
Bc                 r   U R                  [        5         [        S[        -  [        R
                  5         U R                  [        [        R
                  S5        [        5       e! , (       d  f       O= f S S S 5        O! , (       d  f       O= fU R                  [        [        R                  5        g r   )	assertRaisesr   r   r   r   r   r   r   r    r!   s    r   test_with_statement_exception&WithTest.test_with_statement_exception   sw    /~0(2E2EF  H,?,?M%'' GFF 0// 	H$6$67s   "B0A((
A6	2B
Bc                    [        S[        -  5       nU R                  [        US5        U R	                  [        U[        5      S5        S S S 5        U R                  [        [        R                  5        g ! , (       d  f       N3= f)Nr   r   zpatching wrong type)	r   r   r   r   
assertTruer   r   r   r    r"   mock_somethings     r   test_with_statement_asWithTest.test_with_statement_as    sa    >H,-YDOOK	B13 . 	H$6$67	 .-s   8A88
Bc                     " S S[         5      nUR                  n[        R                   " US5         U R                  UR                  US5        S S S 5        U R	                  UR                  U5        g ! , (       d  f       N+= f)Nc                       \ rS rSrSrSrg)6WithTest.test_patch_object_with_statement.<locals>.Foo)   foor   N)r   r   r   r   r   r   r   r   r   Foor1   )   s    Ir   r4   r   r   )objectr   r   assertNotEqualr   )r"   r4   originals      r    test_patch_object_with_statement)WithTest.test_patch_object_with_statement(   s]    	& 	==\\#{+xE ,1 ,+s   A66
Bc                    [        SS9   [        S[        -  5       n[        S[        -  5       nU R                  [        US5        U R                  [
        US5        S S S 5        S S S 5        S S S 5        U R                  [        [        R                  5        U R                  [
        [        R                  5        g ! , (       d  f       Ng= f! , (       d  f       Np= f! , (       d  f       Ny= f)NT)recordr   %s.something_elser   )	r   r   r   r   r   something_elser   r    SomethingElser"   r,   mock_something_elses      r   test_with_statement_nested#WithTest.test_with_statement_nested1   s    4(~01^UK^aiKiEj  oB  NKH  1D!,. Fk1 ) 	H$6$67)?)?@ FkEj11 )(s9   C"C/C C'C" 
C
C
C	C""
C0c                 2   [        S[        -  [        R                  5       nU R	                  [
        US5        U R	                  U[        R                  S5        S S S 5        U R	                  [
        [        R                  5        g ! , (       d  f       N3= f)Nr   r   zwrong patchr   r   r   Patchedr   r   r    r+   s     r   test_with_statement_specified&WithTest.test_with_statement_specified<   sk    >H,h.>.>?>YD^X-=-=}M @ 	H$6$67 @?s   9B
Bc                 f   [        5       n[        5       Ul        [        5       Ul        SUR                  l        U nU R	                  X!R                  R                  5        S S S 5        UR                  R                  5         UR                  R                  S S S 5        g ! , (       d  f       NF= f)NF)r   	__enter____exit__return_valuer   assert_called_with)r"   mockms      r   testContextManagerMocking"WithTest.testContextManagerMockingC   sw    v%*"QQ ; ;< ))+((tT: Ts   &B""
B0c                 6   [        5       nU R                  [        5         U   SS-     S S S 5        S S S 5        UR                  R	                  5         U R                  UR                  R                  5        g ! , (       d  f       NV= f! , (       d  f       N_= f)Nr3      )r   r&   	TypeErrorrI   rL   r*   rJ   called)r"   rM   s     r   $test_context_manager_with_magic_mock-WithTest.test_context_manager_with_magic_mockO   sd    {y)	  * 	))+,,-  *)s!   B
A9B
9
B	B


Bc                    [        S[        -  [        R                  5       nU R	                  [
        US5        [        S[        -  5       nU R	                  [
        US5        S S S 5        U R	                  [
        US5        S S S 5        U R	                  [
        [        R                  S5        g ! , (       d  f       NS= f! , (       d  f       NE= f)Nr   r   zrestored with wrong instanceznot restoredrD   )r"   r,   
mock_agains      r   "test_with_statement_same_attribute+WithTest.test_with_statement_same_attributeY   s    >H,h.>.>?>YD~01Z  JD 2 Y;= @ 	H$6$6G 21 @?s#   *CB1$C1
B?	;C
Cc                    [        S[        -  5       nU R                  [        US5        [        S[        -  5       nU R                  [        US5        S S S 5        S S S 5        U R                  [        [
        R                  5        U R                  [        [
        R                  5        g ! , (       d  f       N_= f! , (       d  f       Nh= f)Nr   r   r<   )r   r   r   r   r=   r   r    r>   r?   s      r   test_with_statement_imbricated'WithTest.test_with_statement_imbricatedf   s    >H,-YD*X56:M  1D!,. 7 . 	H$6$67)?)?@ 76 .-s"   *B?B.B?.
B<	8B??
Cc                    0 n[         R                  " USS05         U R                  USS05        S S S 5        U R                  U0 5        U R                  [        5         [         R                  " USS05         U R                  USS05        [	        S5      e! , (       d  f       No= f! , (       d  f       O= f S S S 5        O! , (       d  f       O= fU R                  U0 5        g )NabKonrad)r   dictr   r&   	NameError)r"   r3   s     r   test_dict_context_manager"WithTest.test_dict_context_managerr   s    ZZc3Z(S3*- )b!y)C#s,  sCj1)) )(
 -,, *))
 	b!s)   B C: B+
B(+
B9	5C
Cc                     " S S5      nU" 5       n[         R                  " US5       n[         R                  " US5       nUR                  5         S S S 5        U R                  WR                  S5        U R                  UR                  S5        UR                  5         S S S 5        U R                  WR                  S5        g ! , (       d  f       N{= f! , (       d  f       N<= f)Nc                       \ rS rSrS rSrg)5WithTest.test_double_patch_instance_method.<locals>.C   c                     g )Nr   r!   s    r   f7WithTest.test_double_patch_instance_method.<locals>.C.f   s    r   r   N)r   r   r   r   rk   r   r   r   r   Crh      s    r   rm   rk      r   )r   r5   rk   r   
call_count)r"   rm   cpatch1patch2s        r   !test_double_patch_instance_method*WithTest.test_double_patch_instance_method   s    	 	 C\\!S!Va% &V..2V..2CCE " 	**A. &% "!s$   CCAC
C	C
C&r   N)r   r   r   r   r#   r'   r-   r8   rA   rF   rO   rU   rY   r\   rd   rs   r   r   r   r   r   r      sA    8882A8	;.
H	A"/r   r   c                   n    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rSrg)TestMockOpen   c                     [        5       n[        S[        -  USS9 nU R                  X!5        [	        S5        S S S 5        UR                  S5        g ! , (       d  f       N = fN%s.openTcreater3   )r	   r   r   assertIsopenassert_called_once_withr"   rM   patcheds      r   test_mock_openTestMockOpen.test_mock_open   sM    {9x'd;wMM'(K < 	$$U+	 <;s   A
A"c                 $   [        5       nUR                  n[        S[        -  USS9   [	        S5       nUR                  5         S S S 5        S S S 5        [        S5      [        5       R                  5       [        5       R                  5       [        5       R                  S S S 5      [        5       R                  5       /nU R                  UR                  U5        U R                  WU5        g ! , (       d  f       N= f! , (       d  f       N= fry   )r	   rK   r   r   r~   readr
   rI   rJ   closer   
mock_callsr}   )r"   rM   handlerk   expected_callss        r   test_mock_open_context_manager+TestMockOpen.test_mock_open_context_manager   s    {""9x'd;e  < u+tv'7'7'946;;=&//$d;TV\\^M.9a   <;s"   DC0D0
C>	:D
Dc                 *   [        5       n[        S[        -  USS9   [        S5       nUR	                  5         S S S 5        [        S5       nUR	                  5         S S S 5        S S S 5        [        S5      [        5       R                  5       [        5       R	                  5       [        5       R                  S S S 5      [        5       R                  5       [        S5      [        5       R                  5       [        5       R	                  5       [        5       R                  S S S 5      [        5       R                  5       /
nU R                  UR                  U5        g ! , (       d  f       GN,= f! , (       d  f       GN= f! , (       d  f       GN$= f)Nrz   Tr{   r3   bar)r	   r   r   r~   r   r
   rI   rJ   r   r   r   )r"   rM   rk   r   s       r   -test_mock_open_context_manager_multiple_times:TestMockOpen.test_mock_open_context_manager_multiple_times   s    {9x'd;e e  < K))+TV[[]FOOD$-tv||~K))+TV[[]FOOD$-tv||~	?
 	.9  <;s9   FEFE1F
E.	)F1
F 	;F
Fc                     [        5       n[        U5        [        S[        -  USS9 nU R	                  X!5        [        S5        S S S 5        UR                  S5        g ! , (       d  f       N = fry   )r   r	   r   r   r}   r~   r   r   s      r   test_explicit_mockTestMockOpen.test_explicit_mock   sT    {$9x'd;wMM'(K < 	$$U+	 <;s   A
A-c                     [        SS9n[        S[        -  USS9   [        S5      nUR	                  5       nS S S 5        U R                  WS5        g ! , (       d  f       N!= f)Nr3   	read_datarz   Tr{   r   r	   r   r   r~   r   r   r"   rM   hresults       r   test_read_dataTestMockOpen.test_read_data   sQ    5)9x'd;UAVVXF < 	'	 <;s   A
A!c                    [        SS9n[        S[        -  USS9   [        S5      nUR	                  5       nUR	                  5       nUR	                  5       nS S S 5        U R                  WS5        U R                  WS5        U R                  WS	5        U R                  WR	                  5       S
5        [        SS9n[        S[        -  USS9   [        S5      nUR	                  5       nS S S 5        U R                  WS5        U R                  UR	                  5       S
5        g ! , (       d  f       N= f! , (       d  f       NR= f)Nfoo
bar
baz
r   rz   Tr{   r   foo
bar
baz
 r3   r	   r   r   r~   readliner   )r"   rM   r   line1line2line3r   s          r   test_readline_dataTestMockOpen.test_readline_data   s    #459x'd;UAJJLEJJLEJJLE	 <
 	(((r* 5)9x'd;UAZZ\F < 	'r*! <; <;s   <D(D9(
D69
Ec                    [        SS9n[        S[        -  USS9   [        S5      nU Vs/ s H  o3PM     nnS S S 5        U R	                  WS   S5        U R	                  US	   S
5        U R	                  US   S5        U R	                  WR                  5       S5        U R                  [        5         [        U5        S S S 5        g s  snf ! , (       d  f       N= f! , (       d  f       g = f)Nr   r   rz   Tr{   r   r   r   rn   r      r   r   )	r	   r   r   r~   r   r   r&   StopIterationnext)r"   rM   r   lliness        r   test_dunder_iter_data"TestMockOpen.test_dunder_iter_data   s    #459x'd;UA !N1QEN < 	q7+q7+q7+r*}-G .- # <; .-s'   CC
C5C 
C
C 
C.c                    [        SS9n[        S[        -  USS9   [        S5      n[	        U5      n[	        U5      nU Vs/ s H  oUPM     nnS S S 5        U R                  WS5        U R                  WS5        U R                  WS	   S
5        U R                  WR                  5       S5        g s  snf ! , (       d  f       Nm= f)Nr   r   rz   Tr{   r   r   r   r   r   r   )r	   r   r   r~   r   r   r   )r"   rM   r   r   r   r   r   s          r   test_next_dataTestMockOpen.test_next_data   s     #459x'd;UAGEGE !N1QEN	 <
 	((q7+r*	 #	 <;s   &B6B1B61B66
Cc                    [        SS9n[        S[        -  USS9   [        S5      nUR	                  5       nS S S 5        U R                  W/ SQ5        [        SS9n[        S[        -  USS9   [        S5      nUR	                  5       nS S S 5        U R                  U/ S	Q5        g ! , (       d  f       Nv= f! , (       d  f       N4= f)
Nr   r   rz   Tr{   r   )r   r   r   foo
bar
baz)r   r   bazr	   r   r   r~   	readlinesr   r   s       r   test_readlines_data TestMockOpen.test_readlines_data   s    #459x'd;UA[[]F < 	!<= ?39x'd;UA[[]F < 	!:; <; <;s   B(/B9(
B69
Cc                     [        SS9n[        S[        -  USS9   [        SS5       nUR	                  5       nS S S 5        S S S 5        U R                  WS5        g ! , (       d  f       N)= f! , (       d  f       N2= f)N   r   rz   Tr{   abcrbr   )r"   rM   rk   r   s       r   test_read_bytesTestMockOpen.test_read_bytes  sb    7+9x'd;eT"a # < 	) #" <;s!   A.AA.
A+	'A..
A<c                    [        SS9n[        S[        -  USS9   [        SS5       nUR	                  5       nUR	                  5       nUR	                  5       nS S S 5        S S S 5        U R                  WS5        U R                  WS	5        U R                  WS
5        g ! , (       d  f       NM= f! , (       d  f       NV= f)N   abc
def
ghi
r   rz   Tr{   r   r      abc
   def
   ghi
r   )r"   rN   rk   r   r   r   s         r   test_readline_bytes TestMockOpen.test_readline_bytes  s     239x'48eT"a





 # 9
 	))) #" 98s"   B21B!B2!
B/	+B22
C c                    [        SS9n[        S[        -  USS9   [        SS5       nUR	                  5       nS S S 5        S S S 5        U R                  W/ SQ5        g ! , (       d  f       N+= f! , (       d  f       N4= f)	Nr   r   rz   Tr{   r   r   )r   r   r   r   )r"   rN   rk   r   s       r   test_readlines_bytes!TestMockOpen.test_readlines_bytes   sd     239x'48eT"a # 9 	!?@ #" 98s!   A0AA0
A-	)A00
A>c                 \   Sn[        US9nU R                  U" 5       R                  S5      US S 5        U R                  U" 5       R                  S5      US S 5        U" 5       nU R                  UR                  S5      US S 5        U R                  UR                  S5      USS  5        g )Nr   r   
   )r	   r   r   )r"   	some_datarM   rk   s       r   !test_mock_open_read_with_argument.TestMockOpen.test_mock_open_read_with_argument(  s     $	9-R)CR.9R)CR.9FYs^4Yrs^4r   c                    [        SS9n[        S[        -  USS9   [        S5      nUR	                  5       nUR                  5       nS S S 5        U R                  WS5        U R                  WSS	/5        [        SS9n[        S[        -  USS9   [        S5      nUR	                  5       nUR                  5       nS S S 5        U R                  US5        U R                  US
5        g ! , (       d  f       N= f! , (       d  f       ND= f)Nr   r   rz   Tr{   r   r   r   r   zbar
baz
)r	   r   r   r~   r   r   r   r   )r"   rM   r   r   rests        r   test_interleaved_reads#TestMockOpen.test_interleaved_reads5  s     #459x'd;UAJJLE;;=D < 	(12#459x'd;UAJJLE668D < 	(|, <; <;s   ,C*,C;*
C8;
D	c                    [        SS9nU" 5       nSUR                  l        SUR                  l        S/UR                  l        U R                  UR                  5       S5        U R                  UR                  5       S5        U R                  UR	                  5       S/5        U R                  UR                  5       S5        U R                  UR                  5       S5        g )Nr3   r   r   )r	   r   rK   r   r   r   )r"   rM   r   s      r   test_overriding_return_values*TestMockOpen.test_overriding_return_valuesI  s    5)#( ',$).%.*E2))+eW5 	*E2*E2r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rv   rv      sN    ,
!:,(+.+<$*	*A
5-(3r   rv   __main__)unittestwarningsr   #test.test_unittest.testmock.supportr   unittest.mockr   r   r   r   r	   r
   r    r   r>   r=   	Exceptionr   TestCaser   rv   r   mainr   r   r   <module>r      sx     # ; K K 	(( 'i &{/x   {/|I38$$ I3X zMMO r   