+
    Bi                         ^ RI t ^ RIHtHtHt ^ RIHtHtHtH	t	H
t
HtHt  ! R R] P                  4      t]R8X  d   ] P                   ! 4        R# R# )    N)is_instanceX	SomeClass)Mock	MagicMockNonCallableMagicMockNonCallableMockpatchcreate_autospecCallableMixinc                   h   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )TestCallablec                    V P                  \        V\        4      4       V P                  \        V\        4      4       R # N)
assertTruer   r   assertFalser   selfmocks   &&?/usr/lib/python3.14/test/test_unittest/testmock/testcallable.pyassertNotCallableTestCallable.assertNotCallable   s+    D*>?@T=9:    c                    \        4       \        4       3 FZ  pV P                  \        V4       V P	                  VR 4       V P                  VP                  P                  \        V4      4       K\  	  R# )__call__N)	r   r	   assertRaises	TypeErrorassertNotHasAttrassertIn	__class____name__reprr   s   & r   test_non_callableTestCallable.test_non_callable   sS    (*O,==Di.!!$
3MM$..114:> >r   c                n    V P                  \        \        4       V P                  \        \        4       R # r   )assertIsSubclassr   r   r   r	   r   s   &r   test_hierarchyTestCallable.test_hierarchy   s#    i.2ODr   c                    \        4       pV P                  \        VP                  4      \        4       \        4       pV P                  \        VP                  4      \        4       R # r   )r	   r&   typeoner   r   twor   )r   r,   r-   s   &  r   test_attributesTestCallable.test_attributes#   sB    d377mT2"$d377mY7r   c                     ! R  R\         4      pV! 4       pV P                  \        VP                  4      V4        ! R R\        4      pV! 4       pV P                  \        VP
                  4      V4       R# )c                       ] tR t^,tRtR# )-TestCallable.test_subclasses.<locals>.MockSub Nr!   
__module____qualname____firstlineno____static_attributes__r3   r   r   MockSubr2   ,       r   r9   c                       ] tR t^2tRtR# ).TestCallable.test_subclasses.<locals>.MagicSubr3   Nr4   r3   r   r   MagicSubr<   2   r:   r   r=   N)r   r&   r+   r,   r   r-   )r   r9   r,   r=   r-   s   &    r   test_subclassesTestCallable.test_subclasses+   s\    	d 	 id377mW5	y 	 jd377mX6r   c                   \        R \        ,          RR7      pVP                  4       pV P                  VP                  4       V! 4       pVP                  4        V P                  V4       V P                  \        V4       R# )%s.XTspecN	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                   \        R \        ,          RR7      pVP                  4       pV P                  VP                  4       V! 4       pVP                  4        V P                  V4       V P                  \        V4       R# )rA   Tspec_setNrD   rI   s   &   r   test_patch_spec_set TestCallable.test_patch_spec_setE   s_    )D9}}%6$$&x()X.r   c                    \        R \        ,          \        4       R7      pVP                  4       pV P	                  VP
                  4       V P                  V4       V P                  \        V4       R# )rA   rB   N	r
   r!   r   rE   rF   rG   r   r   r   r   rJ   r   s   &  r   test_patch_spec_instance%TestCallable.test_patch_spec_instanceQ   sN    )4}}%t$)T*r   c                    \        R \        ,          \        4       R7      pVP                  4       pV P	                  VP
                  4       V P                  V4       V P                  \        V4       R# )rA   rO   NrT   rU   s   &  r   test_patch_spec_set_instance)TestCallable.test_patch_spec_set_instanceZ   sN    )AC8}}%t$)T*r   c           
     h    ! R  R\         4      p ! R RV4      p ! R R\        V4      pR	 F  pWV3 F  p\        R\        ,          3/ WE/B ;_uu_ 4       pV! 4       pVP	                  4        V P                  \        V\        4      4       V P                  \        \        VR4       V! 4       pVP	                  4        V! ^^^4       VP	                  ^^^4       VP                  ^^^4       VP                  P	                  ^^^4       RRR4       K  	  K  	  R#   + '       g   i     K  ; i)
c                   &   a  ] tR t^dt o R tRtV tR# )>TestCallable.test_patch_spec_callable_class.<locals>.CallableXc                    R # r   r3   r'   s   &r   r   GTestCallable.test_patch_spec_callable_class.<locals>.CallableX.__call__e   s    r   r3   N)r!   r5   r6   r7   r   r8   __classdictcell____classdict__s   @r   	CallableXr]   d   s     $$r   rc   c                       ] tR t^gtRtR# )8TestCallable.test_patch_spec_callable_class.<locals>.Subr3   Nr4   r3   r   r   Subre   g   r:   r   rf   c                       ] tR t^jtRtR# ):TestCallable.test_patch_spec_callable_class.<locals>.Multir3   Nr4   r3   r   r   Multirh   j   r:   r   ri   rA   	foobarbazN)rC   rP   )r   r   r
   r!   rH   r   r   r   r   AttributeErrorgetattrfoo)	r   rc   rf   ri   argKlassr   rK   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 	 D1c                    \        \        4      pV! 4       pV P                  \        V4       \        \        4       4      pV P                  \        V4       R # r   )r   r   r   r   )r   r   rK   s   &  r   test_create_autospec!TestCallable.test_create_autospec   s?    q!6)X.qs#)T*r   c                    \        \        R R7      pV P                  \        V4       VP	                  4        VP                  P                  4        V P                  \        VP                  RR4       R# )T)rK   someargsN)r   r   r   r   wibblerH   r   s   & r   test_create_autospec_instance*TestCallable.test_create_autospec_instance   sO    y48)T*++-)T[[&6Br   r3   N)r!   r5   r6   r7   r   r#   r(   r.   r>   rL   rQ   rV   rY   rq   rt   rz   r8   r`   ra   s   @r   r   r      sJ     ;
?E
87	/	/++@>+C Cr   r   __main__)unittest#test.test_unittest.testmock.supportr   r   r   unittest.mockr   r   r   r	   r
   r   r   TestCaser   r!   mainr3   r   r   <module>r      sN   
  I I  BC8$$ BCJ zMMO r   