m #Ec@sdZdkZdkZdkZeidkZdkZdkZdkZdk l Z dk l Z dk lZdk lZdklZlZdklZdeifd YZd eifd YZd Zed joeiddndS(sTUser folder tests. $Id: testUserFolder.py 40218 2005-11-18 14:39:19Z andreasjung $ N(s makerequest(s Unauthorized(snewSecurityManager(snoSecurityManager(sBasicUserFolders UserFolder(sUsertUserFolderTestscBstZdZdZdZdZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZRS(NcCs-titti|_yti|i|_|ii dddgg|ii d|ii ddg|ii ddd|ii iddgdd |iiid |ii |iiid |igdg|ii_d tid |_Wn|inXdS(Ntuser1tsecrettrole1tViewtdoctfilettacquireit PUBLISHEDtPARENTSsBasic %ss user1:secret(t transactiontbegint makerequesttZope2tapptselft UserFoldert__of__tuft _doAddUsert_addRolet manage_rolet addDTMLMethodRtmanage_permissiontREQUESTtsettstepstbase64t encodestringtbasicttearDown(R((tA/data/zmath/zope/lib/python/AccessControl/tests/testUserFolder.pytsetUp%s   cCs%tti|iiidS(N(tnoSecurityManagerR tabortRRt_p_jartclose(R((R R:s cCs5|ii|}|i|i}td|dS(N(RRt getUserByIdtnametuserRtnewSecurityManagertNone(RR'R(((R tlogin?scCs8dkl}dkl}dkl}|||dS(N(sIStandardUserFolder(s UserFolder(s verifyClass(tAccessControl.interfacestIStandardUserFoldertAccessControl.UserRtzope.interface.verifyt verifyClass(RR-R0R((R ttest_z3interfacesDs   cCs |i|iidddS(NR(Rt failIfEqualRtgetUserR*(R((R t testGetUserKscCs |i|iidddS(Ntuser2(Rt assertEqualRR3R*(R((R ttestGetBadUserNscCs |i|iidddS(NR(RR2RR&R*(R((R ttestGetUserByIdQscCs |i|iidddS(NR5(RR6RR&R*(R((R ttestGetBadUserByIdTscCs:|ii}|i||i|diddS(NiR(RRtgetUserstuserst failUnlessR6t getUserName(RR;((R t testGetUsersWs cCs4|ii}|i||i|dddS(NiR(RRt getUserNamestnamesR<R6(RR@((R ttestGetUserNames\s cCs?|ii|i\}}|i|d|i|ddS(NRR(RRtidentifyRR'tpasswordR6(RRCR'((R t testIdentifyascCs/|iid}|id|ijdS(NRR(RRR3R(R<tgetRoles(RR(((R t testGetRolesfscCsd|iid}|iiddg|i|i}|id|j|id|jdS(NRtOwnerR( RRR3R(Rtmanage_addLocalRolestgetRolesInContexttrolesR<(RR(RJ((R ttestGetRolesInContextjs cCs2|iid}|i|id|idS(NRR(RRR3R(R<thas_roleR(RR(((R t testHasRoleqscCsH|iid}|iiddg|i|id|idS(NRRG(RRR3R(RRHR<RL(RR(((R ttestHasLocalRoleuscCsd|iid}|i|id|i|iiddg|i|id|idS(NRRRs Add Folders(RRR3R(R<thas_permissionRR(RR(((R ttestHasPermissionzscCs^|iid}|iiddg|iiddg|i|id|idS(NRRGs Add Folders( RRR3R(RRRHR<RO(RR(((R ttestHasLocalRolePermissionscCs5|iid}|i|id|iidS(NRR(RRR3R(R<t authenticateRR(RR(((R ttestAuthenticatescCsN|ii|ii|idg}|i|d|i |i ddS(NRR( RRtvalidateRRRR(R2R*R6R=(RR(((R t testValidates$cCs5|ii|iiddg}|i|ddS(NRR(RRRTRRR(R6R*(RR(((R ttestNotValidateWithoutAuths!cCs8|ii|ii|i}|i|iddS(NR( RRRTRRRR(R6R=(RR(((R ttestValidateWithoutRolesscCs5|ii|ii|ig}|i|ddS(N( RRRTRRRR(R6R*(RR(((R ttestNotValidateWithEmptyRoless!cCs8|ii|ii|idg}|i|ddS(NtManager( RRRTRRRR(R6R*(RR(((R ttestNotValidateWithWrongRoless$cCsH|idy|iidWn tj o|idnXdS(NRRt Unauthorized(RR+RtrestrictedTraverseR[tfail(R((R ttestAllowAccessToUsers  cCs|it|iiddS(NR(Rt assertRaisesR[RR\(R((R ttestDenyAccessToAnonymousscCsdtfdY}|dd}|dd}|idjpt|idjptt|idjptt|idjpty!|i}dp tdWnt j onXy|i}Wn$t j odp tdnXdS( Nt FolderishcBs#tZdZdZdZRS(NcCsO||_g|_||_||_x$t|D]}|ii dq1WdS(NtNobody( tsizeRt maxlistusersR;t acl_userst__allow_groups__txrangetcounttitappend(RRcRhRi((R t__init__s     cCs|iS(N(RR;(R((R R:scCs |iS(N(RR:(R((R t user_namess(t__name__t __module__RkR:Rl(((R Ras  iii isDid not raise overflow errors!Raised overflow error erroneously( tBasicUserFolderRattinyFolderOverttinyFolderUnderRdtAssertionErrortlenRltget_valid_useridstlistt OverflowError(RRpRqRuRa((R ttestMaxListUserss"    cCsdkl}d}d}ti|i}t |_ |i |i ||i ||gg|i|}|i|i |i|i||i|dS(N(s pw_validatetnot_yet_encryptedRC(tAccessControl.AuthEncodingt pw_validatetUSER_IDtPASSWORDRRRRRtTruetencrypt_passwordstfailIft_isPasswordEncryptedRR&R(R<t__(RRR{R(RzR|((R t0test__doAddUser_with_not_yet_encrypted_passwordss  cCsdkl}d}d}ti|i}t |_ |i |}|i ||gg|i|}|i|i||i|i|i|i||i|dS(N(s pw_validatetalready_encryptedRC(RyRzR{R|RRRRRR}R~t_encryptPasswordt ENCRYPTEDRR&R(R6RR<R(RRR{RR(RzR|((R t+test__doAddUser_with_preencrypted_passwordss  (RmRnR!RR+R1R4R7R8R9R>RARDRFRKRMRNRPRQRSRURVRWRXRZR^R`RwRR(((R R#s8                         ( t UserTestscBsPtZdZdZdZdZdZdZdZdZ RS( NcCs2tdddgg}|i|iddS(Ntchrist123RY(tUsertfRR6R=(RR((R ttestGetUserNamescCs2tdddgg}|i|iddS(NRRRY(RRRR6tgetId(RR((R t testGetUserIdscCs8tdddgg}|i|i|idS(NRRRY(RRRR6RR=(RR((R ttestBaseUserGetIdEqualGetNamescCs2tdddgg}|i|iddS(NRRRY(RRRR6t _getPassword(RR((R ttestGetPassword scCs2tdddgg}|i|iddS(NRRRYt Authenticated(sManagerR(RRRR6RE(RR((R RFscCs2tdddgg}|i|ifdS(NRRRY(RRRR6t getDomains(RR((R ttestGetDomainsscCs2tdddgg}|it|ddS(NtfloRRYs (RRRR6trepr(RR((R ttestReprscCspdkl}dkl}dkl}|it|d|it|d|it|ddS(N(sNullUnrestrictedUser(snobody(ssystems#ss%(R.tNullUnrestrictedUsertnobodytsystemRR6R(RRRR((R ttestReprSpecials   ( RmRnRRRRRFRRR(((R Rs       cCs<ti}|itit|itit|S(N(tunittestt TestSuitetsuitetaddTestt makeSuiteRR(R((R t test_suite&s t__main__t defaultTestR(t__doc__RtTestingRtstartuptostsysRR tTesting.makerequestR t AccessControlR[t AccessControl.SecurityManagementR)R"R.RoRRtTestCaseRRRRmtmain(RR[R R)R"RRRoRR RRRRRRR((R t?s"          ,