tests: add tests for workflow status item check_auth method
This commit is contained in:
parent
dd630465b9
commit
e42c86a6d7
|
@ -5,6 +5,8 @@ from quixote import cleanup
|
|||
from quixote.http_request import HTTPRequest
|
||||
|
||||
from wcs.formdef import FormDef
|
||||
from wcs.roles import Role
|
||||
from wcs.workflows import WorkflowStatusItem
|
||||
from wcs.wf.jump import JumpWorkflowStatusItem
|
||||
|
||||
from utilities import create_temporary_pub
|
||||
|
@ -44,3 +46,50 @@ def test_jump_datetime_condition():
|
|||
item.condition = 'datetime.datetime.now() > datetime.datetime(%s, %s, %s)' % \
|
||||
tomorrow.timetuple()[:3]
|
||||
assert item.must_jump(formdata) is False
|
||||
|
||||
def test_check_auth():
|
||||
user = pub.user_class(name='foo')
|
||||
user.store()
|
||||
|
||||
role = Role(name='bar1')
|
||||
role.store()
|
||||
|
||||
formdef = FormDef()
|
||||
formdef.name = 'baz'
|
||||
formdef.store()
|
||||
|
||||
formdata = formdef.data_class()()
|
||||
|
||||
status_item = WorkflowStatusItem()
|
||||
assert status_item.check_auth(formdata, user) is True
|
||||
|
||||
status_item.by = []
|
||||
assert status_item.check_auth(formdata, user) is False
|
||||
|
||||
status_item.by = ['logged-users']
|
||||
assert status_item.check_auth(formdata, user) is True
|
||||
|
||||
status_item.by = [role.id]
|
||||
assert status_item.check_auth(formdata, user) is False
|
||||
status_item.by = [int(role.id)]
|
||||
assert status_item.check_auth(formdata, user) is False
|
||||
|
||||
user.roles = [role.id]
|
||||
status_item.by = [role.id]
|
||||
assert status_item.check_auth(formdata, user) is True
|
||||
status_item.by = [int(role.id)]
|
||||
assert status_item.check_auth(formdata, user) is True
|
||||
|
||||
status_item.by = ['_submitter']
|
||||
assert status_item.check_auth(formdata, user) is False
|
||||
formdata.user_id = user.id
|
||||
assert status_item.check_auth(formdata, user) is True
|
||||
formdata.user_id = None
|
||||
|
||||
status_item.by = ['_receiver']
|
||||
assert status_item.check_auth(formdata, user) is False
|
||||
formdata.workflow_roles = {'_receiver': user.id}
|
||||
assert status_item.check_auth(formdata, user) is True
|
||||
formdef.workflow_roles = {'_receiver': user.id}
|
||||
formdata.workflow_roles = None
|
||||
assert status_item.check_auth(formdata, user) is True
|
||||
|
|
Loading…
Reference in New Issue