3 C\O@sfddlZddlmZmZmZddlmZmZm Z m Z m Z m Z m Z GdddejZedkrbejdS)N) is_instanceX SomeClass)Mock MagicMockNonCallableMagicMockNonCallableMockpatchcreate_autospec CallableMixinc@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS) TestCallablecCs$|jt|t|jt|tdS)N) assertTruerr assertFalser )selfmockrm/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/mock/mock/tests/testcallable.pyassertNotCallableszTestCallable.assertNotCallablecCsJxDttfD]4}|jt||jt|d|j|jjt |qWdS)N__call__) rr assertRaises TypeErrorrhasattrZassertIn __class____name__repr)rrrrrtest_non_callables zTestCallable.test_non_callablecCs$|jttt|jtttdS)N)r issubclassrrrr)rrrrtest_heirarchyszTestCallable.test_heirarchycCs<t}|jtt|jtt}|jtt|jtdS)N) rr rtypeonerrtwor)rrr rrrtest_attributes#szTestCallable.test_attributescCs\Gdddt}|}|jtt|j|Gdddt}|}|jtt|j|dS)Nc@s eZdZdS)z-TestCallable.test_subclasses..MockSubN)r __module__ __qualname__rrrrMockSub,sr$c@s eZdZdS)z.TestCallable.test_subclasses..MagicSubN)rr"r#rrrrMagicSub2sr%)rr rrrrr )rr$rr%r rrrtest_subclasses+s zTestCallable.test_subclassescCsLtdtdd}|j}|j|j|}|j|j||jt|dS)Nz%s.XT)spec) r rstart addCleanupstopassert_called_once_withrrr)rpatcherrinstancerrrtest_patch_spec9s  zTestCallable.test_patch_speccCsLtdtdd}|j}|j|j|}|j|j||jt|dS)Nz%s.XT)spec_set) r rr(r)r*r+rrr)rr,rr-rrrtest_patch_spec_setEs  z TestCallable.test_patch_spec_setcCs@tdttd}|j}|j|j|j||jt|dS)Nz%s.X)r') r rrr(r)r*rrr)rr,rrrrtest_patch_spec_instanceQs   z%TestCallable.test_patch_spec_instancecCs@tdttd}|j}|j|j|j||jt|dS)Nz%s.X)r/) r rrr(r)r*rrr)rr,rrrrtest_patch_spec_set_instanceZs   z)TestCallable.test_patch_spec_set_instancec CsGdddt}Gddd|}Gdddt|}Gddd}Gd d d |}xdD]}x|||||fD]}td tf||iz}|} |j|jt| t|jt t | d| } | j| ddd| jddd| j ddd| j jdddWdQRXqjWqVWdS)Nc@seZdZddZdS)z>TestCallable.test_patch_spec_callable_class..CallableXcSsdS)Nr)rrrrreszGTestCallable.test_patch_spec_callable_class..CallableX.__call__N)rr"r#rrrrr CallableXdsr3c@s eZdZdS)z8TestCallable.test_patch_spec_callable_class..SubN)rr"r#rrrrSubhsr4c@s eZdZdS)z:TestCallable.test_patch_spec_callable_class..MultiN)rr"r#rrrrMultiksr5c@seZdZddZdS)z=TestCallable.test_patch_spec_callable_class..OldStylecSsdS)Nr)rrrrroszFTestCallable.test_patch_spec_callable_class..OldStyle.__call__N)rr"r#rrrrrOldStylensr6c@s eZdZdS)z@TestCallable.test_patch_spec_callable_class..OldStyleSubN)rr"r#rrrr OldStyleSubrsr7r'r/z%s.XZ foobarbaz)r'r/) rrr rr+r rrrAttributeErrorgetattrZfoo) rr3r4r5r6r7argZKlassrr-resultrrrtest_patch_spec_callable_classcs&   z+TestCallable.test_patch_spec_callable_classcCs4tt}|}|jt|tt}|jt|dS)N)r rrr)rrr-rrrtest_create_autospecs   z!TestCallable.test_create_autospeccCs@ttdd}|jt||j|jj|jt|jdddS)NT)r-Zsomeargs)r rrrZwibbler+)rrrrrtest_create_autospec_instances    z*TestCallable.test_create_autospec_instanceN)rr"r#rrrr!r&r.r0r1r2r?r@rBrrrrr s    ' r __main__)Z unittest2ZunittestZmock.tests.supportrrrrrrrrr r r ZTestCaser rmainrrrrs $