U .c@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)datetimepartialc@s&eZdZddZddZdddZdS) SomeClasscCsdSNselfabrrG/opt/alt/python38/lib64/python3.8/unittest/test/testmock/testhelpers.pyonez SomeClass.onecCsdSrrrrrrtworz SomeClass.twoNcCsdSrrrrrrrthreerzSomeClass.three)N)__name__ __module__ __qualname__rrrrrrrrsrc@s,eZdZddZddZddZddZd S) AnyTestcCsF|ttt}|t|tt}|td|jtddSNfoo) assertEqualrobjectrassert_called_withrmockrrrtest_anys  zAnyTest.test_anycCs$|ttd|ttddS)Nz)r$reprrstrrrrr test_repr"szAnyTest.test_reprcCs,t}|ttd|jttddSr!)rr nowr&rr'rrrtest_any_and_datetime'szAnyTest.test_any_and_datetimecCst}Gdddt}t|fD]}|||||d|j|||d|j||dttttdtjtttdttjttdg}|||j ||j |q$dS)Nc@seZdZddZddZdS)z9AnyTest.test_any_mock_calls_comparison_order..FoocSsdSrrrotherrrr__eq__1rz@AnyTest.test_any_mock_calls_comparison_order..Foo.__eq__cSsdSrrr/rrr__ne__2rz@AnyTest.test_any_mock_calls_comparison_order..Foo.__ne__N)rrrr1r2rrrrFoo0sr3r#bar)ZzingaZalpha)Za1Zz99) rr%r r- reset_mockmethodrrr$ mock_calls)rr(r3dexpectedrrr$test_any_mock_calls_comparison_order.s z,AnyTest.test_any_mock_calls_comparison_orderN)rrrr)r,r.r;rrrrr s r c@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"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)r=rr=rr"r5rbazZspam)r=rBrB)rCrD)r#rF)r=rFrF)r5rFr5rrErr$assertNotEqual)rkallrrrtest_call_with_callGs<zCallTest.test_call_with_callcCsjt}||d||d||d||d||ddif||dif||ifdS)Nrr"r>r#rr#)rr$rargsrrrtest_empty__Callls    zCallTest.test_empty__CallcCstddif}||d||d||ddif||dif||d||d||if||d||d||difdS) Nr#rr"rLr>)r5r?r5rHrMrrrtest_named_empty_callxs      zCallTest.test_named_empty_callcCsftdif}||d||d||ddif||dif||jd||jidS)NrBrAr#rBr#)rr$rNkwargsrMrrrtest_call_with_argss   zCallTest.test_call_with_argscCshtddif}||d||ddif||jd||ji||d||difdS)Nr#rBrQrA)rr$rNrRrIrMrrrtest_named_call_with_argss  z"CallTest.test_named_call_with_argsc Cstdtdddf}||tdddf||dtdddf||ddtdddf||dtdddf||jd||jtddddS)NrrErGrrr#)rdictr$rNrRrMrrrtest_call_with_kwargsszCallTest.test_call_with_kwargsc Cstddtdddf}||dtdddf||ddtdddf||jd||jtddd||tdddf||dtdddfdS)Nr#rrErGrU)rrVr$rNrRrIrMrrrtest_named_call_with_kwargssz$CallTest.test_named_call_with_kwargscCsNtdif}||tddd|tddd||tddd|gdS)NrBrCrDrE)rr$rassertInrMrrr#test_call_with_args_call_empty_names z,CallTest.test_call_with_args_call_empty_namecCsR|tdtdd|tdtdddk|tdiftdddkdS)NrArCrDrErCrD)rIrr assertFalse assertTruerrrr test_call_neszCallTest.test_call_necCs8td}dd|tfD]}||||||kqdS)NrArC)rintrIr\)rrJvaluerrrtest_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()r"z call.foo()rBrrzcall(1, 2, 3, a='b')r5zcall.bar(1, 2, 3, a='b')rrCzcall(1)thing)Zzzzcall(zz='thing')z call().foorErzcall().foo.bar().bingrDzcall().foo(1, 2, a=3)zcall()()z call()(2)zcall()().bar().baz.beep(1)) r$r*rrr+r#r5bingr@beeprrrrr,s6zCallTest.test_reprcCs||tddif|tddddddddddft}|d d d|dd d ||jtd d dtdd d gdS) Nr=rr#r5rErG)rrr4rCrDrU)r$rrcall_args_listr'rrr test_calls  zCallTest.test_callcCs|tdddif|tjjddddddift}|dd d |jjd d d ||jtdd d tjjd d d gdS) NrCr#)rCZeggs)fishzbar.bazrrirDrErfrU)r$rr#r5r@r method_callsr'rrrtest_attribute_calls zCallTest.test_attribute_callc Cstddjddd}||ddtddft}|ddddd||jtddddd||jtddd||jtdddddg||j tdddddgt}|dj j d dtdj j d d}||j d |||j | dS) NrCrDrErGrcz ().foo().bar)rErUrf) rr#r5r$rVrZ call_argsrIrgr8r@re call_list)rresultr(Z last_callrrrtest_extended_callszCallTest.test_extended_callcCs@tddj}tddj}|||||||||dSNrCxrD)rr#r$rIrrrrtest_extended_not_equals     z CallTest.test_extended_not_equalcCsHtddj}tddj}|||||||||dSrp)rr#r5r$rIrrrrtest_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)NrCrDrErG) rr$rrmr8r7r_r#r5r@__int__)rr(rJrrrtest_call_list%s"$$zCallTest.test_call_listcCs>|ttt}t|||jtg|tg|jdSr)r$rrrr_r8rmrrr test_call_any:s  zCallTest.test_call_anycCshtdddifdd}|t|d||dd||ddditdddif}|||dS) Nr[rrET)rrDrrC)rr$len)rrNZ other_argsrrrtest_two_args_callCs zCallTest.test_two_args_callcCsJ|tdddd|tddd|tdddifdddS) Nrr#r)r5Zbarzr=r}ZhelloZworld)r$rrrrrtest_call_with_nameLszCallTest.test_call_with_namec Cst}|d||jtttdtgt}d|d<||jtttddgt}t|||jtttgdS)Nr5rC) rr#r$r8r __getitem__ __setitem__iter__iter__rxrrrtest_dunder_callQs$*zCallTest.test_dunder_callN)rrrrKrOrPrSrTrWrXrZr^rar,rhrkrorsrtrwrzr|r~rrrrrr<Es*%         r<c@s<eZdZddZddZddZddZd 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#dCdDZ$dEdFZ%dGdHZ&dIdJZ'dKdLZ(dMS)NSpecSignatureTestcCs|tt|d|dd|jdd|t|jjdd|t|jd||j|t|jjd|t|jd||j|t|jjd|t|jdd|d|jd|jdd|jjdddS)Nr#rCrDrErGrc) assertRaisesAttributeErrorgetattrrr&AssertionError TypeErrorrrr'rrr_check_someclass_mockhs6      z'SpecSignatureTest._check_someclass_mockcCs*tt}||tt}||dSr)rrrr'rrr test_basics  zSpecSignatureTest.test_basiccCsPdd}t|dd}||dGdddt}t|dd}||ddS)NcSsdSrrrrrrfrz>SpecSignatureTest.test_create_autospec_return_value..fr# return_valuec@s eZdZdS)z@SpecSignatureTest.test_create_autospec_return_value..FooNrrrrrrrr3sr3)rr$r%)rrr(r3rrr!test_create_autospec_return_values   z3SpecSignatureTest.test_create_autospec_return_valuecCs,tt}t||||jjddS)Nr)rr_r6r$rvZ call_countrxrrrtest_autospec_reset_mocksz*SpecSignatureTest.test_autospec_reset_mockcCs>Gdddt}t|d}|}|d|ddS)Nc@seZdZddZdS)z;SpecSignatureTest.test_mocking_unbound_methods..FoocSsdSrr)rr#rrrr#rz?SpecSignatureTest.test_mocking_unbound_methods..Foo.fooNrrrr#rrrrr3sr3r#rC)r%r startr#r&)rr3pZmock_foorrrtest_mocking_unbound_methodss   z.SpecSignatureTest.test_mocking_unbound_methodscCs.Gdddt}t|dd}||jddS)Nc@seZdZdZdS)zESpecSignatureTest.test_create_autospec_keyword_arguments..FoorENrrrrrrrrr3sr33rc)r%rr$r)rr3ryrrr&test_create_autospec_keyword_argumentss z8SpecSignatureTest.test_create_autospec_keyword_argumentscCsVdddd}t|}|d|d|t|dd|ddd|jddddS)NrcSsdSrrrUrrrr#rzJSpecSignatureTest.test_create_autospec_keyword_only_arguments..foorCrDrE)rr&rr)rr#ryrrr+test_create_autospec_keyword_only_argumentss  z=SpecSignatureTest.test_create_autospec_keyword_only_argumentscCs6t}dd}||_t|}|d|jddS)NcSsdSrrrcrrrrrz@SpecSignatureTest.test_function_as_instance_attribute..frd)rrrr&)robjrr(rrr#test_function_as_instance_attributes  z5SpecSignatureTest.test_function_as_instance_attributecCsvtg}|d|jd|tt|dGdddt}t|}|jd|jjd|tt|jddS)Nr#c@seZdZgZdS)z0SpecSignatureTest.test_spec_as_list..FooNrrrrrr3sr3rE)rappendr&rrrr%r#)rr(r3rrrtest_spec_as_lists   z#SpecSignatureTest.test_spec_as_listcCs6Gdddt}t|}||jfD]}||q"dS)Nc@seZdZeZdS)z.SpecSignatureTest.test_attributes..SubNrrrrattrrrrrSubsr)rrrr)rrZsub_mockr(rrrtest_attributessz!SpecSignatureTest.test_attributesc szGdddtGfdddt}t|}|d|t|W5QRX|t|ddW5QRXdS)Nc@seZdZddZdS)zVSpecSignatureTest.test_spec_has_descriptor_returning_function..CrazyDescriptorcSs|dkrddSdS)NcSsdSrrrqrrrrzpSpecSignatureTest.test_spec_has_descriptor_returning_function..CrazyDescriptor.__get__..r)rrZtype_rrr__get__sz^SpecSignatureTest.test_spec_has_descriptor_returning_function..CrazyDescriptor.__get__NrrrrrrrrCrazyDescriptorsrcseZdZZdS)zNSpecSignatureTest.test_spec_has_descriptor_returning_function..MyClassN)rrr some_attrrrrrMyClasssrrCrD)r%rrrr)rrr(rrr+test_spec_has_descriptor_returning_functions   z=SpecSignatureTest.test_spec_has_descriptor_returning_functionc sGfdddt}|t |jW5QRX||ddt|}|d|t|W5QRX|t|ddW5QRXdS)Ncs&eZdZfddZddZZS)zISpecSignatureTest.test_spec_has_function_not_in_bases..CrazyClasscst|dgS)Ncrazy)super__dir__r) CrazyClass __class__rrrszQSpecSignatureTest.test_spec_has_function_not_in_bases..CrazyClass.__dir__cSs|dkrddSt|dS)NrcSs|SrrrqrrrrrzgSpecSignatureTest.test_spec_has_function_not_in_bases..CrazyClass.__getattr__..r)ritemrrr __getattr__szUSpecSignatureTest.test_spec_has_function_not_in_bases..CrazyClass.__getattr__)rrrrr __classcell__rr)rrrsr*rCrD)r%rrr0r$rrr)rinstr(rrr#test_spec_has_function_not_in_basess     z5SpecSignatureTest.test_spec_has_function_not_in_basescCsGdddt}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..BuiltinSubclasscSsdSrr)rargrrrr5rzKSpecSignatureTest.test_builtin_functions_types..BuiltinSubclass.barN)rrrr5sortedrrrrrBuiltinSubclasssrrEr#r5rCrD) listrrr&rrrr5rrrpoprrr(rrrtest_builtin_functions_types s     z.SpecSignatureTest.test_builtin_functions_typescCsGdddt}t|}|dd||dtddttdg}||j||jdd|j|jd| tjddtjtjdg||j|dS)Nc@seZdZeZdS)z0SpecSignatureTest.test_method_calls..SubNrrrrrr*srrCrDrE) rrrrrrr$rjrextend)rrr(r:rrrtest_method_calls)s     z#SpecSignatureTest.test_method_callscCs|Gdddt}t|}|t|g|tt||tt|j|t|g||dt||jdtdS)Nc@seZdZiZdS)z=SpecSignatureTest.test_magic_methods..BuiltinSubclassN)rrrrrrrrr@srr#) rrr$rrr_rassertIsInstancerrrrrtest_magic_methods?sz$SpecSignatureTest.test_magic_methodscCs`Gdddt}||fD]@}t|dd}|||tt|dd|tt|jddqdS)Nc@seZdZeZdS)z,SpecSignatureTest.test_spec_set..SubNrrrrrrNsrT)Zspec_setr#r5)rrrrrsetattrr)rrspecr(rrr test_spec_setMs   zSpecSignatureTest.test_spec_setcCsGdddt}Gddd|}Gdddt|}||||||fD]@}t|}|dd|jdd|d d |jd d qHdS) Nc@s$eZdZeddZeddZdS)z/SpecSignatureTest.test_descriptors..FoocSsdSrr)clsrrrrrr[sz1SpecSignatureTest.test_descriptors..Foo.fcSsdSrrrUrrrg]sz1SpecSignatureTest.test_descriptors..Foo.gN)rrr classmethodr staticmethodrrrrrr3Zs r3c@s eZdZdS)z/SpecSignatureTest.test_descriptors..BarNrrrrrBar`src@s eZdZdS)z/SpecSignatureTest.test_descriptors..BazNrrrrrBazbsrrCrDrErG)r%rrrassert_called_once_withr)rr3rrrr(rrrtest_descriptorsYs  z"SpecSignatureTest.test_descriptorscCsGdddt}||_t|}|||jj||j||jttjg| |j |j | |j |j |j |t|j j jdS)Nc@seZdZddZdZeZdS)z+SpecSignatureTest.test_recursive..AcSsdSrrrrrrrorz-SpecSignatureTest.test_recursive..A.az foo bar bazN)rrrrr#r5rrrrAnsr)r%Brr\Zcalledrr$rjrZassertIsr#r5 assertIsNotlowerrrr&)rrr(rrrtest_recursivems  z SpecSignatureTest.test_recursivecCs^Gdddt}t|}|||||fD]L}|jdd|jjdd|jd|t|jdd|tt|dq0t|}|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..FoocSsdSrr)rrrrrrrrzBSpecSignatureTest.test_spec_inheritance_for_classes..Foo.ac@seZdZddZdS)zDSpecSignatureTest.test_spec_inheritance_for_classes..Foo.BarcSsdSrr)ryrrrrrzFSpecSignatureTest.test_spec_inheritance_for_classes..Foo.Bar.fNrrrrrrrrrsrN)rrrrr%rrrrrr3sr3rurqr#r5rrf)rr) r%rrrr&rrrrrr)rr3Z class_mockZ this_mockZ instance_mockrrr!test_spec_inheritance_for_classess0       z3SpecSignatureTest.test_spec_inheritance_for_classescCsGdddt}||_t|}|}|tt|d|}|tt|dt|}|tt|d|t||}|tt|ddS)Nc@seZdZdZdS)z+SpecSignatureTest.test_inherit..FoorENrrrrrr3sr3r)r%r3rrrrr)rr3r(instanceZ attr_instanceZ call_resultrrr test_inherits  zSpecSignatureTest.test_inheritcCstdtttdtttitttgtttttttdtttdtttdtddS)NrCr#g?y?FT)rr_r+rVrsetfloatcomplexrrrr test_builtinss  zSpecSignatureTest.test_builtinscCsdd}t|}|t||dd|dd|jddd|jddd||_t|}|t|j|dd|jdd|jjddddS) NcSsdSrrrUrrrrrz*SpecSignatureTest.test_function..frCrDrrUrErG)rrrr&rrrr(rrr test_functions    zSpecSignatureTest.test_functioncsGdddtGfdddt}||dddt||tfdd |ddjj|tfd d j}|j |j fdS) Nc@seZdZdddZdS)z;SpecSignatureTest.test_skip_attributeerrors..RaiserNcSs|dkrtddS)Nz$Can only be accessed via an instancer)rrtyperrrrszCSpecSignatureTest.test_skip_attributeerrors..Raiser.__get__)NrrrrrRaisersrcseZdZZeddZdS)z@SpecSignatureTest.test_skip_attributeerrors..RaiserClasscSs||SrrrUrrrexistingszISpecSignatureTest.test_skip_attributeerrors..RaiserClass.existingN)rrrraiserrrr)rrr RaiserClasssrrCrDrEcsdddS)NrCrDrE)rrqsrrrrz=SpecSignatureTest.test_skip_attributeerrors..csjSr)Z nonexistingrrrrrr) r%r$rrrrrrrr#r5)rrrr)rrrtest_skip_attributeerrorssz+SpecSignatureTest.test_skip_attributeerrorscCsGdddt}t|}|t||d|d|jdd|t|jd|dd|dd|jddd|jt|jddddS) Nc@seZdZdddZdS)z3SpecSignatureTest.test_signature_class..FoorEcSsdSrrrrrr__init__rz.Foo.__init__N)rErrrrrrrrr3sr3rCrcrDrGrurU)r%rrrrrr&)rr3r(rrrtest_signature_classs     z&SpecSignatureTest.test_signature_classcCsGdddt}t|dS)Nc@s eZdZdS)z6SpecSignatureTest.test_class_with_no_init..FooNrrrrrr3sr3)r%r)rr3rrrtest_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..CallablecSsdSrr)rrrrrrrrrzDSpecSignatureTest.test_signature_callable..Callable.__init__cSsdSrrrrrr__call__rzDSpecSignatureTest.test_signature_callable..Callable.__call__N)rrrrrrrrrCallablesrrCrDrrrrrc)r%rrrrr&)rrr(rrrrtest_signature_callables(            z)SpecSignatureTest.test_signature_callablecCsvGdddt}t|}|}||t|d|t||t|dt|}|t||t|ddS)Nc@seZdZddZdS)zASpecSignatureTest.test_signature_noncallable..NonCallablecSsdSrrrrrrr8szJSpecSignatureTest.test_signature_noncallable..NonCallable.__init__Nrrrrr NonCallable7srr)r%rrrr)rrr(rrrrtest_signature_noncallable6s   z,SpecSignatureTest.test_signature_noncallablecCsDGdddt}t|}|j}||td||jdS)Nc@seZdZdZdS)z8SpecSignatureTest.test_create_autospec_none..FooN)rrrr5rrrrr3Hsr3)r%rr5assertNotIsInstancerr#r)rr3r(Znonerrrtest_create_autospec_noneGs z+SpecSignatureTest.test_create_autospec_nonecCsfGdddt}t|}|d|jd|jjdd|jdd|jd|jjdddS)Nc@seZdZddZdS)zMSpecSignatureTest.test_autospec_functions_with_self_in_odd_place..FoocSsdSrr)rrrrrrUrzOSpecSignatureTest.test_autospec_functions_with_self_in_odd_place..Foo.fNrrrrrr3Tsr3 r)r%rrr&)rr3rrrr.test_autospec_functions_with_self_in_odd_placeSs    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 ||_dSr)r`)rr`rrrrbszLSpecSignatureTest.test_autospec_data_descriptor..Descriptor.__init__NcSs|Srr)rrrrrrreszKSpecSignatureTest.test_autospec_data_descriptor..Descriptor.__get__cSsdSrr)rrr`rrr__set__hrzKSpecSignatureTest.test_autospec_data_descriptor..Descriptor.__set__)N)rrrrrrrrrr Descriptoras rc@s eZdZdS)zCSpecSignatureTest.test_autospec_data_descriptor..MyPropertyNrrrrr MyPropertyjsrcs2eZdZdgZeddZddZdZdS)z.FooslotcSsdSrrrrrrproppszASpecSignatureTest.test_autospec_data_descriptor..Foo.propcSsdSrrrrrrsubpropsszDSpecSignatureTest.test_autospec_data_descriptor..Foo.subproprN)rrr __slots__propertyrrdescr)rrrrr3ms   r3csH|t|ddd|ddd|ddd|jddddS)NrCrDrErGrurf)rrabcr)Z mock_attrrrrcheck_data_descriptorzs   zNSpecSignatureTest.test_autospec_data_descriptor..check_data_descriptor)r%rrrrrr)rr3r#rr)rrrrtest_autospec_data_descriptor`s     z/SpecSignatureTest.test_autospec_data_descriptorcCs\ttjt}||tt|}||||ddd|ddddS)NrGrurf) types MethodTypetimectimerr+rrr6)rZmethZmockedrrr'test_autospec_on_bound_builtin_functions z9SpecSignatureTest.test_autospec_on_bound_builtin_functioncCs0Gddd}|}t|}|t|ddS)Nc@seZdZddZdS)zESpecSignatureTest.test_autospec_getattr_partial_function..FoocSstdd|S)NcSs|Srr)namerrrrrzcSpecSignatureTest.test_autospec_getattr_partial_function..Foo.__getattr__..r )rZ attributerrrrszQSpecSignatureTest.test_autospec_getattr_partial_function..Foo.__getattr__N)rrrrrrrrr3sr3r)rr\hasattr)rr3proxyZautospecrrr&test_autospec_getattr_partial_functionsz8SpecSignatureTest.test_autospec_getattr_partial_functioncCspdd}t|}|dd|ddd|t|t|||jtddtdddg|t|ddS)NcSsdSrrrrrrmyfuncrz=SpecSignatureTest.test_spec_inspect_signature..myfuncrCrDr)rr$inspect signaturer8rrr)rr r(rrrtest_spec_inspect_signatures   z-SpecSignatureTest.test_spec_inspect_signaturecCsd ttttddd}||ddddd t|}|dddd|ddd|t|t|||jtddddtdddg|t|d|jt|dddd ddS) Nr)rrcreturncSs |||Srr)rrr rrrr#szFSpecSignatureTest.test_spec_inspect_signature_annotations..foorCrDrE)r rfrG)r) r_r$rr r r8rrr)rr#r(rrr'test_spec_inspect_signature_annotationss $z9SpecSignatureTest.test_spec_inspect_signature_annotationscCs"dd}t|}||jddS)NcSsdS)NZnoperrrrrrrz>SpecSignatureTest.test_spec_function_no_name..Zfuncopy)rr$r)rfuncr(rrrtest_spec_function_no_namesz,SpecSignatureTest.test_spec_function_no_namec CsRdd}t|}|d|tdg|t|tdgW5QRXdS)NcSsdSrrrcrrrrrz@SpecSignatureTest.test_spec_function_assert_has_calls..frCrD)rZassert_has_callsrrrrrrr#test_spec_function_assert_has_callss  z5SpecSignatureTest.test_spec_function_assert_has_callsc CsFdd}t|}|d|d|t|dW5QRXdS)NcSsdSrrrcrrrrrz?SpecSignatureTest.test_spec_function_assert_any_call..frCrD)rZassert_any_callrrrrrr"test_spec_function_assert_any_calls   z4SpecSignatureTest.test_spec_function_assert_any_callcCsvdd}t}t||d}|dd||jtdg||jtdg|||jg||jgdS)NcSsdSrrrcrrrrrz:SpecSignatureTest.test_spec_function_reset_mock..frrCrD)rrr$r8rr6)rrrvr(rrrtest_spec_function_reset_mocks  z/SpecSignatureTest.test_spec_function_reset_mockN))rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrfsL      &  ,     rc@s,eZdZddZddZddZddZd S) TestCallListcCst}||jt|dd|dd|dd|ddtddtddtddtddfD]}|||jq`tddtddg}|||jtddtddg}|||jtddtddg}|||jtddg}|||j|td|j|tdg|jdS) NrCrDrErcrGrfrri)rrrgrrrYZ assertNotIn)rr(rJZcallsrrr!test_args_list_contains_call_lists$    ( z.TestCallList.test_args_list_contains_call_listcCsJt}|dd|jdd|jjdddd}|t|j|dS) NrCrDrErcriZdog)catzU[call(1, 2), call.foo(a=3), call.foo.bar(), call.foo.bar().baz('fish', cat='dog')])rr#r5r@r$r+r8)rr(r:rrrtest_call_list_strs  zTestCallList.test_call_list_strcCstdttd}|}z^tj|t}|j|| |j t t gd|_| |j t t t dgW5|XdS)Nz%s.SomeClass.one)Z new_callablerE) r rr rstoprrrr&r$r8r)rrr(rrrrtest_propertymocks zTestCallList.test_propertymockcCs@t}t}|t|_|j}|||t||tdSr)rr rr#rrr)rryrZreturnedrrrtest_propertymock_returnvalue#s  z*TestCallList.test_propertymock_returnvalueN)rrrrrrrrrrrrsrc@s<eZdZddZddZddZddZd d Zd d Zd S)TestCallablePredicatecCs(ttttttfD]}|t|qdSr)r+bytesr_rtuplerr]r )rrrrr test_type0szTestCallablePredicate.test_typecCs&Gddd}|}|t|dS)Nc@seZdZddZdS)z>TestCallablePredicate.test_call_magic_method..CallablecSsdSrrrrrrr6rzGTestCallablePredicate.test_call_magic_method..Callable.__call__N)rrrrrrrrr5sr)r]r )rrrrrrtest_call_magic_method4sz,TestCallablePredicate.test_call_magic_methodcCs"Gddd}|t|jdS)Nc@seZdZeddZdS)zATestCallablePredicate.test_staticmethod..WithStaticMethodcSsdSrrrrrr staticfunc<szLTestCallablePredicate.test_staticmethod..WithStaticMethod.staticfuncN)rrrrr"rrrrWithStaticMethod;sr#)r]r r")rr#rrrtest_staticmethod:sz'TestCallablePredicate.test_staticmethodcCs"Gddd}|t|jdS)Nc@seZdZedZdS)zMTestCallablePredicate.test_non_callable_staticmethod..BadStaticMethodN)rrrr not_callablerrrrBadStaticMethodAsr&r\r r%)rr&rrrtest_non_callable_staticmethod@sz4TestCallablePredicate.test_non_callable_staticmethodcCs"Gddd}|t|jdS)Nc@seZdZeddZdS)z?TestCallablePredicate.test_classmethod..WithClassMethodcSsdSrr)rrrr classfuncGszITestCallablePredicate.test_classmethod..WithClassMethod.classfuncN)rrrrr)rrrrWithClassMethodFsr*)r]r r))rr*rrrtest_classmethodEsz&TestCallablePredicate.test_classmethodcCs"Gddd}|t|jdS)Nc@seZdZedZdS)zKTestCallablePredicate.test_non_callable_classmethod..BadClassMethodN)rrrrr%rrrrBadClassMethodLsr,r')rr,rrrtest_non_callable_classmethodKsz3TestCallablePredicate.test_non_callable_classmethodN) rrrr r!r$r(r+r-rrrrr.s r__main__)r rrZunittestZ unittest.mockrrrrrrrr r r r functoolsrr%rZTestCaser r<rrrrmainrrrrs*0  0#G#