|
| 1 | +from ftw.builder import Builder |
| 2 | +from ftw.builder import create |
1 | 3 | from ftw.testbrowser import browsing |
2 | 4 | from opengever.base.role_assignments import RoleAssignmentManager |
3 | 5 | from opengever.base.role_assignments import SharingRoleAssignment |
| 6 | +from opengever.task.browser.accept.utils import accept_task_with_successor |
4 | 7 | from opengever.task.browser.transitioncontroller import TaskTransitionController |
5 | 8 | from opengever.tasktemplates.interfaces import IFromTasktemplateGenerated |
6 | 9 | from opengever.testing import IntegrationTestCase |
@@ -255,6 +258,43 @@ def test_only_available_for_tasktemplate_process_main_tasks(self): |
255 | 258 | self.assertNotIn( |
256 | 259 | self.transition, self.get_workflow_transitions_for(self.subtask)) |
257 | 260 |
|
| 261 | + @browsing |
| 262 | + def test_not_available_for_predecessor_and_successor(self, browser): |
| 263 | + self.login(self.dossier_responsible, browser) |
| 264 | + predecessor = create( |
| 265 | + Builder('task') |
| 266 | + .within(self.dossier) |
| 267 | + .having(issuer=self.dossier_responsible.id, |
| 268 | + responsible=self.regular_user.id, |
| 269 | + responsible_client='rk', |
| 270 | + task_type='correction') |
| 271 | + .in_state('task-state-open') |
| 272 | + .titled(u'Inquiry from a concerned citizen')) |
| 273 | + |
| 274 | + sql_task = predecessor.get_sql_object() |
| 275 | + with self.login(self.regular_user): |
| 276 | + successor = accept_task_with_successor( |
| 277 | + self.dossier, |
| 278 | + 'plone:%s' % sql_task.int_id, |
| 279 | + u'I accept this task', |
| 280 | + ) |
| 281 | + |
| 282 | + self.assertNotIn(self.transition, self.get_workflow_transitions_for(predecessor)) |
| 283 | + self.assertNotIn(self.transition, self.get_workflow_transitions_for(successor)) |
| 284 | + |
| 285 | + @browsing |
| 286 | + def test_available_for_forwarding_successor(self, browser): |
| 287 | + self.login(self.secretariat_user, browser) |
| 288 | + forwarding_successor = create( |
| 289 | + Builder('task') |
| 290 | + .within(self.dossier) |
| 291 | + .having(issuer=self.secretariat_user.id, |
| 292 | + responsible=self.regular_user.id, |
| 293 | + responsible_client='rk', |
| 294 | + task_type='correction') |
| 295 | + .in_state('task-state-in-progress').successor_from(self.inbox_forwarding)) |
| 296 | + self.assertIn(self.transition, self.get_workflow_transitions_for(forwarding_successor)) |
| 297 | + |
258 | 298 |
|
259 | 299 | class TestInProgressResolvedGuard(BaseTransitionGuardTests): |
260 | 300 | transition = 'task-transition-in-progress-resolved' |
|
0 commit comments