B &1rr@sddlZddlZddlZddlZddlmZmZmZmZm Z m Z m Z m Z m Z mZddlmZddlmZGdddeZGdddejZGd d d ejZGd d d ejZGd ddejZGdddejZedkredS)N) call_Callcreate_autospec MagicMockMockANY _CallListpatch PropertyMock _callable)datetime)partialc@s&eZdZddZddZdddZdS) SomeClasscCsdS)N)selfabrrG/opt/alt/python37/lib64/python3.7/unittest/test/testmock/testhelpers.pyonesz SomeClass.onecCsdS)Nr)rrrrtwosz SomeClass.twoNcCsdS)Nr)rrrrrthreeszSomeClass.three)N)__name__ __module__ __qualname__rrrrrrrrsrc@s,eZdZddZddZddZddZd S) AnyTestcCsF|ttt}|t|tt}|td|jtddS)N)foo) assertEqualrobjectrassert_called_with)rmockrrrtest_anys  zAnyTest.test_anycCs$|ttd|ttddS)Nz)rreprrstr)rrrr test_repr%szAnyTest.test_reprcCs,t}|ttd|jttddS)N)r)rr nowrr)rrrrrtest_any_and_datetime*szAnyTest.test_any_and_datetimecCst}t}Gdddt}xt|fD]}|||||d|j|||d|j||dttttdtjtttdttjttdg}|||j ||j |q.WdS)Nc@seZdZddZddZdS)z9AnyTest.test_any_mock_calls_comparison_order..FoocSsdS)NFr)rotherrrr__eq__5sz@AnyTest.test_any_mock_calls_comparison_order..Foo.__eq__cSsdS)NTr)rr&rrr__ne__7sz@AnyTest.test_any_mock_calls_comparison_order..Foo.__ne__N)rrrr'r(rrrrFoo4sr))rbar)ZzingaZalpha)Za1Zz99) rr r$r reset_mockmethodrrr mock_calls)rrdr)expectedrrr$test_any_mock_calls_comparison_order1s z,AnyTest.test_any_mock_calls_comparison_orderN)rrrr r#r%r0rrrrrs rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)S)*CallTestcCst}||t||td||td||tif||td||tdif||tddif||td||td||tdif||td diftd }||td ||td ||td if||tdd iftd }||td ||tdd iftd}||td||tddif||td||tddiftddif}||tddddif||tdddif||tdddif||tddifdS)N))r)r2rr2r)r)r*rbazZspam)))r2)r4r5r6)r4r5r6))r4r5)r)r4r5r7)r2)r4r5r7)r4r5r7)r*)r4r5r7r*rr6)rrassertNotEqual)rkallrrrtest_call_with_callMs<zCallTest.test_call_with_callcCsjt}||d||d||d||d||ddif||dif||ifdS)Nr)r)r)rrr)rr)rargsrrrtest_empty__Callrs    zCallTest.test_empty__CallcCstddif}||d||d||ddif||dif||d||d||if||d||d||difdS) Nrr)r)rr)r)r*)r*rr*)rrr8)rr;rrrtest_named_empty_call~s      zCallTest.test_named_empty_callcCsJtdif}||d||d||ddif||difdS)N)r4r5r6))r4r5r6)r)r4r5r6r)rr)rr;rrrtest_call_with_argss    zCallTest.test_call_with_argscCsLtddif}||d||ddif||d||difdS)Nr)r4r5r6)r)r4r5r6))r4r5r6)rrr8)rr;rrrtest_named_call_with_argss   z"CallTest.test_named_call_with_argsc Csxtdtdddf}||tdddf||dtdddf||ddtdddf||dtdddfdS)Nrr6r7)rrr)rdictr)rr;rrrtest_call_with_kwargss zCallTest.test_call_with_kwargsc Csztddtdddf}||dtdddf||ddtdddf||tdddf||dtdddfdS)Nrrr6r7)rr)rr@rr8)rr;rrrtest_named_call_with_kwargss z$CallTest.test_named_call_with_kwargscCsNtdif}||tddd|tddd||tddd|gdS)N)r4r5r6r4r5r6)rrrassertIn)rr;rrr#test_call_with_args_call_empty_names z,CallTest.test_call_with_args_call_empty_namecCsR|tdtdd|tdtdddk|tdiftdddkdS)N))r4r5r6r4r5r6)r4r5)r8rr assertFalse assertTrue)rrrr test_call_neszCallTest.test_call_necCs<td}x.dd|tfD]}||||||kqWdS)N))r4r5r6r4)rintr8rE)rr9valuerrrtest_call_non_tupless zCallTest.test_call_non_tuplescCs^|ttd|ttdd|ttdddifd|ttddddifd |ttd |ttd |ttd|ttd d |ttd dd|ttjd|ttd jjddjd|ttjd dddd|ttd|ttd dd|ttj d ddS)Nzcall())rz call.foo())r4r5r6rrzcall(1, 2, 3, a='b')r*zcall.bar(1, 2, 3, a='b')rr4zcall(1)thing)Zzzzcall(zz='thing')z call().foor6)rzcall().foo.bar().bingr5zcall().foo(1, 2, a=3)zcall()()z call()(2)zcall()().bar().baz.beep(1)) rr!rrr"rr*bingr3beep)rrrrr#s,zCallTest.test_reprcCs||tddif|tddddddddddft}|d d d|dd d ||jtd d dtdd d gdS) Nr2rrr*r6r7)rr)rr*r4r5)rr)rrrcall_args_list)rrrrr test_calls  zCallTest.test_callcCs|tdddif|tjjddddddift}|dd d |jjd d d ||jtdd d tjjd d d gdS) Nr4r)r4Zeggs)fishzbar.bazrrQr5r6rN)rr)rrrr*r3r method_calls)rrrrrtest_attribute_callszCallTest.test_attribute_callc Cstddjddd}||ddtddft}|ddddd||jtddddd||jtddd||jtdddddg||j tdddddgt}|dj j d dtdj j d d}||j d |||j | dS) Nr4r5r6r7)rz ().foo().bar)r6)rrrN) rrr*rr@r call_argsr8rOr-r3rM call_list)rresultrZ last_callrrrtest_extended_callszCallTest.test_extended_callcCs@tddj}tddj}|||||||||dS)Nr4)xr5)rrrr8)rrrrrrtest_extended_not_equals     z CallTest.test_extended_not_equalcCsHtddj}tddj}|||||||||dS)Nr4)rYr5)rrr*rr8)rrrrrrtest_nested_calls_not_equals   z$CallTest.test_nested_calls_not_equalcCst}|d|td|jt}|dd|tdd|jt}|ddd|tddd|jt}t|dddjj ddtdddjj dd }|||jdS)Nr4r5r6r7) rrrrVr-r,rHrr*r3__int__)rrr9rrrtest_call_list"s$$zCallTest.test_call_listcCs>|ttt}t|||jtg|tg|jdS)N)rrrrrHr-)rmrrr test_call_any7s  zCallTest.test_call_anycCshtdddifdd}|t|d||dd||ddditdddif}|||dS) N)r4r5rr6T)rr5rr4)rrlen)rr;Z other_argsrrrtest_two_args_call@s zCallTest.test_two_args_callcCsJ|tdddd|tddd|tdddifdddS) Nrrr))r*barzr2)r*rcZhelloZworld)rr)rrrrtest_call_with_nameIszCallTest.test_call_with_nameN)rrrr:r<r=r>r?rArBrDrGrJr#rPrSrXrZr[r^r`rbrdrrrrr1Ks(%         r1c@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Z d=d>Z!d?d@Z"dAdBZ#dCS)DSpecSignatureTestcCs|tt|d|dd|jdd|t|jjdd|t|jd||j|t|jjd|t|jd||j|t|jjd|t|jdd|d|jd|jdd|jjdddS)Nrr4r5r6r7)r) assertRaisesAttributeErrorgetattrrrAssertionError TypeErrorrr)rrrrr_check_someclass_mockQs(        z'SpecSignatureTest._check_someclass_mockcCs*tt}||tt}||dS)N)rrrk)rrrrr test_basicls  zSpecSignatureTest.test_basiccCsPdd}t|dd}||dGdddt}t|dd}||ddS)NcSsdS)Nrrrrrftsz>SpecSignatureTest.test_create_autospec_return_value..fr)Z return_valuec@s eZdZdS)z@SpecSignatureTest.test_create_autospec_return_value..FooN)rrrrrrrr)ysr))rrr)rrmrr)rrr!test_create_autospec_return_valuess   z3SpecSignatureTest.test_create_autospec_return_valuecCs,tt}t||||jjddS)Nr)rrHr+rr]Z call_count)rr_rrrtest_autospec_reset_mocksz*SpecSignatureTest.test_autospec_reset_mockcCs>Gdddt}t|d}|}|d|ddS)Nc@seZdZddZdS)z;SpecSignatureTest.test_mocking_unbound_methods..FoocSsdS)Nr)rrrrrrsz?SpecSignatureTest.test_mocking_unbound_methods..Foo.fooN)rrrrrrrrr)sr)rr4)rr startrr)rr)pZmock_foorrrtest_mocking_unbound_methodss   z.SpecSignatureTest.test_mocking_unbound_methodscCsdS)Nc@seZdZddZdS)zCSpecSignatureTest.test_create_autospec_unbound_methods..FoocSsdS)Nr)rrrrrszGSpecSignatureTest.test_create_autospec_unbound_methods..Foo.fooN)rrrrrrrrr)sr)r4)rrrfrjrr)rr)klassinstancerrr$test_create_autospec_unbound_methodssz6SpecSignatureTest.test_create_autospec_unbound_methodscCs.Gdddt}t|dd}||jddS)Nc@seZdZdZdS)zESpecSignatureTest.test_create_autospec_keyword_arguments..Foor6N)rrrrrrrrr)sr)3)r)rrrr)rr)r_rrr&test_create_autospec_keyword_argumentss z8SpecSignatureTest.test_create_autospec_keyword_argumentscCsVdddd}t|}|d|d|t|dd|ddd|jddddS)N)rcSsdS)Nr)rrrrrrszJSpecSignatureTest.test_create_autospec_keyword_only_arguments..foor4r5r6)rrrfrj)rrr_rrr+test_create_autospec_keyword_only_argumentss  z=SpecSignatureTest.test_create_autospec_keyword_only_argumentscCs6t}dd}||_t|}|d|jddS)NcSsdS)Nr)rrrrrmsz@SpecSignatureTest.test_function_as_instance_attribute..frL)rrmrr)robjrmrrrr#test_function_as_instance_attributes  z5SpecSignatureTest.test_function_as_instance_attributecCsvtg}|d|jd|tt|dGdddt}t|}|jd|jjd|tt|jddS)Nrc@seZdZgZdS)z0SpecSignatureTest.test_spec_as_list..FooN)rrrrrrrrr)sr)r6)rappendrrfrgrhrr)rrr)rrrtest_spec_as_lists   z#SpecSignatureTest.test_spec_as_listcCs:Gdddt}t|}x||jfD]}||q$WdS)Nc@seZdZeZdS)z.SpecSignatureTest.test_attributes..SubN)rrrrattrrrrrSubsr~)rrr}rk)rr~Zsub_mockrrrrtest_attributessz!SpecSignatureTest.test_attributescCsGdddt}t|}|d|jd|tt|jd|d|jd|t|jdd|tt|jd| ddg|j ddg|tt|j d|j d|j j d|tt|j ddS)Nc@seZdZddZeZiZdS)zGSpecSignatureTest.test_builtin_functions_types..BuiltinSubclasscSsdS)Nr)rargrrrr*szKSpecSignatureTest.test_builtin_functions_types..BuiltinSubclass.barN)rrrr*sortedr}rrrrBuiltinSubclasssrr6rr*r4r5) listrr{rrfrgrhr*rjrr}pop)rrrrrrtest_builtin_functions_typess     z.SpecSignatureTest.test_builtin_functions_typescCsGdddt}t|}|dd||dtddttdg}||j||jdd|j|jd| tjddtjtjdg||j|dS)Nc@seZdZeZdS)z0SpecSignatureTest.test_method_calls..SubN)rrrrr}rrrrr~sr~r4r5r6) rrrrrrrrRr}extend)rr~rr/rrrtest_method_callss    $z#SpecSignatureTest.test_method_callscCs|Gdddt}t|}|t|g|tt||tt|j|t|g||dt||jdtdS)Nc@seZdZiZdS)z=SpecSignatureTest.test_magic_methods..BuiltinSubclassN)rrrr}rrrrrsrr) rrrrfrjrHr}assertIsInstancer)rrrrrrtest_magic_methodssz$SpecSignatureTest.test_magic_methodscCsdGdddt}xN||fD]@}t|dd}|||tt|dd|tt|jddqWdS)Nc@seZdZeZdS)z,SpecSignatureTest.test_spec_set..SubN)rrrrr}rrrrr~!sr~T)Zspec_setrr*)rrrkrfrgsetattrr})rr~specrrrr test_spec_set s   zSpecSignatureTest.test_spec_setcCsGdddt}Gddd|}Gdddt|}xZ||||||fD]@}t|}|dd|jdd|d d |jd d qJWdS) Nc@s$eZdZeddZeddZdS)z/SpecSignatureTest.test_descriptors..FoocSsdS)Nr)clsrrrrrrm.sz1SpecSignatureTest.test_descriptors..Foo.fcSsdS)Nr)rrrrrg1sz1SpecSignatureTest.test_descriptors..Foo.gN)rrr classmethodrm staticmethodrrrrrr)-s r)c@s eZdZdS)z/SpecSignatureTest.test_descriptors..BarN)rrrrrrrBar5src@s eZdZdS)z/SpecSignatureTest.test_descriptors..BazN)rrrrrrrBaz8srr4r5r6r7)rrrrmassert_called_once_withr)rr)rrrrrrrtest_descriptors,s  z"SpecSignatureTest.test_descriptorscCsGdddt}||_t|}|||jj||j||jttjg| |j |j | |j |j |j |t|j j jdS)Nc@seZdZddZdZeZdS)z+SpecSignatureTest.test_recursive..AcSsdS)Nr)rrrrrFsz-SpecSignatureTest.test_recursive..A.az foo bar bazN)rrrrrr*rrrrAEsr)rBrrEZcalledrrrRrZassertIsrr* assertIsNotlowerrfrir)rrrrrrtest_recursiveDs  z SpecSignatureTest.test_recursivecCsbGdddt}t|}|||xZ||fD]L}|jdd|jjdd|jd|t|jdd|tt|dq2Wt|}|d|jd|jjdd|t|jdd|tt|d|t||j d|j j d|j j jdd |tt|j d | d| j d| j jdd |tt| d dS) Nc@s$eZdZddZGdddeZdS)z@SpecSignatureTest.test_spec_inheritance_for_classes..FoocSsdS)Nr)rrYrrrr]szBSpecSignatureTest.test_spec_inheritance_for_classes..Foo.ac@seZdZddZdS)zDSpecSignatureTest.test_spec_inheritance_for_classes..Foo.BarcSsdS)Nr)ryrrrrm`szFSpecSignatureTest.test_spec_inheritance_for_classes..Foo.Bar.fN)rrrrmrrrrr_srN)rrrrrrrrrrr)\sr)r\)rYrr*rrN)rr) rrrrrrfrjrgrhrrm)rr)Z class_mockZ this_mockZ instance_mockrrr!test_spec_inheritance_for_classes[s0       z3SpecSignatureTest.test_spec_inheritance_for_classescCsGdddt}||_t|}|}|tt|d|}|tt|dt|}|tt|d|t||}|tt|ddS)Nc@seZdZdZdS)z+SpecSignatureTest.test_inherit..Foor6N)rrrrrrrrr)sr)r)rr)rrfrgrhrj)rr)rrtZ attr_instanceZ call_resultrrr test_inherits  zSpecSignatureTest.test_inheritcCstdtttdtttitttgtttttttdtttdtttdtddS)Nr4rg?y?FT)rrHr"r@rsetfloatcomplex)rrrr test_builtinss  zSpecSignatureTest.test_builtinscCsdd}t|}|t||dd|dd|jddd|jddd||_t|}|t|j|dd|jdd|jjddddS) NcSsdS)Nr)rrrrrrmsz*SpecSignatureTest.test_function..fr4r5)r)rrr6r7)rrfrjrrm)rrmrrrr test_functions    zSpecSignatureTest.test_functioncsvGdddtGfdddt}t||tfdddd|tfd dj}|j|jfdS) Nc@seZdZdddZdS)z;SpecSignatureTest.test_skip_attributeerrors..RaiserNcSs|dkrtddS)Nz$Can only be accessed via an instance)rg)rrytyperrr__get__szCSpecSignatureTest.test_skip_attributeerrors..Raiser.__get__)N)rrrrrrrrRaisersrcseZdZZeddZdS)z@SpecSignatureTest.test_skip_attributeerrors..RaiserClasscSs||S)Nr)rrrrrexistingszISpecSignatureTest.test_skip_attributeerrors..RaiserClass.existingN)rrrraiserrrr)rrr RaiserClasssrcsdddS)Nr4r5r6)r)rY)srrz=SpecSignatureTest.test_skip_attributeerrors..r4r5csjS)N)Z nonexistingr)rrrrr) rrrfrjrrgrrr*)rrryr)rrrtest_skip_attributeerrorss z+SpecSignatureTest.test_skip_attributeerrorscCsGdddt}t|}|t||d|d|jdd|t|jd|dd|dd|jddd|jt|jddddS) Nc@seZdZdddZdS)z3SpecSignatureTest.test_signature_class..Foor6cSsdS)Nr)rrrrrr__init__sz.Foo.__init__N)r6)rrrrrrrrr)sr)r4)rr5r7r\)rr)rrrfrjrrir)rr)rrrrtest_signature_classs     z&SpecSignatureTest.test_signature_classcCsGdddt}t|dS)Nc@s eZdZdS)z6SpecSignatureTest.test_class_with_no_init..FooN)rrrrrrrr)sr))rr)rr)rrrtest_class_with_no_initsz)SpecSignatureTest.test_class_with_no_initcCsGdddt}t|}|dd|dd|jddd|t|d|dd}|t||dd|d|jdd|d|d|jddt|dd}|dd|jdd|t||d|ddS)Nc@seZdZddZddZdS)z;SpecSignatureTest.test_signature_callable..CallablecSsdS)Nr)rrYrrrrrszDSpecSignatureTest.test_signature_callable..Callable.__init__cSsdS)Nr)rrrrr__call__szDSpecSignatureTest.test_signature_callable..Callable.__call__N)rrrrrrrrrCallablesrr4r5)rYrr)r)rrrrfrjr)rrrrtrrrtest_signature_callables(            z)SpecSignatureTest.test_signature_callablecCsvGdddt}t|}|}||t|d|t||t|dt|}|t||t|ddS)Nc@seZdZddZdS)zASpecSignatureTest.test_signature_noncallable..NonCallablecSsdS)Nr)rrrrrszJSpecSignatureTest.test_signature_noncallable..NonCallable.__init__N)rrrrrrrr NonCallablesrr)rrrrfrj)rrrrtrrrtest_signature_noncallables   z,SpecSignatureTest.test_signature_noncallablecCsDGdddt}t|}|j}||td||jdS)Nc@seZdZdZdS)z8SpecSignatureTest.test_create_autospec_none..FooN)rrrr*rrrrr)%sr))rrr*assertNotIsInstancerrr)rr)rZnonerrrtest_create_autospec_none$s z+SpecSignatureTest.test_create_autospec_nonecCsfGdddt}t|}|d|jd|jjdd|jdd|jd|jjdddS)Nc@seZdZddZdS)zMSpecSignatureTest.test_autospec_functions_with_self_in_odd_place..FoocSsdS)Nr)rrrrrrm2szOSpecSignatureTest.test_autospec_functions_with_self_in_odd_place..Foo.fN)rrrrmrrrrr)1sr) )r)rrrmr)rr)rrrr.test_autospec_functions_with_self_in_odd_place0s    z@SpecSignatureTest.test_autospec_functions_with_self_in_odd_placecsvGdddtGdddtGfdddt}t|}fdd}||j||j||j||jdS) Nc@s&eZdZddZdddZddZdS) zCSpecSignatureTest.test_autospec_data_descriptor..DescriptorcSs ||_dS)N)rI)rrIrrrr@szLSpecSignatureTest.test_autospec_data_descriptor..Descriptor.__init__NcSs|dkr |S|jS)N)rI)rryrrrrrCszKSpecSignatureTest.test_autospec_data_descriptor..Descriptor.__get__cSsdS)Nr)rryrIrrr__set__HszKSpecSignatureTest.test_autospec_data_descriptor..Descriptor.__set__)N)rrrrrrrrrr Descriptor?s rc@s eZdZdS)zCSpecSignatureTest.test_autospec_data_descriptor..MyPropertyN)rrrrrrr MyPropertyKsrcs2eZdZdgZeddZddZdZdS)z.FooslotcSsdS)Nr6r)rrrrpropQszASpecSignatureTest.test_autospec_data_descriptor..Foo.propcSsdS)Nr7r)rrrrsubpropUszDSpecSignatureTest.test_autospec_data_descriptor..Foo.subprop*N)rrr __slots__propertyrrdescr)rrrrr)Ns  r)csH|t|ddd|ddd|ddd|jddddS)Nr4r5r6r7r\rN)rrabcr)Z mock_attr)rrrcheck_data_descriptor]s   zNSpecSignatureTest.test_autospec_data_descriptor..check_data_descriptor)rrrrrrr)rr)rrr)rrrrtest_autospec_data_descriptor>s     z/SpecSignatureTest.test_autospec_data_descriptorcCs\ttjt}||tt|}||||ddd|ddddS)Nr7r\rN) types MethodTypetimeZctimerr"rrr+)rZmethZmockedrrr'test_autospec_on_bound_builtin_functionos z9SpecSignatureTest.test_autospec_on_bound_builtin_functioncCs0Gddd}|}t|}|t|ddS)Nc@seZdZddZdS)zESpecSignatureTest.test_autospec_getattr_partial_function..FoocSstdd|S)NcSs|S)Nr)namerrrrrzcSpecSignatureTest.test_autospec_getattr_partial_function..Foo.__getattr__..)r )rZ attributerrr __getattr__szQSpecSignatureTest.test_autospec_getattr_partial_function..Foo.__getattr__N)rrrrrrrrr)sr)r)rrEhasattr)rr)proxyZautospecrrr&test_autospec_getattr_partial_function|sz8SpecSignatureTest.test_autospec_getattr_partial_functioncCspdd}t|}|dd|ddd|t|t|||jtddtdddg|t|ddS)NcSsdS)Nr)rYrrrrmyfuncsz=SpecSignatureTest.test_spec_inspect_signature..myfuncr4r5)rYr)rrinspectgetfullargspecr-rrfrj)rrrrrrtest_spec_inspect_signatures   z-SpecSignatureTest.test_spec_inspect_signaturecCsd ttttddd}t|}|dddd|ddd|t|t|||jtddddtdddg|t|d|jt|dddd ddS) Nr)rrcreturncSs |||S)Nr)rrrrrrrszFSpecSignatureTest.test_spec_inspect_signature_annotations..foor4r5r6)rr7)r) rHrrrrr-rrfrj)rrrrrr'test_spec_inspect_signature_annotationss $z9SpecSignatureTest.test_spec_inspect_signature_annotationsN)$rrrrkrlrnrorrrurwrxrzr|rrrrrrrrrrrrrrrrrrrrrrrrrrrreOsB      ( 1  rec@s,eZdZddZddZddZddZd S) TestCallListcCs"t}||jt|dd|dd|dd|ddx:tddtddtddtddfD]}|||jqbWtddtddg}|||jtddtddg}|||jtddtddg}|||jtddg}|||j|td|j|tdg|jdS) Nr4r5r6)rr7rN)rrQ)rrrOrrrCZ assertNotIn)rrr9Zcallsrrr!test_args_list_contains_call_lists$    * z.TestCallList.test_args_list_contains_call_listcCsJt}|dd|jdd|jjdddd}|t|j|dS) Nr4r5r6)rrQZdog)catzU[call(1, 2), call.foo(a=3), call.foo.bar(), call.foo.bar().baz('fish', cat='dog')])rrr*r3rr"r-)rrr/rrrtest_call_list_strs   zTestCallList.test_call_list_strcCstdttd}|}z^tj|t}|j|||j t t gd|_||j t t t dgWd| XdS)Nz%s.SomeClass.one)Z new_callabler6) r rr rprrrrrr-rstop)rrqrrrrrtest_propertymocks zTestCallList.test_propertymockcCs@t}t}|t|_|j}|||t||tdS)N)rr rrrrr)rr_rqZreturnedrrrtest_propertymock_returnvalues  z*TestCallList.test_propertymock_returnvalueN)rrrrrrrrrrrrsrc@s<eZdZddZddZddZddZd d Zd d Zd S)TestCallablePredicatecCs,x&ttttttgD]}|t|qWdS)N)r"bytesrHrtuplerrFr )rryrrr test_typeszTestCallablePredicate.test_typecCs&Gddd}|}|t|dS)Nc@seZdZddZdS)z>TestCallablePredicate.test_call_magic_method..CallablecSsdS)Nr)rrrrrszGTestCallablePredicate.test_call_magic_method..Callable.__call__N)rrrrrrrrrsr)rFr )rrrtrrrtest_call_magic_methodsz,TestCallablePredicate.test_call_magic_methodcCs"Gddd}|t|jdS)Nc@seZdZeddZdS)zATestCallablePredicate.test_staticmethod..WithStaticMethodcSsdS)Nrrrrr staticfuncszLTestCallablePredicate.test_staticmethod..WithStaticMethod.staticfuncN)rrrrrrrrrWithStaticMethodsr)rFr r)rrrrrtest_staticmethodsz'TestCallablePredicate.test_staticmethodcCs"Gddd}|t|jdS)Nc@seZdZedZdS)zMTestCallablePredicate.test_non_callable_staticmethod..BadStaticMethodN)rrrr not_callablerrrrBadStaticMethodsr)rEr r)rrrrrtest_non_callable_staticmethodsz4TestCallablePredicate.test_non_callable_staticmethodcCs"Gddd}|t|jdS)Nc@seZdZeddZdS)z?TestCallablePredicate.test_classmethod..WithClassMethodcSsdS)Nr)rrrr classfuncszITestCallablePredicate.test_classmethod..WithClassMethod.classfuncN)rrrrrrrrrWithClassMethodsr)rFr r)rrrrrtest_classmethodsz&TestCallablePredicate.test_classmethodcCs"Gddd}|t|jdS)Nc@seZdZedZdS)zKTestCallablePredicate.test_non_callable_classmethod..BadClassMethodN)rrrrrrrrrBadClassMethodsr)rEr r)rrrrrtest_non_callable_classmethod sz3TestCallablePredicate.test_non_callable_classmethodN) rrrrrrrrrrrrrrs r__main__)rrrZunittestZ unittest.mockrrrrrrrr r r r functoolsr rrZTestCaserr1rerrrmainrrrrs(0   3[G&