; _@c@s dkZdkZedjo$eeiieiddndklZdkl Z dk l Z l Z l Z lZlZdklZlZlZdklZd klZdkZdkZeiZeiieeied klZd k l!Z!d k"l#Z#d k"l$Z$dk"l%Z%dk&l'Z'ei(ddk)Z)dk*Z*dk+Tde i fdYZ,de,e*i-fdYZ.de,e*i-fdYZ/de,e*i-fdYZ0edjoe1ddddndk2Z2dZ3dS(Ns__main__is framework.py(s ZopeTestCase(s PloneTestCase(saccess_contents_informationsviewsadd_documents_images_and_filesschange_images_and_filessview_management_screens(snewSecurityManagersnoSecurityManagersgetSecurityManager(s Unauthorized(sUnrestrictedUser(sActionProviderBase(s IUserFolder(sGroupUserFolder(s GroupsTool(s GroupDataTool(sVerifysGroupUserFolder(s*s GroupTestCasecBstZdZRS(NcCs |ii|_|ii|_|ii|_|ii|_ d|i_ |ii d|ii d|ii d|ii d|ii d|ii ddgg|ii d dgg|ii d dgg|ii d dgg|ii d dgg|ii d dgg|ii ddgg|ii dd |ii dd |ii dd |ii dd |ii dd |ii dd |ii dd |ii dd |ii dd |ii dddS(Nisgrpsg1sg2sg3sg4su1ssecretsu2su3su4su5su6su7( sselfsportalsportal_memberships memberships acl_userssgrufs portal_groupssgroupssgetGroupPrefixsprefixsgroupWorkspacesCreationFlagsaddGroups addMember(sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pys afterSetUp5s6 (s__name__s __module__s afterSetUp(((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pys GroupTestCase3ssTestGroupsToolcBstZeifZeifZdZdZdZ dZ dZ dZ dZ dZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZRS(NcCs|iid}|idd}d}x?|iD]1}|ii |o|d7}q8|d7}q8W|i |d|i |ddS(Nsg1sg2iii( sselfsgroupss getGroupByIdsg1s addMembersngroupssnuserssgetGroupMemberssusisGroupsfailUnlessEqual(sselfsnuserssngroupssusg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pys test_isGroup`s  cCs<|iiid|iiid}|i|ddS(sUReturns the portal_groupdata-ish object for a group corresponding to this id.smygroupsEmtpy or invalid groupN(sselfsportals portal_groupssaddGroups getGroupByIdsgs failUnless(sselfsg((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getGroupByIdmscCsU|iid}td|}|i|i|ddgjd|fdS(sKReturns a list of the groups the user corresponding to 'userid' belongs to.su3cCs |iS(N(sxs getGroupName(sx((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pyszssg1sg2sInvalid groups: '%s'N(sselfsgroupssgetGroupsByUserIdsgrpssmapsidsssorts failUnless(sselfsgrpssids((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getGroupsByUserIdws  cCsQ|ii}td|}|i|dddddgjd|fdS( s=Returns a list of the available portal_groupdata-ish objects.cCs |iS(N(sxs getGroupName(sx((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pysssg1sg2sg3sg4sgrpsInvalid groups list: '%s'N(sselfsgroupss listGroupssgrpssmapsidss failUnless(sselfsgrpssids((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_listGroups~scCsI|ii}|i|i|dddddgjd|fdS(s,Returns a list of the available groups' ids.sg1sg2sg3sg4sgrpsInvalid groups list: '%s'N(sselfsgroupss listGroupIdssidsssorts failUnless(sselfsids((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_listGroupIdss cCsI|ii}|i|i|dddddgjd|fdS(s,Returns a list of the available groups' ids.sg1sg2sg3sg4sgrpsInvalid groups list: '%s'N(sselfsgroupsslistGroupNamessidsssorts failUnless(sselfsids((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_listGroupNamess cCsdS(s4Return a list of groups meeting certain conditions. N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_searchForGroupsscCs|iid|id|iij|it|iid|iiddgdgdd|iid}|iid}|i |i dd|id|i j|i |i|i ididdS(sCreate a group with the supplied id, roles, and domains. Underlying user folder must support adding users via the usual Zope API. Passwords for groups seem to be currently irrelevant in GRUF.sgrptest1sgrptest2sReviewers descriptions Sample groupN(sselfsgroupssaddGroups failUnlesss listGroupIdssfailUnlessRaisess ValueErrors getGroupByIdsgsg1sfailUnlessEquals getPropertysgetGroupMemberIdssgrufsgetGroupByNameshas_role(sselfsg1sg((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pys test_addGroups""cCs|iid|iid|iiddgdgdd|iid}|iid}|i|idd|i d|i i j|i i |i d|i j|i |i |i idid|it|iiddS( sEdit the given group with the supplied password, roles, and domains. Underlying user folder must support editing users via the usual Zope API. Passwords for groups seem to be currently irrelevant in GRUF.sgrptest1sgrptest2sReviewers descriptions Sample groupsgroup_grptest2s grptest_totoN(sselfsgroupssaddGroups editGroups getGroupByIdsgsg1sfailUnlessEquals getPropertys failUnlesssgetGroups getMemberIdssgetGroupMemberIdssgrufsgetGroupByNameshas_rolesfailUnlessRaisess ValueError(sselfsg1sg((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_editGroups".""cCs|iid|iid|iiddgdgdd|iiddg|id|iij|id|iij|id|iij|id|iijdS(sRemove the group in the provided list (if possible). Will by default remove this group's GroupWorkspace if it exists. You may turn this off by specifying keep_workspaces=true. Underlying user folder must support removing users via the usual Zope API.sgrptest1sgrptest2sReviewers descriptions Sample groupN( sselfsgroupssaddGroups editGroups removeGroupssfailIfs listGroupIdssgrufs getGroupNames(sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_removeGroupss"cCsdS(sOMake the object 'object' owned by group 'group' (a portal_groupdata-ish object)N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_setGroupOwnershipscCsdS(s Set the location of the Group Workspaces folder by id. The Group Workspaces Folder contains all the group workspaces, just like the Members folder contains all the member folders. If anyone really cares, we can probably make the id work as a path as well, but for the moment it's only an id for a folder in the portal root, just like the corresponding MembershipTool functionality. N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_setGroupWorkspacesFolderscCsdS(s Get the Group Workspaces folder object's id. The Group Workspaces Folder contains all the group workspaces, just like the Members folder contains all the member folders. N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getGroupWorkspacesFolderIdscCsdS(s Get the Group Workspaces folder object. The Group Workspaces Folder contains all the group workspaces, just like the Members folder contains all the member folders. N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getGroupWorkspacesFolderscCsdS(s` Toggles the flag for creation of a GroupWorkspaces folder upon first use of the group. N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pys"test_toggleGroupWorkspacesCreationscCsdS(sReturn the (boolean) flag indicating whether the Groups Tool will create a group workspace upon the next use of the group (if one doesn't exist). N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pys#test_getGroupWorkspacesCreationFlagscCsdS(s=Return the Type (as in TypesTool) to make the GroupWorkspace.N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getGroupWorkspaceTypescCsdS(sVSet the Type (as in TypesTool) to make the GroupWorkspace. Expects the name of a Type.N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_setGroupWorkspaceTypescCsdS(sXCreate a space in the portal for the given group, much like member home folders.N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_createGroupareascCsdS(s,Returns the object of the group's work area.N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getGroupareaFolderscCsdS(s.Returns the full URL to the group's work area.N((sself((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getGroupareaURLs(s__name__s __module__s GroupsToolsklassessActionProviderBases__implements__signore_interfacess test_isGroupstest_getGroupByIdstest_getGroupsByUserIdstest_listGroupsstest_listGroupIdsstest_listGroupNamesstest_searchForGroupss test_addGroupstest_editGroupstest_removeGroupsstest_setGroupOwnershipstest_setGroupWorkspacesFolderstest_getGroupWorkspacesFolderIdstest_getGroupWorkspacesFolders"test_toggleGroupWorkspacesCreations#test_getGroupWorkspacesCreationFlagstest_getGroupWorkspaceTypestest_setGroupWorkspaceTypestest_createGroupareastest_getGroupareaFolderstest_getGroupareaURL(((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pysTestGroupsToolWs.                   sTestGroupDataToolcBs)tZeifZeifZdZRS(NcCs|iid}|i|iid|i|id|iid}|i|iid|i|iddS(sTest group wrappingsg1s GroupDatasgroup_g1N(sselfsgroupss getGroupByIdsg1sfailUnlessEquals __class__s__name__s getGroupName(sselfsg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_wrapGroups(s__name__s __module__s GroupDataToolsklassessActionProviderBases__implements__signore_interfacesstest_wrapGroup(((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pysTestGroupDataTools  s TestGroupDatacBstZeifZeifZedZ dZ dZ dZ dZ dZdZdZd Zd Zd Zd Zd ZRS(NcKs|iid}|ihdd<dd<|i|idd|i|idd|idddd|i|idd|i|idd|id d |i|id dd S( s)We set some properties on groups sg1semails test@toto.coms descriptionsazersother@toto.comsBloub.snamesidsINVALIDN(sselfsgroupss getGroupByIdsgs setPropertiessfailUnlessEquals getPropertys failIfEqual(sselfs propertiesskwsg((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_setPropertiesscCs/|iid}|i|idddS(Nsg1sname(sselfsgroupss getGroupByIdsg1sfailUnlessEquals getProperty(sselfsg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getProperty4scCs|iid}|i|ihdd<dd<dd<|idddddd|i|ihdd<dd<dd<dS( Nsg1semailss descriptionstitles test@toto.comsmarihsHello(sselfsgroupss getGroupByIdsg1sfailUnlessEquals getPropertiess setProperties(sselfsg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getProperties9s "cCs,|iid}|i|iddS(Nsg1(sselfsgroupss getGroupByIdsg1sfailUnlessEquals getGroupId(sselfsg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getGroupIdIscCs,|iid}|i|iddS(Nsg1(sselfsgroupss getGroupByIdsg1sfailUnlessEquals getMemberId(sselfsg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getMemberIdMscCs,|iid}|i|iddS(Nsg1(sselfsgroupss getGroupByIdsg1sfailUnlessEquals getGroupName(sselfsg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getGroupNameQscCs|iid}td|i}|i|i|dddg|i dtd|i}|i|i|ddddgdS(Nsg1cCs |iS(N(sxs getMemberId(sx((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pysXssu2su3su4sg2( sselfsgroupss getGroupByIdsg1smapsgetGroupMemberssmembersssortsfailUnlessEquals addMember(sselfsmemberssg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getGroupMembersUs     cCs|iid}td|i}|i|i|dddg|i dtd|i}|i|i|dddddgdS(Nsg1cCs |iS(N(sxs getMemberId(sx((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pyskssu2su3su4sg2su5( sselfsgroupss getGroupByIdsg1smapsgetAllGroupMemberssmembersssortsfailUnlessEquals addMember(sselfsmemberssg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getAllGroupMembershs     cCs|iid}|i}|i|i|dddg|id|i}|i|i|ddddgdS(Nsg1su2su3su4sg2( sselfsgroupss getGroupByIdsg1sgetGroupMemberIdssmembersssortsfailUnlessEquals addMember(sselfsmemberssg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getGroupMemberIds{s       cCs|iid}|i}|i|i|dddg|id|i}|i|i|dddddgdS(Nsg1su2su3su4sg2su5( sselfsgroupss getGroupByIdsg1sgetAllGroupMemberIdssmembersssortsfailUnlessEquals addMember(sselfsmemberssg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_getAllGroupMemberIdss       cCsk|iid}|id|i}|i|i|ddddg|i t |iddS(Nsg1su1su2su3su4s bloubbloub( sselfsgroupss getGroupByIdsg1s addMembersgetGroupMemberIdssmembersssortsfailUnlessEqualsfailUnlessRaisess ValueError(sselfsmemberssg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_addMembers     cCse|iid}|id|i}|i|i|ddg|i t |iddS(Nsg1su2su3su4s bloubbloub( sselfsgroupss getGroupByIdsg1s removeMembersgetGroupMemberIdssmembersssortsfailUnlessEqualsfailUnlessRaisess ValueError(sselfsmemberssg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pystest_removeMembers      cCs2|iid}|i|iiiddS(Nsg1s GRUFGroup(sselfsgroupss getGroupByIdsg1sfailUnlessEqualsgetGroups __class__s__name__(sselfsg1((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pys test_getGroups(s__name__s __module__s GroupDataTools GroupDatasklassessActionProviderBases__implements__signore_interfacessNonestest_setPropertiesstest_getPropertystest_getPropertiesstest_getGroupIdstest_getMemberIdstest_getGroupNamestest_getGroupMembersstest_getAllGroupMembersstest_getGroupMemberIdsstest_getAllGroupMemberIdsstest_addMemberstest_removeMembers test_getGroup(((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pys TestGroupDatas              s descriptionsis verbositycCsVti}|itit|itit|itit|SdS(N(sunittests TestSuitessuitesaddTests makeSuitesTestGroupsToolsTestGroupDataTools TestGroupData(ssuite((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pys test_suites  (4sosssyss__name__sexecfilespathsjoinsTestings ZopeTestCasesProducts.CMFPlone.testss PloneTestCasesAccessControl.Permissionssaccess_contents_informationsviewsadd_documents_images_and_filesschange_images_and_filessview_management_screenss AccessControl.SecurityManagementsnewSecurityManagersnoSecurityManagersgetSecurityManagers AccessControls UnauthorizedsAccessControl.UsersUnrestrictedUsersurllibsstringsappsutilsssetupSiteErrorLogscloses#Products.CMFCore.ActionProviderBasesActionProviderBases#Products.GroupUserFolder.interfacess IUserFoldersProducts.GroupUserFoldersGroupUserFolders GroupsTools GroupDataTools InterfacesVerifysinstallProducts GRUFTestCases testInterfacesLogs GroupTestCases TestInterfacesTestGroupsToolsTestGroupDataTools TestGroupDatas frameworksunittests test_suite(sVerifysnoSecurityManagersappsActionProviderBasesTestGroupDataTools GroupTestCasesunittests ZopeTestCasesTestGroupsToolsurllibs GroupsToolsUnrestrictedUsers GroupDataToolsview_management_screenssGroupUserFolderschange_images_and_filessstrings UnauthorizedsnewSecurityManagers TestGroupDatasaccess_contents_informationssyss IUserFoldersgetSecurityManagersadd_documents_images_and_filess testInterfaces test_suites GRUFTestCasesoss PloneTestCasesview((sX/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testPloneTools.pys?s> $  %               $