a oe[@sddlZddlZddlZddlZddlZddlZddlZejZ ddl Z dZ ddZ ddZ ddZdd d ZGd d d ejjjZed kre dS)Nzcollection test errorcCs"tjjtjj}tj|SNwin32comZserverutilwrap CollectionZclientZDispatch)or >C:\Program Files\Certbot\pkgs\win32com\test\testCollections.py MakeEmptyEnumsr cCsHtjjtjjgd}tjjtjjddd|g}tj|S)NZSub1ZSub3Twor)subrr r r MakeTestEnums  rcCstt|D]4}||||kr tdt||t||fq tt|D]6}||||krNtdt||t||fqNg}|D]}||q|dt||krtdt|dt|t|ftt|D]}||||krtdqdS)Nz5Using default method gave the incorrect value - %s/%sz2Using Item method gave the incorrect value - %s/%sz)Result after looping isnt correct - %s/%sz'Using indexing gave the incorrect value)rangelenerrorreprZItemappend)rcheckicmpsr r r TestEnumAgainst's4 rc Cs|durdtjv}|stdt}gd}t|||sBtd|d}t|gd||d|svtd|d=|dt|||std |d |d t|||std | d d | d d t||z|t dWnDt j y>}z(|jtjkr*t d|fWYd}~n d}~00z| dd t dWnDt j y}z(|jtjkrt d|fWYd}~n d}~00z||t dWnDt j y}z(|jtjkrt d|fWYd}~n d}~00|s tdt}|D]}t dqz|d}t dWntyNYn0z|d}t dWntyxYn0z|d}t dWnDt j y}z(|jtjkrt d|fWYd}~n d}~00dS)Nz-vzSimple enum test)rrrzsub-collection testrr rzRemove item testz Add item testzNew ItemzInsert item testr z9default method with no args worked when it shouldnt have!z&Expected DISP_E_BADPARAMCOUNT - got %sZfooz$Insert worked when it shouldnt have!z%Expected DISP_E_TYPEMISMATCH - got %sz$Remove worked when it shouldnt have!z!Expected DISP_E_BADINDEX - got %szEmpty collection testz!Empty list performed an iterationzEmpty list could be indexedr)sysargvprintrrZRemoveZCountZAddrZInsertinsertr pythoncomZ com_errorZhresultwinerrorZDISP_E_BADPARAMCOUNTZDISP_E_TYPEMISMATCHZDISP_E_BADINDEXr IndexError)quietrrrexcitemobr r r TestEnumFs           $  $ $    r)c@seZdZddZdS)TestCasecCs tdSr)r))selfr r r testEnumszTestCase.testEnumN)__name__ __module__ __qualname__r,r r r r r*sr*__main__)N)rr"Z pywintypesZwin32com.clientrZwin32com.server.utilZwin32com.test.utilr#ZUnicodeLZunittestrr rrr)testrr*r-mainr r r r s   Z