
    4hh                         S SK r S SK Jr   " S S5      r " S S\ R                  5      r\S:X  a  \ R                  " 5         gg)    N)mockc                        \ rS rSrS rS rSrg)SampleObject   c                     g N selfs    Q/opt/python-3.13.8/usr/lib/python3.13/test/test_unittest/testmock/testsealable.pymethod_sample1SampleObject.method_sample1       d    c                     g r   r	   r
   s    r   method_sample2SampleObject.method_sample2	   r   r   r	   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__r	   r   r   r   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S rS rS rS rS rS rSrg)TestSealable   c                 V   [         R                  " 5       nU R                  UR                  [         R                  5        U R                  UR                  5       [         R                  5        U R                  UR                  5       R	                  5       [         R                  5        g r   )r   MockassertIsInstancetesttest2r   ms     r   ,test_attributes_return_more_mocks_by_default9TestSealable.test_attributes_return_more_mocks_by_default   s`    IIKaffdii0affh		2affhnn.		:r   c                 <   [         R                  " 5       n[         R                  " U5        U R                  [        5         UR
                    S S S 5        U R                  [        5         U" 5         S S S 5        g ! , (       d  f       N4= f! , (       d  f       g = fr   r   r   sealassertRaisesAttributeErrorr   r!   s     r   .test_new_attributes_cannot_be_accessed_on_seal;TestSealable.test_new_attributes_cannot_be_accessed_on_seal   s]    IIK		!~.FF /~.C /. /...s   A<+B<
B

Bc                     [         R                  " 5       n[         R                  " U5        U R                  [        5         SUl        S S S 5        g ! , (       d  f       g = fN   r&   r!   s     r   )test_new_attributes_cannot_be_set_on_seal6TestSealable.test_new_attributes_cannot_be_set_on_seal   s9    IIK		!~.AF /..   A
A c                     [         R                  " 5       nSUR                  l        [         R                  " U5        SUR                  l        U R                  UR                  R                  S5        g )Nr.      )r   r   r   r    r'   assertEqualr!   s     r   +test_existing_attributes_can_be_set_on_seal8TestSealable.test_existing_attributes_can_be_set_on_seal%   sF    IIK		!q)r   c                     [         R                  " 5       nSUR                  l        [         R                  " U5        U R                  [        5         SUR                  l        S S S 5        g ! , (       d  f       g = fr-   )r   r   r   r    r'   r(   r)   test3r!   s     r   2test_new_attributes_cannot_be_set_on_child_of_seal?TestSealable.test_new_attributes_cannot_be_set_on_child_of_seal-   sH    IIK		!~.AFFL /..s   A--
A;c                     [         R                  " 5       nSUR                  l        [         R                  " U5        U R                  UR                  5       S5        g N   )r   r   r   return_valuer'   r4   r!   s     r   +test_existing_attributes_allowed_after_seal8TestSealable.test_existing_attributes_allowed_after_seal5   s:    IIK		!1%r   c                     [         R                  " SS9n[         R                  " U5        U R                  UR                  S5        g )Nr.   )
test_value)r   r   r'   r4   rB   r!   s     r   .test_initialized_attributes_allowed_after_seal;TestSealable.test_initialized_attributes_allowed_after_seal=   s/    II#		!q)r   c                     [         R                  " 5       n[         R                  " U5        U R                  [        5         U" 5         S S S 5        g ! , (       d  f       g = fr   )r   r   r'   r(   r)   r!   s     r   test_call_on_sealed_mock_fails+TestSealable.test_call_on_sealed_mock_failsC   s7    IIK		!~.C /..r1   c                     [         R                  " SS9n[         R                  " U5        U R                  U" 5       S5        g )Nr   )r>   )r   r   r'   r4   r!   s     r   )test_call_on_defined_sealed_mock_succeeds6TestSealable.test_call_on_defined_sealed_mock_succeedsJ   s-    II1%		!a r   c                 0   [         R                  " 5       nSUR                  R                  5       l        [         R
                  " U5        U R                  UR                  R                  5       R                  S5        U R                  [        5         UR                  R                  5       R                    S S S 5        U R                  [        5         UR                  R                    S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = f)N   )
r   r   test1r    r8   r'   r4   r(   r)   test4r!   s     r   &test_seals_recurse_on_added_attributes3TestSealable.test_seals_recurse_on_added_attributesP   s    IIK !		!..2~.GGMMO!! /~.GGMM /. /...s   %C6D6
D
Dc                    [         R                  " 5       nSUR                  R                  S   l        SUR                  R                  SS l        [         R
                  " U5        U R                  UR                  R                  S   R                  S5        U R                  UR                  R                  SS R                  S5        U R                  [        5         UR                  R                  S   R                    S S S 5        U R                  [        5         UR                  R                  SS R                    S S S 5        g ! , (       d  f       NP= f! , (       d  f       g = f)NrL   ar3   r   )
r   	MagicMockrM   r    r8   r'   r4   r(   r)   rN   r!   s     r   #test_seals_recurse_on_magic_methods0TestSealable.test_seals_recurse_on_magic_methods\   s    NN#$c #$a 		!s+1115q+1115~.GGMM#$$ /~.GGMM!A$$ /. /...s   #$E$$E"
E"
E0c                    [         R                  " SS9n[         R                  " SS9UR                  l        SUR                  R                  l        [         R
                  " U5        U R                  UR                  R                  R                  S5        UR                  R                  R                    SUR                  R                  l        g )N	root_mockname
not_sealedrL   r.   )r   r   rM   r    r8   r'   r4   rN   r!   s     r   ,test_seals_dont_recurse_on_manual_attributes9TestSealable.test_seals_dont_recurse_on_manual_attributesj   s~    II;'		|4		!,,a0	r   c                 f   [         R                  " [        5      nSUl        SUl        [         R
                  " U5        U R                  UR                  S5        U R                  UR                  S5        U R                  [        5         UR                    S S S 5        g ! , (       d  f       g = f)Nr.   r=   )
r   r   r   attr_sample1attr_sample3r'   r4   r(   r)   attr_sample2r!   s     r   )test_integration_with_spec_att_definition6TestSealable.test_integration_with_spec_att_definitionu   sr    IIl#		!++~.NN /..s   B""
B0c                 D   [         R                  " [        5      nSUR                  l        [         R
                  " U5        U R                  UR                  5       S5        U R                  [        5         UR                  5         S S S 5        g ! , (       d  f       g = fr-   )
r   r   r   r   r>   r'   r4   r(   r)   r   r!   s     r   ,test_integration_with_spec_method_definition9TestSealable.test_integration_with_spec_method_definition   sh    IIl#()%		!))+Q/~. /..s   7B
Bc                     [         R                  " [        5      nU R                  [        5         SUR
                  l        S S S 5        g ! , (       d  f       g = fr<   )r   r   r   r(   r)   method_sample3r>   r!   s     r   :test_integration_with_spec_method_definition_respects_specGTestSealable.test_integration_with_spec_method_definition_respects_spec   s8    IIl#~.,-A) /..s   A
Ac                    [         R                  " 5       n[         R                  " U5        U R                  [        5       nUR
                    S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)NSECRETE_name)	r   r   r'   r(   r)   rk   assertInstr	exceptionr   r"   cms      r   (test_sealed_exception_has_attribute_name5TestSealable.test_sealed_exception_has_attribute_name   sT    IIK		!~."NN /nc",,&78 /.s   A<<
B
c                    [         R                  " SS9nUR                  R                  R                  R
                    [         R                  " U5        U R                  [        5       nUR                  R                  R                  R
                  R                    S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)N	mock_namerX   z&mock_name.test1.test2.test3.test4.boom)r   r   rM   r    r8   rN   r'   r(   r)   boomrl   rm   rn   ro   s      r   "test_attribute_chain_is_maintained/TestSealable.test_attribute_chain_is_maintained   s    II;'	!!		!~."GGMM%%** />BLL@QR /.s   *5C
Cc                    [         R                  " 5       nUR                  5       R                  R	                  5       R
                    [         R                  " U5        U R                  [        5       nUR                  5       R                  R	                  5       R                  5         S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nz mock.test1().test2.test3().test4)r   r   rM   r    r8   rN   r'   r(   r)   rl   rm   rn   ro   s      r   test_call_chain_is_maintained*TestSealable.test_call_chain_is_maintained   s    IIK		%%		!~."GGIOO!!#))+ /8#bll:KL /.s   37C
C&c                 
    " S S5      nS GH|  nU R                  US9   [        R                  " XS9nSUR                  l        SUR
                  R                  l        [        R                  " U5        U R                  UR                  [        R                  5        U R                  UR                  [        R                  5        U R                  UR                  [        R                  5        U R                  UR
                  [        R                  5        U R                  UR
                  R                  [        R                  5        U R                  UR
                  R                  [        R                  5        U R                  UR                  5       [        R                  5        U R                  UR                  5       S5        SUR                  l        U R                  UR                  5       S5        U R                  UR
                  R                  5       S5        SUR
                  R                  l        U R                  UR
                  R                  5       S5        U R                  [         5         UR                  5         S S S 5        U R                  ["        5         S	Ul        S S S 5        U R                  ["        5         UR                  5       R&                    S S S 5        S
UR                  l        U R                  UR                  5       S
5        U R                  ["        5         UR(                    S S S 5        U R                  ["        5         S	Ul        S S S 5        U R                  ["        5         UR+                  5         S S S 5        U R                  [         5         UR
                  R                  5         S S S 5        U R                  ["        5         UR
                  R(                    S S S 5        U R                  ["        5         S	UR
                  l        S S S 5        U R                  ["        5         UR
                  R+                  5         S S S 5        S S S 5        GM     g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNy= f! , (       d  f       GNf= f! , (       d  f       GNJ= f! , (       d  f       GN$= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       GMD  = f)Nc                   8    \ rS rSrSrS rS r " S S5      rSrg)	1TestSealable.test_seal_with_autospec.<locals>.Foo   r   c                     g r   r	   r
   s    r   bar16TestSealable.test_seal_with_autospec.<locals>.Foo.bar1       Dr   c                     g r   r	   r
   s    r   bar26TestSealable.test_seal_with_autospec.<locals>.Foo.bar2   r   r   c                       \ rS rSrSrS rSrg)5TestSealable.test_seal_with_autospec.<locals>.Foo.Baz   r=   c                     g r   r	   r
   s    r   ban9TestSealable.test_seal_with_autospec.<locals>.Foo.Baz.ban   s    tr   r	   N)r   r   r   r   bazr   r   r	   r   r   Bazr      s
    #r   r   r	   N)	r   r   r   r   foor   r   r   r   r	   r   r   Foor}      s    C  $ $r   r   )TF)spec_setrR   bnew_anew_br.   r   )subTestr   create_autospecr   r>   r   r   r'   r   r   NonCallableMagicMockrS   r   r   r4   r(   	TypeErrorr)   barxmissing_attrmissing_method)r   r   r   r   s       r   test_seal_with_autospec$TestSealable.test_seal_with_autospec   s@   	$ 	$ &Hx0**3B(+%+.(		#%%cggt/H/HI%%chh?%%chh?%%cggt~~>%%cggkk43L3LM%%cggkk4>>B %%chhj$..A  S1(/%  W5  4+2(  8&&y1GGI 2&&~6CG 7&&~6HHJLL 7 )/%  V4&&~6$$ 7&&~6'(C$ 7&&~6&&( 7&&y1GGKKM 2&&~6GG(( 7&&~6+,CGG( 7&&~6GG**, 7] 10 &2 216666 76666611666666] 10s   I*U
RU8R! UR38AUSU0S8US)&US;U;TU/TUT09U
RU!
R0+U3
S=U
SU
S&!U)
S83U;
T
U
TU
T-)U0
T>:U
U	r	   N)r   r   r   r   r#   r*   r/   r5   r9   r?   rC   rF   rI   rO   rT   r[   ra   rd   rh   rq   rv   ry   r   r   r	   r   r   r   r      sc    ;*&*!
%	 	.9SM;-r   r   __main__)unittestr   r   TestCaser   r   mainr	   r   r   <module>r      sB     # #]-8$$ ]-@ zMMO r   