a zed@sXddlZddlmZddlZddlZGdddZGdddejZedkrTe dS)N)patchc@seZdZdZdZdZdS) CompleteMez6 Trivial class used in testing rlcompleter.Completer. N)__name__ __module__ __qualname____doc__spamZ_hamr r I/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_rlcompleter.pyrsrc@sbeZdZddZddZddZddZd d Zd d Zd dZ e j ddddZ ddZdS)TestRlcompletercCs2t|_tttttd|_|jdddS)N)r Zeggrr) rlcompleter Completer stdcompleterdictintstrr completercompleteselfr r r setUp s   zTestRlcompleter.setUpcCshGdddt}Gdddt}||jj||jj|t|j| t tj|ddS)Nc@s eZdZdS)z)TestRlcompleter.test_namespace..ANrrrr r r r Asrc@s eZdZdS)z)TestRlcompleter.test_namespace..BNrr r r r Bsr)r) rlist assertTruerZ use_main_ns assertFalserrrZ assertRaises TypeError)rrrr r r test_namespaces zTestRlcompleter.test_namespacecCs|t|jdddttD|t|jdddttD||jdg||jddg||jd d g||jddgdS) NdicSsg|]}|dr|dqS)r"( startswith.0xr r r $z7TestRlcompleter.test_global_matches..stcSsg|]}|dr|dqS)r+r#r$r&r r r r)&r*Z akaksajadhakZ CompleteMz CompleteMe(Zegzegg() assertEqualsortedrZglobal_matchesdirbuiltinsrrr r r test_global_matches!s z#TestRlcompleter.test_global_matchescCs||jdddttD||jdgtddtdD}||jd|||jd|||jd |||jd d g||jd g||jd dd g||jddg|jd}|D]}||d|q| d|| d|t j t dt ddH||jddg||jdddttDWdn1s0YdS)Nzstr.scSs g|]}|drd|qS)szstr.{}(r%formatr&r r r r)5s z5TestRlcompleter.test_attr_matches..ztuple.foospameggcSs$h|]}d||dkrdndfqS)z None.%s%sr r#rr r&r r r 8sz4TestRlcompleter.test_attr_matches..zNone.zNone._zNone.__z CompleteMe.spzCompleteMe.spamzCompleteme.eggz CompleteMe.zCompleteMe.mro(z CompleteMe._zCompleteMe._hamz CompleteMe.__zCompleteMe.__name__zCompleteMe.__new__(meT)ZcreatezCompleteMe.me.me.spzCompleteMe.me.me.spamzegg.scSs g|]}|drd|qS)r1zegg.{}(r2r&r r r r)Ps ) r,rZ attr_matchesr.rr-rrr%ZassertInrobjectr)rZexpectedmatchesr(r r r test_attr_matches2s@   z!TestRlcompleter.test_attr_matchescCsJGddd}|}tt|d}||ddd||jddS) z;Ensure getattr() is invoked no more than once per attributecs$eZdZdZdZfddZZS)z3TestRlcompleter.test_excessive_getattr..Foorrcs&|dkr|jd7_dSt|S)Nbarr)callssuper__getattribute__)rname __class__r r r<]szDTestRlcompleter.test_excessive_getattr..Foo.__getattribute__)rrrr:r9r< __classcell__r r r>r FooZsrAff.brf.barrN)rrrr,rr:rrArCrr r r test_excessive_getattrSs  z&TestRlcompleter.test_excessive_getattrcCsHGddd}|}tt|d}||ddd||jdS)Nc@s eZdZdZdZeddZdS)z.FoorFcSs d|_|jS)NT)property_called_barrr r r r9msz@TestRlcompleter.test_property_method_not_called..Foo.barN)rrrrIrHpropertyr9r r r r rAisrArBrDrrE)rrrr,rrrHrFr r r test_property_method_not_calledhs  z/TestRlcompleter.test_property_method_not_calledcCs8Gddd}tt|d}||ddddS)Nc@seZdZdZdS)z0TestRlcompleter.test_uncreated_attr..Foo)r9N)rrr __slots__r r r r rA{srArBzf.rrE)rrrr,r)rrArr r r test_uncreated_attrxsz#TestRlcompleter.test_uncreated_attrzrlcompleter._readline_availableFcCst}||ddd||ddd||ddd||dd d ||d dd||d dd ||ddd||ddd||ddd||ddddS)Nrr azand rzas asrassert ZanpapassZFaFalseelzelif elsetrtry:)rrr,r)rrr r r test_completeszTestRlcompleter.test_completecCsdddddddd}t|}||ddd||dd||ddd ||dd||d dd ||d d||d dd ||d d||d dd||d ddS)NcSsdSNr r r r r r*z8TestRlcompleter.test_duplicate_globals..cSsdSrZr r r r r r[r*)rTasserttry memoryviewEllipsisrTrrr\rQr]rXr^r_z Ellipsis()rrr,rZ assertIsNone)r namespacerr r r test_duplicate_globalss" z&TestRlcompleter.test_duplicate_globalsN)rrrrr!r0r8rGrKrMunittestZmockrrYrar r r r r s  !  r __main__) rbZ unittest.mockrr/rrZTestCaser rmainr r r r s