tests: dispatch and add/remove roles

This commit is contained in:
Frédéric Péters 2014-12-31 10:03:29 +01:00
parent 65a60554c1
commit 9b4ed2819c
1 changed files with 63 additions and 0 deletions

View File

@ -7,7 +7,9 @@ from quixote.http_request import HTTPRequest
from wcs.formdef import FormDef
from wcs.roles import Role
from wcs.workflows import WorkflowStatusItem
from wcs.wf.dispatch import DispatchWorkflowStatusItem
from wcs.wf.jump import JumpWorkflowStatusItem
from wcs.wf.roles import AddRoleWorkflowStatusItem, RemoveRoleWorkflowStatusItem
from utilities import create_temporary_pub
@ -15,6 +17,9 @@ def setup_module(module):
cleanup()
global pub
pub = create_temporary_pub()
req = HTTPRequest(None, {})
req.user = None
pub._set_request(req)
def teardown_module(module):
global pub
@ -93,3 +98,61 @@ def test_check_auth():
formdef.workflow_roles = {'_receiver': user.id}
formdata.workflow_roles = None
assert status_item.check_auth(formdata, user) is True
def test_dispatch():
formdef = FormDef()
formdef.name = 'baz'
formdef.store()
item = DispatchWorkflowStatusItem()
formdata = formdef.data_class()()
item.perform(formdata)
assert not formdata.workflow_roles
formdata = formdef.data_class()()
item.role_key = '_receiver'
item.role_id = '1'
item.perform(formdata)
assert formdata.workflow_roles == {'_receiver': '1'}
def test_roles():
user = pub.user_class()
user.store()
formdef = FormDef()
formdef.name = 'baz'
formdef.store()
formdata = formdef.data_class()()
formdata.user_id = user.id
item = AddRoleWorkflowStatusItem()
item.perform(formdata)
assert not pub.user_class.get(user.id).roles
item.role_id = '1'
item.perform(formdata)
assert pub.user_class.get(user.id).roles == ['1']
user.roles = None
user.store()
item = RemoveRoleWorkflowStatusItem()
item.perform(formdata)
assert not pub.user_class.get(user.id).roles
item.role_id = '1'
item.perform(formdata)
assert not pub.user_class.get(user.id).roles
user.roles = ['1']
user.store()
item.perform(formdata)
assert not pub.user_class.get(user.id).roles
user.roles = ['2', '1']
user.store()
item.perform(formdata)
assert pub.user_class.get(user.id).roles == ['2']