Bonjour à tous,
J'ai un problème de test unitaire:
J'ai deux instances w0 et w1 d'un même type de contenu appelé Workspace
et dérivé de Folder.
w0 contient w1.
J'ai créé un rôle Walker dont le but et de permettre la traversé d'une
arborescence sans avoir le droit de voir le contenu de chaque noeud de
l'arborescence ce qui permet de naviguer dans l'arborescence sans avoir
d'erreur pour privilège insuffisant.
Lorsqu'un workspace est publié, mon rôle Walker possède uniquement les
permissions :
"Access contents information"
"View"
Les rôles locaux ne sont pas hérités dans les Workspaces.
Le contenu quant à lui interdit purement et simplement la permission
View aux Walker.
gw1 et un groupe ayant le rôle local Reader sur w1 et le rôle local
Walker sur w0.
m1 est un membre appartenant au groupe gw1 et obtenant ainsi le rôle
local Reader sur w1 et Walker sur w0.
Mon code fonctionne parfaitement sur un instance plone mais pas dans mes
tests unitaires :
Si je fais dans un test unitaire dérivant de PloneTestCase (en fait
généré avec ArchGenXML) :
from Products.CMFCore.utils import _checkPermission as checkPerm
...
class testEPRIVR_Workspace(testPlone)
...
def testPermissionWalker(self):
"""Check permission of a local reader
"""
self.login('m1')
self.failUnless('gw1' in w1.users_with_local_role('Reader'))
self.failUnless('gw1' in w0.users_with_local_role('Walker'))
self.failUnless('View' in [p['name'] for p in \
w0.permissionsOfRole('Walker') if p['selected']])
self.failUnless('Access contents information' in [p['name']\
for p in w0.permissionsOfRole('Walker') if p['selected']])
self.failUnless('m1' in gw1.getMemberIds())
self.failUnless(checkPerm('View', w1))
# At this point my unit test seems to be buggy
self.failUnless(checkPerm('View', w0))
Pourquoi ma dernière ligne bogue dans les tests unitaires alors que cela
fonctionne dans une instance plone ?
Cordialement
--
Michaël Launay
Gérant d'Ecréall
24, rue des Pâquerettes
59155 Faches Thumesnil
tél : 09 50 88 00 07
mob : 06 16 85 91 12
Fax : 09 56 88 00 07
_______________________________________________
Plone-FR mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/plone-fr