B @T0D@sJddlZddlZddlmZmZmZGdddejZedkrFe dS)N)Mock MagicMock_magicsc@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/d0Zed1ejkd2d3d4Zd5d6Z d7d8Z!d9d:Z"d;d<Z#d=d>Z$d?d@Z%dAdBZ&dCS)DTestMockingMagicMethodscCsFt}|t|dt|_|t|d|`|t|ddS)N __getitem__)r assertFalsehasattrr assertTrue)selfmockr L/opt/alt/python37/lib64/python3.7/unittest/test/testmock/testmagicmethods.pytest_deleting_magic_methods s z3TestMockingMagicMethods.test_deleting_magic_methodscsHt`|tfddtd`|tfdddS)NcsdS)Nfoor r )r r r z.rcsdS)Nrr r )r r r rr)rr assertRaises TypeError)r r )r r test_magicmock_delsz*TestMockingMagicMethods.test_magicmock_delcCsdt}dd}||_||j|||d|df||d|df||_||j|dS)NcSs|dfS)Nfishr )r namer r r f#sz=TestMockingMagicMethods.test_magic_method_wrapping..frr)rrZ assertIsNot assertEqualZassertIs)r r rr r r test_magic_method_wrapping!sz2TestMockingMagicMethods.test_magic_method_wrappingcsDt}tttgd|_|t|g|tfdddS)N) return_valuecstS)N)listr )mock2r r r5rzSTestMockingMagicMethods.test_magic_methods_isolated_between_mocks..)riter__iter__rrrr)r Zmock1r )rr )test_magic_methods_isolated_between_mocks/s zATestMockingMagicMethods.test_magic_methods_isolated_between_mockscCs<t}|t|dt|dd|_|t|ddS)NzcSsdS)Nrr )sr r r r;rz3TestMockingMagicMethods.test_repr..r)rrreprid__repr__)r r r r r test_repr8s z!TestMockingMagicMethods.test_reprcCs:t}|t|t|dd|_|t|ddS)NcSsdS)Nrr )r r r r rBrz2TestMockingMagicMethods.test_str..r)rrstrobject__str__)r r r r r test_str?s z TestMockingMagicMethods.test_strcst|tfddfdd}fdd}|t||t|ifdd}fd d }fd d }|_|_|_|tfd ddd<|ddi|ddd=|idS)NcsdS)Nrr r )r r r rIrz;TestMockingMagicMethods.test_dict_methods..cs d=dS)Nrr r )r r r _delJsz7TestMockingMagicMethods.test_dict_methods.._delcs dd<dS)Nrr r )r r r _setLsz7TestMockingMagicMethods.test_dict_methods.._setcs|S)Nr )r r)_dictr r getitemRsz:TestMockingMagicMethods.test_dict_methods..getitemcs ||<dS)Nr )r rvalue)r,r r setitemTsz:TestMockingMagicMethods.test_dict_methods..setitemcs |=dS)Nr )r r)r,r r delitemVsz:TestMockingMagicMethods.test_dict_methods..delitemcsdS)Nrr r )r r r r]rbarr)rrr __setitem__r __delitem__KeyErrorr)r r)r+r-r/r0r )r,r r test_dict_methodsFs&       z)TestMockingMagicMethods.test_dict_methodscst}d_|tfddfdd}|_|d|jd`dd}|t||_d 7|||jd |tfd d|_|d |jd dS)NrcsdS)Nr*r r )r r r rirz6TestMockingMagicMethods.test_numeric..csj|7_|S)N)r.)r other)r r r addksz1TestMockingMagicMethods.test_numeric..addr*cSs |d7}dS)Nr*r )r r r r iaddssz2TestMockingMagicMethods.test_numeric..iadd csdS)Nr*r r )r r r r{r)rr.rr__add__r__iadd____radd__)r originalr7r8r )r r test_numerices$   z$TestMockingMagicMethods.test_numericcst}d_|tfddfdd}|_|d|jd`dd }|t||_d |||jd|tfd d|_|d |jd dS)N csdS)Nr r )r r r rrz7TestMockingMagicMethods.test_division..csj|_|S)N)r.)r r6)r r r truedivsz6TestMockingMagicMethods.test_division..truedivrCr<cSs |d}dS)Nr )r r r r itruedivsz7TestMockingMagicMethods.test_division..itruedivcsdS)NrGr r )r r r rrg?rE)rr.rr __truediv__r __itruediv__ __rtruediv__)r r@rDrFr )r r test_divisions$   z%TestMockingMagicMethods.test_divisioncCs>t}|t|t|dd}||_|t|ddS)NcSsdS)Nr*r )r r r r _hashsz0TestMockingMagicMethods.test_hash.._hashr*)rrhash__hash__)r r rLr r r test_hashs z!TestMockingMagicMethods.test_hashcCs0t}|t|dd|_|t|dS)NcSsdS)NFr )r r r r rrz6TestMockingMagicMethods.test_nonzero..)rr bool__bool__r)r mr r r test_nonzeros z$TestMockingMagicMethods.test_nonzerocCs"t}dd}||_|_|_|_||dk||dk||dk||dk|tdd|tdd|tdd|tdd|td d|td d|td d|td d|td d|tdd|tdd|tdddS)NcSsdS)NTr )r or r r compsz5TestMockingMagicMethods.test_comparison..compr*cSs ttkS)N)rr&r r r r rrz9TestMockingMagicMethods.test_comparison..cSs ttkS)N)r&rr r r r rrcSs ttkS)N)rr r r r rrcSs ttkS)N)rr&r r r r rrcSs ttkS)N)r&rr r r r rrcSs ttkS)N)rr r r r rrcSs ttkS)N)rr&r r r r rrcSs ttkS)N)r&rr r r r rrcSs ttkS)N)rr r r r rrcSs ttkS)N)rr&r r r r rrcSs ttkS)N)r&rr r r r rrcSs ttkS)N)rr r r r rr)r__lt____gt____le____ge__r rr)r r rUr r r test_comparisons&z'TestMockingMagicMethods.test_comparisoncCs(xttfD]}|||kd|||kt|||kd|||kt||tkd||tkddd}||_||dk||dkdd}||_ ||dk||dkqWt}d|j_ ||dkt||dkdd|j _ ||dkt||dkddS) NTFcSs|dkS)Nr*r )r r6r r r eqsz1TestMockingMagicMethods.test_equality..eqr*rEcSs|dkS)Nr*r )r r6r r r nesz1TestMockingMagicMethods.test_equality..ne) rrrassertIsInstancerPr&__eq__r r__ne__r)r r r[r\r r r test_equalitys,z%TestMockingMagicMethods.test_equalitycst|tt|tt|tfdddd_|tddd_|d| ddd_ |t t ddS) NcsdkS)Nrr r )r r r rrz@TestMockingMagicMethods.test_len_contains_iter..cSsdS)Nr9r )r r r r rrr9cSs|dkS)Nr*r )r rTr r r rrr*cSstdS)N foobarbaz)r)r r r r rrra) rrrlenr__len__r __contains__ZassertIn assertNotInrr)r r )r r test_len_contains_iters     z.TestMockingMagicMethods.test_len_contains_itercCst}tdddg|j_|t|dddgdt|d_|t|d|t |xt D]}| t||q^W|t|ddS)NrCr*FrQZ __nonzero__Z __imaginary__) rrrrrrgetattrrrrPrr )r r entryr r r test_magicmocks  z&TestMockingMagicMethods.test_magicmockcCsrt}||tkt||tkt||tkd||tkd|||kd|||kddS)NFT)rr]r&rPr)r r r r r test_magic_mock_equalitysz0TestMockingMagicMethods.test_magic_mock_equalitycCst}|t|d|t|d|t|d|t||t|d|t|g|t |t ||t |t || t||t|d|t|ddS)Nrgy?g?rZ0o1Z0x1)rrintcomplexfloatrer&rbrrMrNr%r'r rPocthex)r r r r r test_magicmock_defaultssz/TestMockingMagicMethods.test_magicmock_defaultscsGdddt}t|d|tfddttgd_|tgGdddt}t|d|tfd dfd d }|t|t|d|tg|t|dS) Nc@seZdZddZdS)zETestMockingMagicMethods.test_magic_methods_and_spec..IterablecSsdS)Nr )r r r r r%szNTestMockingMagicMethods.test_magic_methods_and_spec..Iterable.__iter__N)__name__ __module__ __qualname__rr r r r Iterable$sru)speccsjS)N)rr )r r r r)rzETestMockingMagicMethods.test_magic_methods_and_spec..)rc@s eZdZdS)zHTestMockingMagicMethods.test_magic_methods_and_spec..NonIterableN)rrrsrtr r r r NonIterable.srwcsjS)N)rr )r r r r1rcsttgd_dS)N)r)rr__int__r )r r r set_int3szDTestMockingMagicMethods.test_magic_methods_and_spec..set_int) r&rrAttributeErrorrrrrr)r rurwryr )r r test_magic_methods_and_spec#s     z3TestMockingMagicMethods.test_magic_methods_and_speccsGdddt}t|d|tfddttgd_|tgGdddt}t|d|tfd dfd d }|t|t|d|tg|t|dS) Nc@seZdZddZdS)zITestMockingMagicMethods.test_magic_methods_and_spec_set..IterablecSsdS)Nr )r r r r r>szRTestMockingMagicMethods.test_magic_methods_and_spec_set..Iterable.__iter__N)rrrsrtrr r r r ru=sru)Zspec_setcsjS)N)rr )r r r rBrzITestMockingMagicMethods.test_magic_methods_and_spec_set..)rc@s eZdZdS)zLTestMockingMagicMethods.test_magic_methods_and_spec_set..NonIterableN)rrrsrtr r r r rwGsrwcsjS)N)rr )r r r rJrcsttgd_dS)N)r)rrrxr )r r r ryLszHTestMockingMagicMethods.test_magic_methods_and_spec_set..set_int) r&rrrzrrrrr)r rurwryr )r r test_magic_methods_and_spec_set<s     z7TestMockingMagicMethods.test_magic_methods_and_spec_setcs$tfdd}|td|dS)Ncsdd_dS)NcSsdS)Nr )r rr r r rXrzdTestMockingMagicMethods.test_setting_unsupported_magic_method..set_setattr..) __setattr__r )r r r set_setattrWszRTestMockingMagicMethods.test_setting_unsupported_magic_method..set_setattrz9Attempting to set unsupported magic method '__setattr__'.)rZassertRaisesRegexrz)r r~r )r r %test_setting_unsupported_magic_methodUs  z=TestMockingMagicMethods.test_setting_unsupported_magic_methodcCs>t}|j}dd}|||t|}|||tdS)NcSst|jdS)Nrg)type__mro__)objr r r _get_typebszKTestMockingMagicMethods.test_attributes_and_return_value.._get_type)rrr)r r attrrZreturnedr r r test_attributes_and_return_value_s z8TestMockingMagicMethods.test_attributes_and_return_valuecCs@t}||jtd|ddj_||dddddS)Nr*rgrC)rr]rrr)r r r r r "test_magic_methods_are_magic_mockslsz:TestMockingMagicMethods.test_magic_methods_are_magic_mockscCs6t}t|||jj|||jjdS)N)rr%r r'ZcalledZ reset_mockr)r r r r r test_magic_method_reset_mockts z4TestMockingMagicMethods.test_magic_method_reset_mockcCs:x4ttfD]$}dd}||_|t|dgqWdS)NcSsdgS)Nrr )r r r r _dirsz.TestMockingMagicMethods.test_dir.._dirr)rr__dir__rdir)r r rr r r test_dir|sz TestMockingMagicMethods.test_dirZPyPyzThis fails differently on pypycCs"t}dgj|_|tt|dS)Nr*)rrrrr)r rRr r r test_bound_methodss z*TestMockingMagicMethods.test_bound_methodscCs(Gdddt}|}||j|dS)Nc@s eZdZdS)z;TestMockingMagicMethods.test_magic_method_type..FooN)rrrsrtr r r r Foosr)rr]rx)r rrr r r test_magic_method_typesz.TestMockingMagicMethods.test_magic_method_typecCs&t}dt|j_|t|ddS)Nr)rrr'rrr%)r rRr r r test_descriptor_from_classs z2TestMockingMagicMethods.test_descriptor_from_classcCs|t}dddg|j_|t|dddg|t|dddgtdddg|j_|t|dddg|t|gdS)NrgrCr*rEr9)rrrrrr)r rRr r r "test_iterable_as_iter_return_valuesz:TestMockingMagicMethods.test_iterable_as_iter_return_valuecCsft}||dtd|j_d|j_d|j_||dd|d|d|d}||ddS)Nrg*i)rr] __matmul__r __rmatmul__ __imatmul__r)r rRr r r test_matmulsz#TestMockingMagicMethods.test_matmulcCst}|td|td|j_|t|ddt}td|}||t|d}||tt|d}||t|d}||tdS)Nr)rCrgrC)rr]divmod __divmod__rr __rdivmod__)r rRrZ foo_directr1Z bar_directr r r test_divmod_and_rdivmods       z/TestMockingMagicMethods.test_divmod_and_rdivmodcCs"tfddi}|t|ddS)Nz__str__.return_value12)rrr%)r rRr r r test_magic_in_initializationsz4TestMockingMagicMethods.test_magic_in_initializationcCsXtfddi}d|j_|t|dtfddi}|jfddi|t|ddS)Nz__str__.return_valuerZ13Z14)rr'rrr%Zconfigure_mock)r rRr r r )test_changing_magic_set_in_initializations zATestMockingMagicMethods.test_changing_magic_set_in_initializationN)'rrrsrtrrrrr$r(r5rArKrOrSrZr`rfrjrkrqr{r|rrrrrunittestZskipIfsysversionrrrrrrrrr r r r rs@           r__main__) rrZ unittest.mockrrrZTestCaserrrmainr r r r sO