o =?hp@sddlZddlZddlZddlZddlmZmZmZmZm Z m Z m Z m Z m Z mZddlmZddlmZGdddeZGdddejZGd d d ejZGd d d ejZGd ddejZGdddejZedkrsedSdS)N) call_Callcreate_autospec MagicMockMockANY _CallListpatch PropertyMock _callable)datetimepartialc@s&eZdZddZddZdddZdS) SomeClasscCdSNselfabrrI/opt/alt/python310/lib64/python3.10/unittest/test/testmock/testhelpers.pyonez SomeClass.onecCrrrrrrrtworz SomeClass.twoNcCrrrrrrrrthreerzSomeClass.threer)__name__ __module__ __qualname__rrrrrrrrsrc@<eZdZddZddZddZddZd d Zd d Zd 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]C}|||||d|j|||d|j||dttttdtjtttdttjttdg}|||j ||j |qdS)Nc@eZdZddZddZdS)z9AnyTest.test_any_mock_calls_comparison_order..FoocSrrrrotherrrr__eq__1rz@AnyTest.test_any_mock_calls_comparison_order..Foo.__eq__cSrrrr2rrr__ne__2rz@AnyTest.test_any_mock_calls_comparison_order..Foo.__ne__N)rrr r4r5rrrrFoo0 r6r%bar)ZzingaZalpha)Za1Zz99) rr'r r/ reset_mockmethodrrr& mock_calls)rr*r6dexpectedrrr$test_any_mock_calls_comparison_order.s z,AnyTest.test_any_mock_calls_comparison_ordercCsNGddd}t}||d|ttdg|td|tddS)Nc@eZdZddZdS)z%AnyTest.test_any_no_spec..FoocSrrrr2rrrr4Frz,AnyTest.test_any_no_spec..Foo.__eq__Nrrr r4rrrrr6E r6rassert_has_callsrrr(assert_any_callrr6r*rrrtest_any_no_specCs   zAnyTest.test_any_no_speccCsRGddd}t|d}||d|ttdg|td|tddS)Nc@r@)z*AnyTest.test_any_and_spec_set..FoocSrrrr2rrrr4Qrz1AnyTest.test_any_and_spec_set..Foo.__eq__NrArrrrr6PrBr6)specrCrDrGrrrtest_any_and_spec_setNs    zAnyTest.test_any_and_spec_setN) rrr r+r.r0r?rHrJrrrrr"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)rLrrLrr$r9rbazZspamrC)rLrQrQ)rCrR)r%rT)rLrTrT)r9rTr9rrSrr&assertNotEqual)rkallrrrtest_call_with_call\s<zCallTest.test_call_with_callcCsjt}||d||d||d||d||ddif||dif||ifdS)Nrr$rMr%rr%)rr&rargsrrrtest_empty__Calls    zCallTest.test_empty__CallcCstddif}||d||d||ddif||dif||d||d||if||d||d||difdS) Nr%rr$rZrM)r9rNr9rVr[rrrtest_named_empty_calls      zCallTest.test_named_empty_callcCsftdif}||d||d||ddif||dif||jd||jidS)NrQrPr%rQr%)rr&r\kwargsr[rrrtest_call_with_argss   zCallTest.test_call_with_argscCshtddif}||d||ddif||jd||ji||d||difdS)Nr%rQr_rP)rr&r\r`rWr[rrrtest_named_call_with_argss  z"CallTest.test_named_call_with_argsc Cstdtdddf}||tdddf||dtdddf||ddtdddf||dtdddf||jd||jtddddS)NrrSrUrrr%)rdictr&r\r`r[rrrtest_call_with_kwargsszCallTest.test_call_with_kwargsc Cstddtdddf}||dtdddf||ddtdddf||jd||jtddd||tdddf||dtdddfdS)Nr%rrSrUrc)rrdr&r\r`rWr[rrrtest_named_call_with_kwargssz$CallTest.test_named_call_with_kwargscCsNtdif}||tddd|tddd||tddd|gdS)NrQrCrRrS)rr&rassertInr[rrr#test_call_with_args_call_empty_names z,CallTest.test_call_with_args_call_empty_namecCsR|tdtdd|tdtdddk|tdiftdddkdS)NrPrCrRrSrCrR)rWrr assertFalse assertTruerrrr test_call_nes"zCallTest.test_call_necCs8td}dd|tfD]}||||||kq dS)NrPrC)rintrWrj)rrXvaluerrrtest_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()rQrrzcall(1, 2, 3, a='b')r9zcall.bar(1, 2, 3, a='b')rrCzcall(1)thing)Zzzzcall(zz='thing')z call().foorSrzcall().foo.bar().bingrRzcall().foo(1, 2, a=3)zcall()()z call()(2)zcall()().bar().baz.beep(1)) r&r,rrr-r%r9bingrObeeprrrrr.s6zCallTest.test_reprcCs||tddif|tddddddddddft}|d d d|dd d ||jtd d dtdd d gdS) NrLrr%r9rSrU)rrr8rCrRrc)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.bazrrwrRrSrtrc)r&rr%r9rOr method_callsr)rrrtest_attribute_call s zCallTest.test_attribute_callc Cstddjddd}||ddtddft}|ddddd||jtddddd||jtddd||jtdddddg||j tdddddgt}|dj j d dtdj j d d}||j d |||j | dS) NrCrRrSrUrqz ().foo().barrSrcrt) rr%r9r&rdrZ call_argsrWrur<rOrs call_list)rresultr*Z last_callrrrtest_extended_callszCallTest.test_extended_callcCs@tddj}tddj}|||||||||dSNrCxrR)rr%r&rWrrrrtest_extended_not_equal*s    z CallTest.test_extended_not_equalcCsHtddj}tddj}|||||||||dSr)rr%r9r&rWrrrrtest_nested_calls_not_equal2s   z$CallTest.test_nested_calls_not_equalcCst}|d|td|jt}|dd|tdd|jt}|ddd|tddd|jt}t|dddjj ddtdddjj dd }|||jdS)NrCrRrSrU) rr&rr|r<r;rmr%r9rO__int__)rr*rXrrrtest_call_list:s"$$zCallTest.test_call_listcCs>|ttt}t|||jtg|tg|jdSr)r&rrrrmr<rmrrr test_call_anyOs zCallTest.test_call_anycCshtdddifdd}|t|d||dd||ddditdddif}|||dS) NrirrST)rrRrrC)rr&len)rr\Z other_argsrrrtest_two_args_callXs zCallTest.test_two_args_callcCsJ|tdddd|tddd|tdddifdddS) Nrr%r)r9ZbarzrLrZhelloZworld)r&rrrrrtest_call_with_nameas zCallTest.test_call_with_namec Cst}|d||jtttdtgt}d|d<||jtttddgt}t|||jtttgdS)Nr9rC) rr%r&r<r __getitem__ __setitem__iter__iter__rrrrtest_dunder_callfs$*zCallTest.test_dunder_callN)rrr rYr]r^rarbrerfrhrlror.rvryr~rrrrrrrrrrrrKZs,%         rKc@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%rCrRrSrUrq) assertRaisesAttributeErrorgetattrrr(AssertionError TypeErrorrrr)rrr_check_someclass_mock}s.       z'SpecSignatureTest._check_someclass_mockcCs*tt}||tt}||dSr)rrrr)rrr test_basics  zSpecSignatureTest.test_basiccCsPdd}t|dd}||dGdddt}t|dd}||ddS)NcSrrrrrrrfrz>SpecSignatureTest.test_create_autospec_return_value..fr% return_valuec@ eZdZdS)z@SpecSignatureTest.test_create_autospec_return_value..FooNrrr rrrrr6r6)rr&r')rrr*r6rrr!test_create_autospec_return_values   z3SpecSignatureTest.test_create_autospec_return_valuecCs,tt}t||||jjddS)Nr)rrmr:r&rZ call_countrrrrtest_autospec_reset_mocksz*SpecSignatureTest.test_autospec_reset_mockcCs>Gdddt}t|d}|}|d|ddS)Nc@r@)z;SpecSignatureTest.test_mocking_unbound_methods..FoocSrrr)rr%rrrr%rz?SpecSignatureTest.test_mocking_unbound_methods..Foo.fooNrrr r%rrrrr6rBr6r%rC)r'r startr%r()rr6pZmock_foorrrtest_mocking_unbound_methodss   z.SpecSignatureTest.test_mocking_unbound_methodscCs.Gdddt}t|dd}||jddS)Nc@eZdZdZdS)zESpecSignatureTest.test_create_autospec_keyword_arguments..FoorSNrrr rrrrrr6r63rq)r'rr&r)rr6rrrr&test_create_autospec_keyword_argumentss z8SpecSignatureTest.test_create_autospec_keyword_argumentscCsVdddd}t|}|d|d|t|dd|ddd|jddddS)NrcSrrrrcrrrr%rzJSpecSignatureTest.test_create_autospec_keyword_only_arguments..foorCrRrS)rr(rr)rr%rrrr+test_create_autospec_keyword_only_argumentss  z=SpecSignatureTest.test_create_autospec_keyword_only_argumentscCs6t}dd}||_t|}|d|jddS)NcSrrrrqrrrrrz@SpecSignatureTest.test_function_as_instance_attribute..frr)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..FooNrrrrrr6rr6rS)rappendr(rrrr'r%)rr*r6rrrtest_spec_as_lists   z#SpecSignatureTest.test_spec_as_listcCs6Gdddt}t|}||jfD]}||qdS)Nc@eZdZeZdS)z.SpecSignatureTest.test_attributes..SubNrrr rattrrrrrSub r)rrrr)rrZsub_mockr*rrrtest_attributess  z!SpecSignatureTest.test_attributescsGdddtGfdddt}t|}|d|t |Wdn1s/wY|t|ddWddS1sKwYdS)Nc@r@)zVSpecSignatureTest.test_spec_has_descriptor_returning_function..CrazyDescriptorcSs|durddSdS)NcSrrrrrrrrzpSpecSignatureTest.test_spec_has_descriptor_returning_function..CrazyDescriptor.__get__..r)rrZtype_rrr__get__z^SpecSignatureTest.test_spec_has_descriptor_returning_function..CrazyDescriptor.__get__Nrrr rrrrrCrazyDescriptor rcseZdZZdS)zNSpecSignatureTest.test_spec_has_descriptor_returning_function..MyClassN)rrr some_attrrrrrMyClasss rrCrR)r'rrrr)rrr*rrr+test_spec_has_descriptor_returning_functions    "z=SpecSignatureTest.test_spec_has_descriptor_returning_functioncsGfdddt}|t |jWdn1s wY||ddt|}|d|t |Wdn1sKwY|t|ddWddS1sgwYdS)Ncs&eZdZfddZddZZS)zISpecSignatureTest.test_spec_has_function_not_in_bases..CrazyClasscst|dgS)Ncrazy)super__dir__r) CrazyClass __class__rrr szQSpecSignatureTest.test_spec_has_function_not_in_bases..CrazyClass.__dir__cSs|dkrddSt|)NrcS|SrrrrrrrrzgSpecSignatureTest.test_spec_has_function_not_in_bases..CrazyClass.__getattr__..r)ritemrrr __getattr__szUSpecSignatureTest.test_spec_has_function_not_in_bases..CrazyClass.__getattr__)rrr rr __classcell__rr)rrr sr*rCrR)r'rrr3r&rrr)rinstr*rrr#test_spec_has_function_not_in_bases s     "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..BuiltinSubclasscSrrr)rargrrrr9'rzKSpecSignatureTest.test_builtin_functions_types..BuiltinSubclass.barN)rrr r9sortedrrrrrBuiltinSubclass&rrSr%r9rCrR) listrrr(rrrr9rrrpoprrr*rrrtest_builtin_functions_types"s     z.SpecSignatureTest.test_builtin_functions_typescCsGdddt}t|}|dd||dtddttdg}||j||jdd|j|jd| tjddtjtjdg||j|dS)Nc@r)z0SpecSignatureTest.test_method_calls..SubNrrrrrr?rrrCrRrS) rrrrrrr&rxrextend)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)rrr rrrrrrUrrr%) rrr&rrrmrassertIsInstancerrrrrtest_magic_methodsTsz$SpecSignatureTest.test_magic_methodscCs`Gdddt}||fD] }t|dd}|||tt|dd|tt|jddq dS)Nc@r)z,SpecSignatureTest.test_spec_set..SubNrrrrrrcrrT)Zspec_setr%r9)rrrrrsetattrr)rrrIr*rrr test_spec_setbs  zSpecSignatureTest.test_spec_setcCsGdddt}Gddd|}Gdddt|}||||||fD] }t|}|dd|jdd|d d |jd d q$dS) Nc@s$eZdZeddZeddZdS)z/SpecSignatureTest.test_descriptors..FoocSrrr)clsrrrrrrpz1SpecSignatureTest.test_descriptors..Foo.fcSrrrrcrrrgrrz1SpecSignatureTest.test_descriptors..Foo.gN)rrr classmethodr staticmethodrrrrrr6os  r6c@r)z/SpecSignatureTest.test_descriptors..BarNrrrrrBaru rc@r)z/SpecSignatureTest.test_descriptors..BazNrrrrrBazwrrrCrRrSrU)r'rrrassert_called_once_withr)rr6rrrIr*rrrtest_descriptorsns  z"SpecSignatureTest.test_descriptorscCsGdddt}||_t|}|||jj||j||jttjg| |j |j | |j |j |j |t|j j jdS)Nc@seZdZddZdZeZdS)z+SpecSignatureTest.test_recursive..AcSrrrrrrrrrz-SpecSignatureTest.test_recursive..A.az foo bar bazN)rrr rr%r9rrrrArr)r'BrrjZcalledrr&rxrZassertIsr%r9 assertIsNotlowerrrr()rrr*rrrtest_recursives  z SpecSignatureTest.test_recursivecCs^Gdddt}t|}|||||fD]&}|jdd|jjdd|jd|t|jdd|tt|dqt|}|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..FoocSrrr)rrrrrrrzBSpecSignatureTest.test_spec_inheritance_for_classes..Foo.ac@r@)zDSpecSignatureTest.test_spec_inheritance_for_classes..Foo.BarcSrrr)ryrrrrrzFSpecSignatureTest.test_spec_inheritance_for_classes..Foo.Bar.fNrrr rrrrrrrBrN)rrr rr'rrrrrr6sr6rrr%r9rrt)rr) r'rrrr(rrrrrr)rr6Z 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@r)z+SpecSignatureTest.test_inherit..FoorSNrrrrrr6rr6r)r'r6rrrrr)rr6r*instanceZ attr_instanceZ call_resultrrr test_inherits  zSpecSignatureTest.test_inheritcCstdtttdtttitttgtttttttdtttdtttdtddS)NrCr%g?y?FT)rrmr-rdrsetfloatcomplexrrrr test_builtinss   zSpecSignatureTest.test_builtinscCsdd}t|}|t||dd|dd|jddd|jddd||_t|}|t|j|dd|jdd|jjddddS) NcSrrrrcrrrrrz*SpecSignatureTest.test_function..frCrRrrcrSrU)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|durtddS)Nz$Can only be accessed via an instancer)rrtyperrrrrzCSpecSignatureTest.test_skip_attributeerrors..Raiser.__get__rrrrrrRaiserrcseZdZZeddZdS)z@SpecSignatureTest.test_skip_attributeerrors..RaiserClasscSs||SrrrcrrrexistingszISpecSignatureTest.test_skip_attributeerrors..RaiserClass.existingN)rrr raiserrrr)rrr RaiserClasssrrCrRrScsdddS)NrCrRrS)rrsrrr sz=SpecSignatureTest.test_skip_attributeerrors..csjSr)Z nonexistingrrrrrs) r'r&rrrrrrrr%r9)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..FoorScSrrrrrrr__init__rz.Foo.__init__Nrzrrr rrrrrr6rr6rCrqrRrUrrc)r'rrrrrr(rGrrrtest_signature_classs     z&SpecSignatureTest.test_signature_classcCsGdddt}t|dS)Nc@r)z6SpecSignatureTest.test_class_with_no_init..FooNrrrrrr6*rr6)r'r)rr6rrrtest_class_with_no_init's z)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@r1)z;SpecSignatureTest.test_signature_callable..CallablecSrrr)rrrrrrr1rzDSpecSignatureTest.test_signature_callable..Callable.__init__cSrrrrrrr__call__2rzDSpecSignatureTest.test_signature_callable..Callable.__call__N)rrr rrrrrrCallable0r7rrCrRrrrrq)r'rrrrr()rrr*rrrrtest_signature_callable/s(            z)SpecSignatureTest.test_signature_callablecCsvGdddt}t|}|}||t|d|t||t|dt|}|t||t|ddS)Nc@r@)zASpecSignatureTest.test_signature_noncallable..NonCallablecSrrrrrrrrMrzJSpecSignatureTest.test_signature_noncallable..NonCallable.__init__Nrrrrr NonCallableLrBr r)r'rrrr)rr r*rrrrtest_signature_noncallableKs   z,SpecSignatureTest.test_signature_noncallablecCsDGdddt}t|}|j}||td||jdS)Nc@seZdZdZdS)z8SpecSignatureTest.test_create_autospec_none..FooN)rrr r9rrrrr6]rr6)r'rr9assertNotIsInstancerr%r)rr6r*Znonerrrtest_create_autospec_none\s z+SpecSignatureTest.test_create_autospec_nonecCsfGdddt}t|}|d|jd|jjdd|jdd|jd|jjdddS)Nc@r@)zMSpecSignatureTest.test_autospec_functions_with_self_in_odd_place..FoocSrrr)rrrrrrjrzOSpecSignatureTest.test_autospec_functions_with_self_in_odd_place..Foo.fNrrrrrr6irBr6 r)r'rrr()rr6rrrr.test_autospec_functions_with_self_in_odd_placehs    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)rn)rrnrrrrws zLSpecSignatureTest.test_autospec_data_descriptor..Descriptor.__init__NcSrrr)rrrrrrrzrzKSpecSignatureTest.test_autospec_data_descriptor..Descriptor.__get__cSrrr)rrrnrrr__set__}rzKSpecSignatureTest.test_autospec_data_descriptor..Descriptor.__set__r)rrr rrrrrrr Descriptorvs  rc@r)zCSpecSignatureTest.test_autospec_data_descriptor..MyPropertyNrrrrr MyPropertyrrcs2eZdZdgZeddZddZdZdS)z.FooslotcSrrrrrrrproprzASpecSignatureTest.test_autospec_data_descriptor..Foo.propcSrrrrrrrsubproprzDSpecSignatureTest.test_autospec_data_descriptor..Foo.subproprN)rrr __slots__propertyrrdescr)rrrrr6s   r6csH|t|ddd|ddd|ddd|jddddS)NrCrRrSrUrrt)rrabcr)Z mock_attrrrrcheck_data_descriptors  zNSpecSignatureTest.test_autospec_data_descriptor..check_data_descriptor)r'rrrrrr)rr6r%rr)rrrrtest_autospec_data_descriptorus    z/SpecSignatureTest.test_autospec_data_descriptorcCs\ttjt}||tt|}||||ddd|ddddS)NrUrrt) types MethodTypetimectimerr-rrr:)rZmethZmockedrrr'test_autospec_on_bound_builtin_functions z9SpecSignatureTest.test_autospec_on_bound_builtin_functioncCs0Gddd}|}t|}|t|ddS)Nc@r@)zESpecSignatureTest.test_autospec_getattr_partial_function..FoocSstdd|S)NcSrrr)namerrrrrzcSpecSignatureTest.test_autospec_getattr_partial_function..Foo.__getattr__..r )rZ attributerrrrszQSpecSignatureTest.test_autospec_getattr_partial_function..Foo.__getattr__N)rrr rrrrrr6rr6r)rrjhasattr)rr6proxyZautospecrrr&test_autospec_getattr_partial_functionsz8SpecSignatureTest.test_autospec_getattr_partial_functioncCspdd}t|}|dd|ddd|t|t|||jtddtdddg|t|ddS)NcSrrrrrrrmyfuncrz=SpecSignatureTest.test_spec_inspect_signature..myfuncrCrRr)rr&inspect signaturer<rrr)rr$r*rrrtest_spec_inspect_signatures   z-SpecSignatureTest.test_spec_inspect_signaturec Csddtdtdtdtfdd}||dd d d d t|}|dd d d |dd d |t|t|||jtdd d d tdd d g|t|d|jt|dd d d d dS)Nr rrcreturncSs |||Srr)rrr(rrrr%s zFSpecSignatureTest.test_spec_inspect_signature_annotations..foorCrRrS)r(rtrU)r ) rmr&rr%r&r<rrr)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_namecCshdd}t|}|d|tdg|t|tdgWddS1s-wYdS)NcSrrrrqrrrrrz@SpecSignatureTest.test_spec_function_assert_has_calls..frCrR)rrErrrrrrr#test_spec_function_assert_has_callss "z5SpecSignatureTest.test_spec_function_assert_has_callscCs\dd}t|}|d|d|t|dWddS1s'wYdS)NcSrrrrqrrrrrz?SpecSignatureTest.test_spec_function_assert_any_call..frCrR)rrFrrrrrr"test_spec_function_assert_any_calls   "z4SpecSignatureTest.test_spec_function_assert_any_callcCsvdd}t}t||d}|dd||jtdg||jtdg|||jg||jgdS)NcSrrrrqrrrrrz:SpecSignatureTest.test_spec_function_reset_mock..frrCrR)rrr&r<rr:)rrZrvr*rrrtest_spec_function_reset_mocks  z/SpecSignatureTest.test_spec_function_reset_mockN))rrr rrrrrrrrrrrrrrrrrrrrrrrrrrr r rrrr#r'r*r,r-r.r/rrrrr{sN      &  ,    rc@s,eZdZddZddZddZddZd S) TestCallListcCst}||jt|dd|dd|dd|ddtddtddtddtddfD] }|||jq0tddtddg}|||jtddtddg}|||jtddtddg}|||jtddg}|||j|td|j|tdg|jdS) NrCrRrSrqrUrtrrw)rrrurrrgZ assertNotIn)rr*rXZcallsrrr!test_args_list_contains_call_lists$    ( z.TestCallList.test_args_list_contains_call_listcCsJt}|dd|jdd|jjdddd}|t|j|dS) NrCrRrSrqrwZdog)catzU[call(1, 2), call.foo(a=3), call.foo.bar(), call.foo.bar().baz('fish', cat='dog')])rr%r9rOr&r-r<)rr*r>rrrtest_call_list_strs  zTestCallList.test_call_list_strcCstdttd}|}z4tj|t}|j|||j t t gd|_||j t t t dgW| dS| w)Nz%s.SomeClass.one)Z new_callablerS) r rr rrrrr(r&r<rstop)rrr*rrrrtest_propertymock&szTestCallList.test_propertymockcCs@t}t}|t|_|j}|||t||tdSr)rr rr%rrr )rrrZreturnedrrrtest_propertymock_returnvalue8s  z*TestCallList.test_propertymock_returnvalueN)rrr r1r3r5r6rrrrr0s  r0c@r!)TestCallablePredicatecCs(ttttttfD] }|t|qdSr)r-bytesrmrtuplerrkr )rrrrr test_typeEszTestCallablePredicate.test_typecCs&Gddd}|}|t|dS)Nc@r@)z>TestCallablePredicate.test_call_magic_method..CallablecSrrrrrrrrKrzGTestCallablePredicate.test_call_magic_method..Callable.__call__N)rrr rrrrrrJrBr)rkr )rrrrrrtest_call_magic_methodIsz,TestCallablePredicate.test_call_magic_methodcC"Gddd}|t|jdS)Nc@eZdZeddZdS)zATestCallablePredicate.test_staticmethod..WithStaticMethodcSrrrrrrr staticfuncQrzLTestCallablePredicate.test_staticmethod..WithStaticMethod.staticfuncN)rrr rr>rrrrWithStaticMethodPr?)rkr r>)rr?rrrtest_staticmethodOz'TestCallablePredicate.test_staticmethodcCr<)Nc@eZdZedZdS)zMTestCallablePredicate.test_non_callable_staticmethod..BadStaticMethodN)rrr r not_callablerrrrBadStaticMethodVrBrErjr rD)rrErrrtest_non_callable_staticmethodUz4TestCallablePredicate.test_non_callable_staticmethodcCr<)Nc@r=)z?TestCallablePredicate.test_classmethod..WithClassMethodcSrrr)rrrr classfunc\rzITestCallablePredicate.test_classmethod..WithClassMethod.classfuncN)rrr rrIrrrrWithClassMethod[r@rJ)rkr rI)rrJrrrtest_classmethodZrBz&TestCallablePredicate.test_classmethodcCr<)Nc@rC)zKTestCallablePredicate.test_non_callable_classmethod..BadClassMethodN)rrr rrDrrrrBadClassMethodarBrLrF)rrLrrrtest_non_callable_classmethod`rHz3TestCallablePredicate.test_non_callable_classmethodN) rrr r:r;rArGrKrMrrrrr7Cs r7__main__)r%rrZunittestZ unittest.mockrrrrrrrr r r r functoolsrr'rZTestCaser"rKrr0r7rmainrrrrs.0  E#G#