a „oe²ć @sddlZddlZddlZddlZddlmZdZdZdZdZ dZ dZ dZ dZ dZd ZdZdZdZdZdZdZd efd efd efd efdefdefdefdefgZdefdefdefdefdefdefdefdefdefdefdefdefg ZGdd„dejƒZed kre ”dS)!éN)Ś str2byteséééééél’’ŚdwScopeŚdwTypeŚ dwDisplayTypeŚdwUsageŚ lpLocalNameŚ lpRemoteNameZ lpCommentZ lpProviderŚCommandZRetcodeZLsnZNumŚCallnameŚNameZRtoZStoŚLana_numZCmd_cpltŚEventZPostc@s\eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dS)ŚTestCasecCs| t ”t ””dS©N)Ś assertEqualŚwin32apiZ GetUserNameŚ win32wnetZ WNetGetUser)Śself©rś:C:\Program Files\Certbot\pkgs\win32\test\test_win32wnet.pyŚ testGetUser7szTestCase.testGetUsercCsØ|D]ž\}}t||ƒ}|turF| t|ƒtfvd||f”|d}nP|tur†|dur€| t|ƒttfvd||f”|d}q–d}n| d|f”t|||ƒqdS)NzAttr %r has value %rrz new valuez new valuezDon't know what %s is)ŚgetattrŚintŚ assertTrueŚtypeŚstrŚfailŚsetattr)rŚitemŚattrsŚattrŚtypŚvalŚnew_valrrrŚ_checkItemAttributes:s   ’ ’ zTestCase._checkItemAttributescCst ”}| |t”dSr)rŚ NETRESOURCEr*ŚNETRESOURCE_attributes)rŚnrrrrŚtestNETRESOURCEPszTestCase.testNETRESOURCEcCs^t ttdd”}z>t |d”}t|ƒdkr,qD|D]}| |t”q0qW| ”n | ”0dS)Nr) rŚ WNetOpenEnumŚRESOURCE_GLOBALNETŚRESOURCETYPE_ANYŚWNetEnumResourceŚlenr*r,ŚClose)rŚhandleŚitemsr$rrrŚtestWNetEnumResourceTs  zTestCase.testWNetEnumResourcecCst ”}| |t”dSr)rŚNCBr*ŚNCB_attributes)rŚncbrrrŚtestNCB`szTestCase.testNCBcCsŠt ”}tj|_t ”}||_t |”}| |d”t |j ƒD]Œ}|  ”tj |_t  |j|”|_t|ƒ}| |d”|  ”tj|_t |j|ƒ|_tdƒ|_t ”}||_t|ƒ| t|jƒd”q>dS)Nrz* é)rr8ŚnetbiosZNCBENUMrZ LANA_ENUMZBufferZNetbiosrŚrangeŚlengthZResetZNCBRESETZ byte_to_intZlanarZNCBASTATrrZADAPTER_STATUSrr3Zadapter_address)rr:Zla_enumŚrcŚiZadapterrrrŚ testNetbiosds(    zTestCase.testNetbiosccslt ”}t|_t|_dt ”|_t  tt d|”}t  |d”}t |ƒdkrLqh|D]}|j tkrP|VqPq2dS)Nz\\r)rr+r0r ŚRESOURCEUSAGE_CONTAINERr rZGetComputerNamerr/r1r2r3r ŚRESOURCEDISPLAYTYPE_SHARE)rr-r5r6r$rrrŚiterConnectableShares|s   zTestCase.iterConnectableSharescCsœdd„t ” d”Dƒ}t ttdd”}z@t |d”}t|ƒdkrDq^dd„|Dƒ}|  |”q*W|  ”n |  ”0dD]}||vrx|Sqx|  d”dS)NcSsg|]}|r|d ”‘qS©r)Ślower)Ś.0ŚxrrrŚ Œsz2TestCase.findUnusedDriveLetter..śrcSs g|]}|jr|jd ”‘qSrF)r rG)rHrArrrrJ•óZdefghijklmnopqrstuvwxyzzAll drive mappings are taken?) rZGetLogicalDriveStringsŚsplitrr/ŚRESOURCE_REMEMBEREDŚRESOURCETYPE_DISKr2r3Śextendr4r")rŚexistingr5r6ZxtraŚmayberrrŚfindUnusedDriveLetter‹s ’   zTestCase.findUnusedDriveLettercCs@| ”d}| ”D]&}||_t |”t |dd”qqdSrT)rSrErrVr rrWrXrrrŚtestAddConnectionOld¦s   zTestCase.testAddConnectionOldN) Ś__name__Ś __module__Ś __qualname__rr*r.r7r;rBrErSrYrZrrrrr6s rŚ__main__)Zunittestr=rrZpywin32_testutilrZRESOURCE_CONNECTEDr0rNZRESOURCE_RECENTZRESOURCE_CONTEXTr1rOZRESOURCETYPE_PRINTZRESOURCETYPE_RESERVEDZRESOURCETYPE_UNKNOWNZRESOURCEUSAGE_CONNECTABLErCZRESOURCEDISPLAYTYPE_GENERICZRESOURCEDISPLAYTYPE_DOMAINZRESOURCEDISPLAYTYPE_SERVERrDrr!r,r9rr[ŚmainrrrrŚsZ ų óx