\I6ԡ4ddlZddlmZGddZGddejZedkrejdSdS)N)mockceZdZdZdZdS) SampleObjectcdSNselfs J/opt/alt/python311/lib64/python3.11/unittest/test/testmock/testsealable.pymethod_sample1zSampleObject.method_sample1cdSrrr s r method_sample2zSampleObject.method_sample2 r rN)__name__ __module__ __qualname__r rrrr rrs"""""""""rrceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdS) TestSealablecbtj}||jtj||tj||tjdSr)rMockassertIsInstancetesttest2r ms r ,test_attributes_return_more_mocks_by_defaultz9TestSealable.test_attributes_return_more_mocks_by_defaultsw IKK afdi000 affhh 222 affhhnn.. :::::rc@tj}tj||t5|jdddn #1swxYwY|t5|ddddS#1swxYwYdSrrrseal assertRaisesAttributeErrorrrs r .test_new_attributes_cannot_be_accessed_on_sealz;TestSealable.test_new_attributes_cannot_be_accessed_on_seals  IKK !   ~ . .   FF                  ~ . .   ACCC                  s$AAA; BBBctj}tj||t5d|_ddddS#1swxYwYdSNrrs r )test_new_attributes_cannot_be_set_on_sealz6TestSealable.test_new_attributes_cannot_be_set_on_seals IKK !   ~ . .  AF                  sAAActj}d|j_tj|d|j_||jjddS)Nr&)rrrrr assertEqualrs r +test_existing_attributes_can_be_set_on_sealz8TestSealable.test_existing_attributes_can_be_set_on_seal%sL IKK  !   q)))))rctj}d|j_tj||t 5d|j_ddddS#1swxYwYdSr%)rrrrr r!r"test3rs r 2test_new_attributes_cannot_be_set_on_child_of_sealz?TestSealable.test_new_attributes_cannot_be_set_on_child_of_seal-s IKK  !   ~ . .  AFL                  s A((A,/A,ctj}d|j_tj|||ddS)N)rrr return_valuer r*rs r +test_existing_attributes_allowed_after_sealz8TestSealable.test_existing_attributes_allowed_after_seal5sH IKK !  1%%%%%rctjd}tj|||jddS)Nr&) test_value)rrr r*r4rs r .test_initialized_attributes_allowed_after_sealz;TestSealable.test_initialized_attributes_allowed_after_seal=s? I # # # !  q)))))rctj}tj||t5|ddddS#1swxYwYdSr)rrr r!r"rs r test_call_on_sealed_mock_failsz+TestSealable.test_call_on_sealed_mock_failsCs IKK !   ~ . .   ACCC                  s AA!Actjd}tj|||ddS)N)r1)rrr r*rs r )test_call_on_defined_sealed_mock_succeedsz6TestSealable.test_call_on_defined_sealed_mock_succeedsJsC I1 % % % !  a     rctj}d|j_tj|||jjd|t5|jj dddn #1swxYwY|t5|jjddddS#1swxYwYdSN) rrtest1rr-r r*r!r"test4rs r &test_seals_recurse_on_added_attributesz3TestSealable.test_seals_recurse_on_added_attributesPsL IKK !  !  .222   ~ . . " " GMMOO ! ! " " " " " " " " " " " " " " "   ~ . .   GMM                  s$B==CC" C<<DDctj}d|jjd_d|jjdd_tj|||jjdjd||jjddjd|t5|jjdj dddn #1swxYwY|t5|jjddj ddddS#1swxYwYdS)Nr=ar)r9) r MagicMockr>rr-r r*r!r"r?rs r #test_seals_recurse_on_magic_methodsz0TestSealable.test_seals_recurse_on_magic_methods\s N  #$ c #$ ac  !  s+11555 qs+11555   ~ . . % % GM#  $ $ % % % % % % % % % % % % % % %   ~ . . % % GM!A#  $ $ % % % % % % % % % % % % % % % % % %s$ C..C25C2D::D>D>cFtjd}tjd|j_d|jj_tj|||jjjd|jjjd|jj_dS)N root_mockname not_sealedr=r&)rrr>rr-r r*r?rs r ,test_seals_dont_recurse_on_manual_attributesz9TestSealable.test_seals_dont_recurse_on_manual_attributesjs I; ' ' ' |444   !  ,a000   rc\tjt}d|_d|_tj|||jd||jd|t5|j ddddS#1swxYwYdS)z0You are not restricted when using mock with specr&r0N) rrr attr_sample1 attr_sample3r r*r!r" attr_sample2rs r )test_integration_with_spec_att_definitionz6TestSealable.test_integration_with_spec_att_definitionus Il # # !  +++ +++   ~ . .   NN                  s B!!B%(B%cVtjt}d|j_tj|||d|t5| ddddS#1swxYwYdS)zrr-r?r r!r"boomrWrXrYrZs r "test_attribute_chain_is_maintainedz/TestSealable.test_attribute_chain_is_maintaineds I; ' ' '  !! !   ~ . . +" GM  % * * + + + + + + + + + + + + + + + >BL@Q@QRRRRRsBB Bctj}|jjtj||t5}|jdddn #1swxYwY| dt|j dS)Nz mock.test1().test2.test3().test4) rrr>rr-r?r r!r"rWrXrYrZs r test_call_chain_is_maintainedz*TestSealable.test_call_chain_is_maintaineds IKK  %% !   ~ . . ," GGIIO ! ! # # ) ) + + + , , , , , , , , , , , , , , , 8#bl:K:KLLLLLs2>B<<CCc Gdd}dD]}||5tj||}d|j_d|jj_tj|||j tj ||jtj ||j tj ||jtj ||jj tj ||jjtj ||dd|j_||d||jdd|jj_||jd|t 5| dddn #1swxYwY|t"5d |_dddn #1swxYwY|t"5| dddn #1swxYwYd |j _|| d |t"5|jdddn #1swxYwY|t"5d |_dddn #1swxYwY|t"5|dddn #1swxYwY|t 5|j dddn #1swxYwY|t"5|jjdddn #1swxYwY|t"5d |j_dddn #1swxYwY|t"5|jdddn #1swxYwYdddn #1swxYwYdS) Nc8eZdZdZdZdZGddZdS)1TestSealable.test_seal_with_autospec..FoorcdSr%rr s r bar1z6TestSealable.test_seal_with_autospec..Foo.bar1qrcdS)Nr)rr s r bar2z6TestSealable.test_seal_with_autospec..Foo.bar2rhrceZdZdZdZdS)5TestSealable.test_seal_with_autospec..Foo.Bazr0cdSr<rr s r banz9TestSealable.test_seal_with_autospec..Foo.Baz.bans1rN)rrrbazrnrrr Bazrls(rrpN)rrrfoorgrjrprrr Foores_C                rrr)TF)spec_setrBbnew_anew_br&rj)subTestrcreate_autospecrgr1rprnr rrqNonCallableMagicMockrCrjror*r! TypeErrorr"bar missing_attrmissing_method)r rrrsrqs r test_seal_with_autospecz$TestSealable.test_seal_with_autospecs        &- -- -Hx00, -, -*3BBB(+%+. ( #%%cgt/HIII%%ch???%%ch???%%cgt~>>>%%cgk43LMMM%%cgk4>BBB  S111(/%  W555  444+2 (  888&&y11GGIII&&~66  CG               &&~66HHJJJ)/%  V444&&~66%%$$%%%%%%%%%%%%%%%&&~66))'(C$)))))))))))))))&&~66))&&((()))))))))))))))&&y11""GKKMMM"""""""""""""""&&~66))G(()))))))))))))))&&~66--+,CG(---------------&&~66--G**,,,---------------W, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -- -- -s{HS/:I S/I S/"I #S/J S/J S/J S/9K S/K S/!K "AS/3M; S/M S/M S/,N4 S/N S/N S/%O: S/O S/ O S/+P S/P S/P S/6 Q S/Q S/Q S/4 R  S/ R S/R S/2S S/S S/S S//S3 6S3 N)rrrrr#r'r+r.r2r5r7r:r@rDrJrOrQrTr\r`rbr~rrr rr s7;;;***&&&*** !!!    % % %          ...999SSSMMM;-;-;-;-;-rr__main__)unittestrrTestCaserrmainrrr rs########]-]-]-]-]-8$]-]-]-@ zHMOOOOOr