
    4hh                         S SK r S SKJrJrJr  S SKJrJrJrJ	r	J
r
JrJr   " S S\ R                  5      r\S:X  a  \ R                   " 5         gg)    N)is_instanceX	SomeClass)Mock	MagicMockNonCallableMagicMockNonCallableMockpatchcreate_autospecCallableMixinc                   \    \ 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)TestCallable   c                     U R                  [        U[        5      5        U R                  [        U[        5      5        g N)
assertTruer   r   assertFalser   selfmocks     Q/opt/python-3.13.8/usr/lib/python3.13/test/test_unittest/testmock/testcallable.pyassertNotCallableTestCallable.assertNotCallable   s+    D*>?@T=9:    c                     [        5       [        5       4 Hc  nU R                  [        U5        U R	                  [        US5      5        U R                  UR                  R                  [        U5      5        Me     g )N__call__)
r   r	   assertRaises	TypeErrorr   hasattrassertIn	__class____name__reprr   s     r   test_non_callableTestCallable.test_non_callable   sX    (*O,==Di.WT:67MM$..114:> >r   c                     U R                  [        [        [        5      5        U R                  [        [        [
        5      5        g r   )r   
issubclassr   r   r   r	   r   s    r   test_hierarchyTestCallable.test_hierarchy   s)    
9d34
#7IJr   c                     [        5       nU R                  [        [        UR                  5      [
        5      5        [        5       nU R                  [        [        UR                  5      [        5      5        g r   )	r	   r   r'   typeoner   r   twor   )r   r-   r.   s      r   test_attributesTestCallable.test_attributes#   sH    
4=$78"$
4=)<=r   c                     " S S[         5      nU" 5       nU R                  [        [        UR                  5      U5      5         " S S[
        5      nU" 5       nU R                  [        [        UR                  5      U5      5        g )Nc                       \ rS rSrSrg)-TestCallable.test_subclasses.<locals>.MockSub,    Nr"   
__module____qualname____firstlineno____static_attributes__r5   r   r   MockSubr3   ,       r   r;   c                       \ rS rSrSrg).TestCallable.test_subclasses.<locals>.MagicSub2   r5   Nr6   r5   r   r   MagicSubr>   2   r<   r   r@   )r   r   r'   r,   r-   r   r.   )r   r;   r-   r@   r.   s        r   test_subclassesTestCallable.test_subclasses+   sb    	d 	 i
4=':;	y 	 j
4=(;<r   c                     [        S[        -  SS9nUR                  5       nU R                  UR                  5        U" 5       nUR                  5         U R                  U5        U R                  [        U5        g )N%s.XTspec	r
   r"   start
addCleanupstopassert_called_once_withr   r   r   r   patcherr   instances       r   test_patch_specTestCallable.test_patch_spec9   s_    )5}}%6$$&x()X.r   c                     [        S[        -  SS9nUR                  5       nU R                  UR                  5        U" 5       nUR                  5         U R                  U5        U R                  [        U5        g )NrD   Tspec_setrG   rL   s       r   test_patch_spec_set TestCallable.test_patch_spec_setE   s_    )D9}}%6$$&x()X.r   c                     [        S[        -  [        5       S9nUR                  5       nU R	                  UR
                  5        U R                  U5        U R                  [        U5        g )NrD   rE   	r
   r"   r   rH   rI   rJ   r   r   r   r   rM   r   s      r   test_patch_spec_instance%TestCallable.test_patch_spec_instanceQ   sN    )4}}%t$)T*r   c                     [        S[        -  [        5       S9nUR                  5       nU R	                  UR
                  5        U R                  U5        U R                  [        U5        g )NrD   rR   rW   rX   s      r   test_patch_spec_set_instance)TestCallable.test_patch_spec_set_instanceZ   sN    )AC8}}%t$)T*r   c           	      J    " S S[         5      n " S SU5      n " S S[        U5      nS H  nXU4 H  n[        S[        -  40 XE0D6 nU" 5       nUR	                  5         U R                  [        U[        5      5        U R                  [        [        US	5        U" 5       nUR	                  5         U" S
SS5        UR	                  S
SS5        UR                  S
SS5        UR                  R	                  S
SS5        S S S 5        M     M     g ! , (       d  f       M  = f)Nc                       \ rS rSrS rSrg)>TestCallable.test_patch_spec_callable_class.<locals>.CallableXd   c                     g r   r5   r(   s    r   r   GTestCallable.test_patch_spec_callable_class.<locals>.CallableX.__call__e   s    r   r5   N)r"   r7   r8   r9   r   r:   r5   r   r   	CallableXr`   d   s    $r   rd   c                       \ rS rSrSrg)8TestCallable.test_patch_spec_callable_class.<locals>.Subg   r5   Nr6   r5   r   r   Subrf   g   r<   r   rh   c                       \ rS rSrSrg):TestCallable.test_patch_spec_callable_class.<locals>.Multij   r5   Nr6   r5   r   r   Multirj   j   r<   r   rl   )rF   rS   rD   	foobarbaz         )r   r   r
   r"   rK   r   r   r   r   AttributeErrorgetattrfoo)	r   rd   rh   rl   argKlassr   rN   results	            r   test_patch_spec_callable_class+TestCallable.test_patch_spec_callable_classc   s    	% 	%	) 		Is 	 &C".6H,==#vH002OOK)$DE%%ngx&13 &ZF4461aO221a;JJq!Q'JJ66q!Q?! >= / &==s   B7D
D"c                     [        [        5      nU" 5       nU R                  [        U5        [        [        5       5      nU R                  [        U5        g r   )r   r   r   r   )r   r   rN   s      r   test_create_autospec!TestCallable.test_create_autospec   s?    q!6)X.qs#)T*r   c                     [        [        SS9nU R                  [        U5        UR	                  5         UR                  R                  5         U R                  [        UR                  SS5        g )NT)rN   someargs)r   r   r   r   wibblerK   r   s     r   test_create_autospec_instance*TestCallable.test_create_autospec_instance   sO    y48)T*++-)T[[&6Br   r5   N)r"   r7   r8   r9   r   r$   r)   r/   rA   rO   rT   rY   r\   rw   rz   r   r:   r5   r   r   r   r      sA    ;
?K
>=	/	/++@>+Cr   r   __main__)unittest#test.test_unittest.testmock.supportr   r   r   unittest.mockr   r   r   r	   r
   r   r   TestCaser   r"   mainr5   r   r   <module>r      sN   
  I I  BC8$$ BCJ zMMO r   