23 |
23 |
from wcs import sessions
|
24 |
24 |
from wcs.fields import (StringField, DateField, MapField, FileField, ItemField,
|
25 |
25 |
ItemsField, CommentField)
|
|
26 |
from wcs.formdata import Evolution
|
26 |
27 |
from wcs.logged_errors import LoggedError
|
27 |
28 |
from wcs.roles import Role
|
28 |
29 |
from wcs.workflows import (Workflow, WorkflowStatusItem,
|
... | ... | |
3347 |
3348 |
formdata1.store()
|
3348 |
3349 |
|
3349 |
3350 |
|
|
3351 |
def test_global_timeouts_latest_arrival(two_pubs):
|
|
3352 |
pub = two_pubs
|
|
3353 |
FormDef.wipe()
|
|
3354 |
Workflow.wipe()
|
|
3355 |
|
|
3356 |
workflow = Workflow(name='global-timeouts')
|
|
3357 |
workflow.possible_status = Workflow.get_default_workflow().possible_status[:]
|
|
3358 |
workflow.criticality_levels = [
|
|
3359 |
WorkflowCriticalityLevel(name='green'),
|
|
3360 |
WorkflowCriticalityLevel(name='yellow'),
|
|
3361 |
WorkflowCriticalityLevel(name='red'),
|
|
3362 |
]
|
|
3363 |
action = workflow.add_global_action('Timeout Test')
|
|
3364 |
item = action.append_item('modify_criticality')
|
|
3365 |
trigger = action.append_trigger('timeout')
|
|
3366 |
trigger.anchor = 'latest-arrival'
|
|
3367 |
trigger.anchor_status_latest = 'wf-new'
|
|
3368 |
trigger.timeout = '2'
|
|
3369 |
workflow.store()
|
|
3370 |
|
|
3371 |
formdef = FormDef()
|
|
3372 |
formdef.name = 'baz'
|
|
3373 |
formdef.fields = []
|
|
3374 |
formdef.workflow_id = workflow.id
|
|
3375 |
formdef.store()
|
|
3376 |
formdef.data_class().wipe()
|
|
3377 |
|
|
3378 |
formdata1 = formdef.data_class()()
|
|
3379 |
formdata1.just_created()
|
|
3380 |
formdata1.store()
|
|
3381 |
|
|
3382 |
formdata1.jump_status('new')
|
|
3383 |
# enter in status 8 days ago
|
|
3384 |
formdata1.evolution[-1].time = time.localtime(time.time()-8*86400)
|
|
3385 |
# but get a new comment 1 day ago
|
|
3386 |
formdata1.evolution.append(Evolution())
|
|
3387 |
formdata1.evolution[-1].time = time.localtime(time.time()-1*86400)
|
|
3388 |
formdata1.evolution[-1].comment = 'plop'
|
|
3389 |
formdata1.store()
|
|
3390 |
pub.apply_global_action_timeouts()
|
|
3391 |
# no change
|
|
3392 |
assert formdef.data_class().get(formdata1.id).get_criticality_level_object().name == 'green'
|
|
3393 |
|
|
3394 |
formdata1.evolution[-1].time = time.localtime(time.time()-5*86400)
|
|
3395 |
formdata1.store()
|
|
3396 |
pub.apply_global_action_timeouts()
|
|
3397 |
# change
|
|
3398 |
assert formdef.data_class().get(formdata1.id).get_criticality_level_object().name == 'yellow'
|
|
3399 |
|
|
3400 |
|
3350 |
3401 |
def test_profile(two_pubs):
|
3351 |
3402 |
User = two_pubs.user_class
|
3352 |
3403 |
user = User()
|