!record {model: res.users, id: base.user_root}:
user_email: admin@openerp.com
-
- I test project template feature
+ I test project template feature.
-
- I create test project 'OpenERP Test Programme'
+ I create test project 'OpenERP Test Programme'.
-
!record {model: project.project, id: project_project_testprogramme0}:
company_id: base.main_company
name : account_analytic_account
partner_id: base.res_partner_asus
-
- I create project 'OpenERP Training Programme'
+ I create project 'OpenERP Training Programme'.
-
!record {model: project.project, id: project_project_openerptrainingprogramme0}:
company_id: base.main_company
date_start: !eval time.strftime('%Y-%m-%d')
date: !eval time.strftime('%Y-%m-%d')
-
- I create task 'Technical Training' for this project
+ I create task 'Technical Training' for this project.
-
!record {model: project.task, id: project_task_technicaltraining0}:
date_start: !eval time.strftime('%Y-%m-%d %H:%M:%S')
remaining_hours: 30.0
state: draft
-
- I create task 'Training' for this project
+ I create task 'Training' for this project.
-
!record {model: project.task, id: project_task_child0}:
date_start: !eval time.strftime('%Y-%m-%d %H:%M:%S')
remaining_hours: 30.0
state: done
-
- I create task 'Functional Training' for this project
+ I create task 'Functional Training' for this project.
-
!record {model: project.task, id: project_task_functionaltraining0}:
date_start: !eval time.strftime('%Y-%m-%d %H:%M:%S')
- project_task_child0
state: draft
-
- I set project's task view
+ I set project's task view.
-
!python {model: project.task}: |
context.update({'project_id': ref('project_task_functionaltraining0')})
!python {model: project.task}: |
self.do_open(cr, uid,[ref("project_task_functionaltraining0")],context={})
-
- I click Pending button
+ I click Pending button.
-
!python {model: project.task}: |
self.do_pending(cr, uid, [ref("project_task_functionaltraining0")], context={})
name: Technical Training Task's Work
task_id: project_task_technicaltraining0
-
- I create project's Work
+ I create project's Work.
-
!python {model: project.task.work}: |
vals = {
}
self.create(cr, uid, vals,context={"lang": "en_US", "active_ids": [ref("project_task_functionaltraining0")],"tz": False, "active_id": ref("project_task_functionaltraining0")})
-
- I add project's Work
+ I add project's Work.
-
!python {model: project.task.work}: |
vals = {
}
self.write(cr, uid, [ref('project_task_work0')], vals, context={"lang": "en_US", "active_ids": [ref("project_task_functionaltraining0")],"tz": False, "active_id": ref("project_task_functionaltraining0")})
-
- I get project's Work
+ I get project's Work.
-
!python {model: project.project}: |
self._get_project_work(cr, uid, [ref("project_task_work0")], context={"lang": "en_US", "active_ids": [ref("project_task_functionaltraining0")],"tz": False, "active_id": ref("project_task_functionaltraining0")})
!python {model: project.project}: |
self.onchange_partner_id(cr, uid, [ref("project_project_openerptrainingprogramme0")], part=ref('base.res_partner_asus'), context = {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_open_view_project_all")],"tz": False, "active_id": ref("project.menu_open_view_project_all")})
-
- I set project as project template
+ I set project as project template.
-
!python {model: project.project}: |
self.set_template(cr, uid, [ref("project_project_openerptrainingprogramme0")],
{"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_open_view_project_all")],
"tz": False, "active_id": ref("project.menu_open_view_project_all"), })
-
- I check if project in template state
+ I check if project in template state.
-
!assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in template state}:
- state == "template"
-
- I create new project based on this template
+ I create new project based on this template.
-
!python {model: project.project}: |
new_prj = self.duplicate_template(cr, uid, [ref("project_project_openerptrainingprogramme0")],
name = new_prj['name']
assert state == 'open', "Project in %s state. Project created from template project must be in open state"%state
-
- I reset project template to normal project
+ I reset project template to normal project.
-
!python {model: project.project}: |
self.reset_project(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids":
"ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"),
})
-
- I check if project in open state
+ I check if project in open state.
-
!assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in open state}:
- state == "open"
-
- I test for different project-states
+ I test for different project-states.
-
- Keep project pending
+ Keep project pending.
-
!python {model: project.project}: |
self.set_pending(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids":
"ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"),
})
-
- I check if project in pending state
+ I check if project in pending state.
-
!assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in pending state}:
- state == "pending"
-
- I cancel the project
+ I cancel the project.
-
!python {model: project.project}: |
self.set_cancel(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids":
"ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"),
})
-
- I check if project in cancel state
+ I check if project in cancel state.
-
!assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in cancel state}:
- state == "cancelled"
-
- Re-open the project
+ Re-open the project.
-
!python {model: project.project}: |
self.set_open(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": [ref("project.menu_open_view_project_all")],
"tz": False, "active_model": "ir.ui.menu", "project_id": False, "active_id":
ref("project.menu_open_view_project_all"), })
-
- Re-Check if project in open state
+ Re-Check if project in open state.
-
!assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in open state}:
- state == "open"
-
- I test for task work allocation
+ I test for task work allocation.
-
- As I cancelled my project before, i check if the task 'Technical Training' is in cancelled state
+ As I cancelled my project before, i check if the task 'Technical Training' is in cancelled state.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Task is in cancelled state}:
- state == "cancelled"
-
- Now, in order to reactivate the task 'Technical Training', i click on the "Reactivate" button and fill the remaining hour field
+ Now, in order to reactivate the task 'Technical Training', i click on the "Reactivate" button and fill the remaining hour field.
-
!record {model: project.task.reevaluate, id: project_task_technicaltraining_remainingwiz0}:
remaining_hours: 30.0
!python {model: project.task.reevaluate}: |
self.compute_hours(cr, uid, [ref('project_task_technicaltraining_remainingwiz0')], {'active_id': ref("project_task_technicaltraining0"),'button_reactivate': True})
- |
- I check if task 'Technical Training' in open state and for other initial values
+ I check if task 'Technical Training' in open state and for other initial values.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Project is in open state}:
- state == "open"
- delay_hours == 0.0
- effective_hours == 0.0
-
- I create a work task entry 'Training on OpenERP modules, models and classes' of 10 hours
+ I create a work task entry 'Training on OpenERP modules, models and classes' of 10 hours.
-
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
work_ids:
name: Training on OpenERP modules, models and classes
user_id: base.user_root
-
- I check for effective hours and remaining hours, effective_hours must be equal to 10
+ I check for effective hours and remaining hours, effective_hours must be equal to 10.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After work task of 10 hours effective_hours must be equal to 10}:
- remaining_hours == 20
- effective_hours == 10.0
-
- I create a work task entry 'Training on OpenERP xml views' of 10 hours
+ I create a work task entry 'Training on OpenERP xml views' of 10 hours.
-
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
work_ids:
name: Training on OpenERP xml views
user_id: base.user_root
-
- I check for effective hours and remaining hours, effective_hours must be equal to 20
+ I check for effective hours and remaining hours, effective_hours must be equal to 20.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After one more work task of 10 hours effective_hours must be equal to 20}:
- remaining_hours == 10
- effective_hours == 20.0
-
- I create a work task entry 'Training on workflows' of 10 hours
+ I create a work task entry 'Training on workflows' of 10 hours.
-
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
work_ids:
name: Training on workflows
user_id: base.user_root
-
- I check for effective hours and remaining hours, effective_hours must be equal to 30
+ I check for effective hours and remaining hours, effective_hours must be equal to 30.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After one more work task of 10 hours effective_hours must be equal to 30}:
- remaining_hours == 0
- effective_hours == 30.0
-
- I set remaining hours of 10 hours for reevaluating the task
+ I set remaining hours of 10 hours for reevaluating the task.
-
!record {model: project.task.reevaluate, id: config_compute_remaining_0}:
remaining_hours: 10.0
-
- I reevaluate the task
+ I reevaluate the task.
-
!python {model: project.task.reevaluate}: |
self.compute_hours(cr, uid, [ref("config_compute_remaining_0")], {"lang": "en_US",
[ref("project_task_technicaltraining0")], "active_id": ref("project_task_technicaltraining0"), })
-
- I check for effective hours and remaining hours, remaining_hours must be 10 while planned_hours remains 30
+ I check for effective hours and remaining hours, remaining_hours must be 10 while planned_hours remains 30.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After reevaluating the task with 10 hours remaining_hours must be 10 while planned_hours remains 30}:
- planned_hours == 30
- remaining_hours == 10.0
- effective_hours == 30.0
-
- I create a work task entry 'Training on reports and wizards' of 10 hours
+ I create a work task entry 'Training on reports and wizards' of 10 hours.
-
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
work_ids:
name: Training on reports and wizards
user_id: base.user_root
-
- I check for effective hours and remaining hours
+ I check for effective hours and remaining hours.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After one more work task of 10 hours effective_hours must be equal to 40 while planned_hours remains 30}:
- planned_hours == 30
- remaining_hours == 0
- effective_hours == 40.0
-
- I close the task
+ I close the task.
-
!python {model: project.task}: |
self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {'mail_send': False})
-
- I check if task in done state
+ I check if task in done state.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Task is in done state}:
- state == "done"
-
- I test for task reactivation
+ I test for task reactivation.
-
- I reactivate task
+ I reactivate task.
-
!record {model: project.task.reevaluate, id: config_compute_remaining_1}:
remaining_hours: 10.0
-
- Reevaluate the task with 10 hours remaining
+ Reevaluate the task with 10 hours remaining.
-
!python {model: project.task.reevaluate}: |
self.compute_hours(cr, uid, [ref("config_compute_remaining_1")], {"lang": "en_US",
1, "search_default_current": 1, "active_ids": [ref("project_task_technicaltraining0")], "active_id": ref("project_task_technicaltraining0"),
})
-
- I check for effective hours and remaining hours, remaining_hours must be 10 while planned_hours remains 30
+ I check for effective hours and remaining hours, remaining_hours must be 10 while planned_hours remains 30.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After reevaluating the task with 10 hours remaining_hours must be 10 while planned_hours remains 30}:
- planned_hours == 30
- remaining_hours == 10.0
- effective_hours == 40.0
-
- I create a work task entry 'Training on yml' of 5 hours
+ I create a work task entry 'Training on yml' of 5 hours.
-
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
work_ids:
name: Training on yml
user_id: base.user_root
-
- I check for effective hours and remaining hours, remaining_hours must be 5, effective_hours must be 45
+ I check for effective hours and remaining hours, remaining_hours must be 5, effective_hours must be 45.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After work task of 5 hours effective_hours must be equal to 45 and remaining_hours is 5}:
- planned_hours == 30
- remaining_hours == 5.0
- effective_hours == 45.0
-
- Check for remaining hours
+ Check for remaining hours.
-
!python {model: project.task}: |
self.onchange_remaining(cr, uid, [ref("project_task_functionaltraining0")], remaining = 10.0, planned = False)
-
- I close the task
+ I close the task.
-
!python {model: project.task}: |
self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {'mail_send': False})
-
- I check if task in done state
+ I check if task in done state.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error}:
- state == "done"
-
- I check for effective hours and remaining hours
+ I check for effective hours and remaining hours.
-
!assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After closing the task planned_hours must remain 30 effective_hours must be 45 and remaining hours must be 0}:
- planned_hours == 30
- remaining_hours == 0.0
- effective_hours == 45.0
-
- Now, Execute the search method
+ Now, Execute the search method.
-
!python {model: project.project}: |
context.update({"lang": "en_US", "active_ids": [ref("project.menu_open_view_project_all")],
except:
pass
-
- I copy project 'OpenERP Training Programme'
+ I copy project 'OpenERP Training Programme'.
-
!python {model: project.project}: |
self.copy(cr, uid, ref("project_project_testprogramme0"), default={}, context=None)
-
- I close project 'OpenERP Training Programme'
+ I close project 'OpenERP Training Programme'.
-
!python {model: project.project}: |
context.update({"lang": "en_US", "active_ids": [ref("project.menu_open_view_project_all")],
self.set_done(cr, uid, [ref("project_project_openerptrainingprogramme0")], context=context)
-
- I check if project in close state
+ I check if project in close state.
-
!assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: "Project must be in closed state"}:
- state == "close"
self.create(cr, uid, vals, context=None)
self.unlink(cr, uid, [ref('account_analytic_account0')])
-
- I close the project task
+ I close the project task.
-
!record {model: project.task.close, id: project_task_close_0}:
manager_warn : True
except :
pass
-
- I check for remaining hours
+ I check for remaining hours.
-
!python {model: project.task}: |
self.onchange_remaining(cr, uid, [ref("project_task_functionaltraining0")], remaining = 0.0, planned = 0.0)
-
!python {model: project.project}: |
self.unlink(cr, uid, [ref('project_project_testprogramme0')])
-
-
This scenario tests the delegation process. Closing all the delegated tasks(task delegation at multiple levels) transits the parent task from pending to open state.
-
- I creating a project OpenERP Documentation
+ I create a project OpenERP Documentation.
-
!record {model: project.project, id: project_project_openerpdocumentation0}:
company_id: base.main_company
name: OpenERP Documentation
-
- I creating a task 'Develop book for Technical and Functional reference'
+ I create a task 'Develop book for Technical and Functional reference'.
-
!record {model: project.task, id: project_task_documentation_book}:
name: Develop book for Technical and Functional reference
remaining_hours: 20.0
state: pending
-
- I open the 'Develop book for Technical and Functional reference' task
+ I open the 'Develop book for Technical and Functional reference' task.
-
!python {model: project.task}: |
self.do_open(cr, uid, [ref("project_task_documentation_book")],
{"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_action_view_task")],
"tz": False, "active_id": ref("project.menu_action_view_task"), })
-
- I creating a task 'Publish the References'
+ I create a task 'Publish the References'.
-
!record {model: project.task, id: project_task_publish_book}:
name: Publish the References
state: draft
-
- I open the task 'Publish the References'
+ I open the task 'Publish the References'.
-
!python {model: project.task}: |
self.do_open(cr, uid, [ref("project_task_publish_book")],
"tz": False, "active_id": ref("project.menu_action_view_task"), })
-
- I test the delegate wizard
+ I test the delegate wizard.
-
- I am creating a delegate task 'Publish the References' of 15 hours, renaming parent task to 'CHECK Publish the References' of 1 hour
+ I create a delegate task 'Publish the References' of 15 hours, renaming parent task to 'CHECK Publish the References' of 1 hour.
-
!record {model: project.task.delegate, id: project_task_publish_book_delegate}:
name: Publish the References
self.default_get(cr, uid, fields, context=context)
self.fields_view_get(cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False)
-
- I am validating the delegate task.
+ I validate the delegate task.
-
!python {model: project.task.delegate}: |
self.delegate(cr, uid, [ref('project_task_publish_book_delegate')], {"active_id": ref("project_task_publish_book")})
-
- I check if parent task 'CHECK Publish the References' is in pending state
+ I check if parent task 'CHECK Publish the References' is in pending state.
-
!assert {model: project.task, id: project_task_publish_book, severity: error, string: "Task must be in pending state after delegation"}:
- state == "pending"
-
- I am creating a delegate task 'Prepare a book that gives functional overview of OpenERP'
+ I create a delegate task 'Prepare a book that gives functional overview of OpenERP'.
-
!record {model: project.task, id: project_task_delegate_openerp_tutorial}:
name: Prepare a book that gives functional overview of OpenERP
state: draft
-
- I open the delegate task 'Prepare a book that gives functional overview of OpenERP'
+ I open the delegate task 'Prepare a book that gives functional overview of OpenERP'.
-
!python {model: project.task}: |
self.do_open(cr, uid, [ref("project_task_delegate_openerp_tutorial")],
"tz": False, "active_id": ref("project.menu_action_view_task"), })
-
- I am creating a delegate task 'Prepare a technical reference for creating your modules'
+ I create a delegate task 'Prepare a technical reference for creating your modules'.
-
!record {model: project.task, id: project_task_delegate_developer_book}:
name: Prepare a technical reference for creating your modules
state: draft
-
- I open the delegate task 'Prepare a technical reference for creating your modules'
+ I open the delegate task 'Prepare a technical reference for creating your modules'.
-
!python {model: project.task}: |
self.do_open(cr, uid, [ref("project_task_delegate_developer_book")],
"tz": False, "active_id": ref("project.menu_action_view_task"), })
-
- Now, delegate task 'Develop book for Technical and Functional reference' to these tasks and make it pending
+ Now, delegate task 'Develop book for Technical and Functional reference' to these tasks and make it pending.
-
!record {model: project.task, id: project_task_documentation_book}:
child_ids:
state: pending
-
- I am creating a delegate task 'Prepare documentation for Module Development'
+ I create a delegate task 'Prepare documentation for Module Development'.
-
!record {model: project.task, id: project_task_delegate_module_develop}:
name: Prepare documentation for Module Development
-
- I am creating a delegate 'Prepare documentation for Business Process Development'
+ I create a delegate 'Prepare documentation for Business Process Development'.
-
!record {model: project.task, id: project_task_delegate_business_process_develop}:
name: Prepare documentation for Business Process Development
state: draft
-
- Now, delegate task 'Prepare a technical reference for creating your modules' to these tasks and make it pending
+ Now, delegate task 'Prepare a technical reference for creating your modules' to these tasks and make it pending.
-
!record {model: project.task, id: project_task_delegate_developer_book}:
child_ids:
state: pending
-
- I open the task 'Prepare documentation for Business Process Development'
+ I open the task 'Prepare documentation for Business Process Development'.
-
!python {model: project.task}: |
self.do_open(cr, uid, [ref("project_task_delegate_module_develop")],
"tz": False, "active_id": ref("project.menu_action_view_task"), })
-
- I open the task 'Prepare documentation for Business Process Development'
+ I open the task 'Prepare documentation for Business Process Development'.
-
!python {model: project.task}: |
self.do_open(cr, uid, [ref("project_task_delegate_business_process_develop")],
{"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_action_view_task")],
"tz": False, "active_id": ref("project.menu_action_view_task"), })
-
- I check if 'Prepare a technical reference for creating your modules' in pending state
+ I check if 'Prepare a technical reference for creating your modules' in pending state.
-
!assert {model: project.task, id: project_task_delegate_developer_book, severity: error, string: Task must be in pending state}:
- state == "pending"
-
- I close the child task 'Prepare documentation for Module Development'
+ I close the child task 'Prepare documentation for Module Development'.
-
!python {model: project.task}: |
self.do_close(cr, uid, [ref("project_task_delegate_module_develop")], {"lang": "en_US",
})
-
- I close the child task 'Prepare documentation for Business Process Development'
+ I close the child task 'Prepare documentation for Business Process Development'.
-
!python {model: project.task}: |
self.do_close(cr, uid, [ref("project_task_delegate_business_process_develop")], {"lang": "en_US",
})
-
- Parent task 'Prepare a technical reference for creating your modules' task must now be in open state
+ Parent task 'Prepare a technical reference for creating your modules' task must now be in open state.
-
!assert {model: project.task, id: project_task_delegate_developer_book, severity: error, string: Task is in done state}:
- state == "open"
-
- I check if task 'Develop book for Technical and Functional reference' in pending state
+ I check if task 'Develop book for Technical and Functional reference' in pending state.
-
!assert {model: project.task, id: project_task_documentation_book, severity: error, string: Task is in pending state}:
- state == "pending"
-
- I close the child task 'Prepare a technical reference for creating your modules'
+ I close the child task 'Prepare a technical reference for creating your modules'.
-
!python {model: project.task}: |
self.do_close(cr, uid, [ref("project_task_delegate_developer_book")], {"lang": "en_US",
})
-
- I close the child task 'Prepare a book that gives functional overview of OpenERP'
+ I close the child task 'Prepare a book that gives functional overview of OpenERP'.
-
!python {model: project.task}: |
self.do_close(cr, uid, [ref("project_task_delegate_openerp_tutorial")], {"lang": "en_US",
})
-
- Parent task 'Develop book for Technical and Functional reference' must be now in open state
+ Parent task 'Develop book for Technical and Functional reference' must be now in open state.
-
!assert {model: project.task, id: project_task_documentation_book, severity: error, string: Task is in done state}:
- state == "open"
-
- Create a task 'Develop time management module' with monthly timebox
+ I create a task 'Develop time management module' with monthly timebox.
-
!record {model: project.task, id: project_task_developtimemanagementmodule0}:
name: Develop time management module
state: draft
timebox_id: project_gtd.timebox_monthly
-
- Copy the task
+ I copy the task.
-
!python {model: project.task}: |
self.copy_data(cr, uid, ref("project_task_developtimemanagementmodule0"), default=None, context=None)
self.fields_view_get(cr, uid, view_id=None, view_type='form', context={'active_id':ref('project_task_developtimemanagementmodule0')}, toolbar=False, submenu=False)
self.fields_view_get(cr, uid, view_id=None, view_type='search', context={'active_id':ref('project_task_developtimemanagementmodule0')}, toolbar=False, submenu=False)
-
- Change the time to next
+ I change the time to next.
-
!python {model: project.task}: |
self.next_timebox(cr, uid, [ref("project_task_developtimemanagementmodule0")])
-
- Change the time to previous
+ I change the time to previous.
-
!python {model: project.task}: |
self.prev_timebox(cr, uid, [ref("project_task_developtimemanagementmodule0")])
-
- Open the task
+ Open the task.
-
!python {model: project.task}: |
self.do_open(cr, uid, [ref("project_task_developtimemanagementmodule0")], {"lang":
[ref("project.menu_action_view_task")], "active_id": ref("project.menu_action_view_task"),
})
-
- Create time box for next week
+ I create time box for next week.
-
!record {model: project.gtd.timebox, id: project_gtd_timebox_nextweek0}:
name: Next Week
sequence: 0.0
-
- Create time box for tomorrow
+ I create time box for tomorrow.
-
!record {model: project.gtd.timebox, id: project_gtd_timebox_tomorrow1}:
name: Tomorrow
sequence: 0.0
-
- Planify the task from monthly timebox to tomorrow timebox
+ Planify the task from monthly timebox to tomorrow timebox.
-
!record {model: project.timebox.fill.plan, id: project_timebox_fill_plan_0}:
task_ids:
timebox_id: project_gtd.timebox_monthly
timebox_to_id: project_gtd_timebox_tomorrow1
-
- Set the task to tomorrow timebox
+ Set the task to tomorrow timebox.
-
!python {model: project.timebox.fill.plan}: |
self._get_from_tb(cr, uid, context=None)
[ref("project_gtd.timebox_daily")], "active_id": ref("project_gtd.timebox_daily"),
})
-
- Check if task set to tomorrow timebox
+ I check if task set to tomorrow timebox.
-
!assert {model: project.task, id: project_task_developtimemanagementmodule0, string: Task set to tomorrow timebox}:
- timebox_id.id == ref("project_gtd_timebox_tomorrow1")
-
- Empty Timebox for tomorrow
+ Empty Timebox for tomorrow.
-
!python {model: project.timebox.empty}: |
self.view_init(cr , uid , fields_list={}, context=None)
[ref("project_gtd_timebox_tomorrow1")], "active_id": ref("project_gtd_timebox_tomorrow1"),
})
-
- Check task 'Develop time management module' is no more in tomorrow timebox
+ I check task 'Develop time management module' is no more in tomorrow timebox.
-
!assert {model: project.task, id: project_task_developtimemanagementmodule0, string: Task is not in tomorrow timebox}:
- timebox_id.id != ref("project_gtd_timebox_tomorrow1")
-
- Create task 'Training' for this project
+ I create task 'Training' for this project.
-
!record {model: project.task, id: project_task_training0}:
date_start: !eval time.strftime('%Y-%m-%d %H:%M:%S')
remaining_hours: 30.0
state: draft
-
- Create a project issue
+ I create a project issue.
-
!record {model: project.issue, id: project_issue_onchangeevent0}:
categ_id: project_issue.bug_categ
working_hours_close: 0.0
working_hours_open: 0.0
-
- Check there is no task attached to project issue
+ I check there is no task attached to project issue.
-
!assert {model: project.issue, id: project_issue_onchangeevent0, string: There must not be any task attached to issue}:
- task_id.id == False
-
- Compute the days.
+ I compute the days.
-
!python {model: project.issue}: |
import time
}
self._compute_day(cr, uid, [ref('project_issue_onchangeevent0')], fields, args, context=None)
-
- Convert project issue to task
+ I convert project issue to task.
-
!python {model: project.issue}: |
try:
ref("project_issue.menu_project_issue_track"), })
-
- Check there is a task attached to project issue
+ I check there is a task attached to project issue.
-
!assert {model: project.issue, id: project_issue_onchangeevent0, string: After creating a task for the issue there must be a task attached to it}:
- task_id.id != False
-
- Get project issue's task work
+ Get project issue's task work.
-
!python {model: project.issue}: |
context.update({'project_id':ref('project.project_project_22')})
self._get_project(cr, uid, context)
-
- Creat some changes on project
+ I creat some changes on project.
-
!python {model: project.issue}: |
self.on_change_project(cr, uid, [ref("project_issue_onchangeevent0")],context)
-
- Go to next issue.
+ Now, go to next issue.
-
!python {model: project.issue}: |
self.next_type(cr, uid, [ref("project_issue_onchangeevent0")])
-
- Go to Previous issue.
+ Now, go to Previous issue.
-
!python {model: project.issue}: |
self.prev_type(cr, uid, [ref("project_issue_onchangeevent0")])
-
- Check the task.
+ I check the task.
-
!python {model: project.issue}: |
self.onchange_task_id(cr, uid, [ref("project_issue_onchangeevent0")], ref('project_task_training0'),context=None)
-
- Convert Issue to Feature.
+ I convert Issue to Feature.
-
!python {model: project.issue}: |
self.convert_to_feature(cr, uid, [ref("project_issue_onchangeevent0")])
-
- Convert Issue to Bug.
+ I convert Issue to Bug.
-
!python {model: project.issue}: |
self.convert_to_bug(cr, uid, [ref("project_issue_onchangeevent0")])
-
- Copy the issue.
+ I copy the issue.
-
!python {model: project.issue}: |
default=None
context=None
self.copy(cr, uid, ref("project_issue_onchangeevent0"),default, context)
-
- Create Message.
+ I create Message.
-
!python {model: project.issue}: |
msg = {
}
self.message_new(cr, uid,msg,context)
-
- Update this messages.
+ I update this messages.
-
!python {model: project.issue}: |
vals = {}
default_act = 'pending'
self.message_update(cr, uid, [ref('project_issue_onchangeevent0')], vals, msg, default_act, context)
-
- Send created and update the messages.
+ I send created and update the messages.
-
!python {model: project.issue}: |
self.msg_send(cr, uid, [ref('project_issue_onchangeevent0')])
!record {model: project.project, id: project.project_project_22}:
project_escalation_id: project.project_project_21
-
- Check escalate the project assign
+ I check escalate the project assign.
-
!python {model: project.project}: |
- self._check_escalation(cr, uid, [ref('project.project_project_22')], context=None)
+ self._check_escalation(cr, uid, [ref('project.project_project_22')], context=None)
-
- Create an issue for "Specific Developments" project
+ I create an issue for "Specific Developments" project.
-
!record {model: project.issue, id: project_issue_stockmovedates0}:
categ_id: project_issue.bug_categ
project_id: project.project_project_22
working_hours_close: 0.0
working_hours_open: 0.0
--
- Check if issue in 'draft' state
+-
+ I check if issue in 'draft' state.
-
!assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in draft state}:
- state == 'draft'
--
- Open the issue
--
+-
+ I open the issue.
+-
!python {model: project.issue}: |
self.case_open(cr, uid, [ref("project_issue_stockmovedates0")], {"lang":
"en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], "tz":
False, "active_model": "ir.ui.menu", "search_default_project_id": False, "search_default_my_bugs":
1, "search_default_user_id": 1, "search_default_current_bugs": 1, "project_id":
False, "active_id": ref("project_issue.menu_project_issue_track"), })
--
- Check if issue in 'open' state
+-
+ I check if issue in 'open' state.
-
!assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in open state}:
- state == 'open'
--
- Keep issue pending
--
+-
+ Keep issue pending.
+-
!python {model: project.issue}: |
self.case_pending(cr, uid, [ref("project_issue_stockmovedates0")],
{"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
})
--
- Keep issue in 'Escalate' state
--
+-
+ Keep issue in 'Escalate' state.
+-
!python {model: project.issue}: |
self.case_escalate(cr, uid, [ref("project_issue_stockmovedates0")],{"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
"tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
})
--
- Check if issue in 'Escalate' state
+-
+ I check if issue in 'Escalate' state.
-
!assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in pending state}:
- state == 'pending'
--
- Open the issue
--
+-
+ I open the issue.
+-
!python {model: project.issue}: |
self.case_open(cr, uid, [ref("project_issue_stockmovedates0")], {"lang":
"en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], "tz":
False, "active_model": "ir.ui.menu", "search_default_project_id": False, "search_default_my_bugs":
1, "search_default_user_id": 1, "search_default_current_bugs": 1, "project_id":
False, "active_id": ref("project_issue.menu_project_issue_track"), })
--
- Check if issue in 'open' state
+-
+ I check if issue in 'open' state.
-
!assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in open state}:
- state == 'open'
--
- Cancel the issue
--
+-
+ I cancel the issue.
+-
!python {model: project.issue}: |
self.case_cancel(cr, uid, [ref("project_issue_stockmovedates0")],
{"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
})
--
- Check if issue in 'cancel' state
+-
+ I check if issue in 'cancel' state.
-
!assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in cancel state}:
- state == 'cancel'
--
- Reset the issue
--
+-
+ Now, reset the issue.
+-
!python {model: project.issue}: |
self.case_reset(cr, uid, [ref("project_issue_stockmovedates0")],
{"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
})
--
- Check if issue in 'draft' state
+-
+ I check if issue in 'draft' state.
-
!assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in draft state}:
- state == 'draft'
--
- Close the issue
--
+-
+ I close the issue.
+-
!python {model: project.issue}: |
self.case_close(cr, uid, [ref("project_issue_stockmovedates0")],
{"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
})
--
- Check if issue in 'done' state
+-
+ I check if issue in 'done' state.
-
!assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in done state}:
- state == 'done'
name: "from Monday to Friday, from 9am to 17pm"
-
- I have set Day1 Working Time for Monday to Friday from 9am to 17pm working hour
+ I have set Day1 Working Time for Monday to Friday from 9am to 17pm working hour.
-
!record {model: resource.calendar.attendance, id: resource_calendar_atendanceday1}:
name: "Day1"
calendar_id : resource_calendar_hoursweeks0
-
- I have set Day2 Working Time for Monday to Friday from 9am to 17pm working hour
+ I have set Day2 Working Time for Monday to Friday from 9am to 17pm working hour.
-
!record {model: resource.calendar.attendance, id: resource_calendar_atendanceday1}:
name: "Day2"
calendar_id : resource_calendar_hoursweeks0
-
- I have set Day3 Working Time for Monday to Friday from 9am to 17pm working hour
+ I have set Day3 Working Time for Monday to Friday from 9am to 17pm working hour.
-
!record {model: resource.calendar.attendance, id: resource_calendar_atendanceday1}:
name: "Day3"
calendar_id : resource_calendar_hoursweeks0
-
- I have set Day4 Working Time for Monday to Friday from 9am to 17pm working hour
+ I have set Day4 Working Time for Monday to Friday from 9am to 17pm working hour.
-
!record {model: resource.calendar.attendance, id: resource_calendar_atendanceday1}:
name: "Day4"
calendar_id : resource_calendar_hoursweeks0
-
- I have set Day5 Working Time for Monday to Friday from 9am to 17pm working hour
+ I have set Day5 Working Time for Monday to Friday from 9am to 17pm working hour.
-
!record {model: resource.calendar.attendance, id: resource_calendar_atendanceday1}:
name: "Day5"
-
- Now Set working period to Project 'Develop yaml Project Module'
+ Now Set working period to Project 'Develop yaml Project Module'.
-
!python {model: project.project}: |
context.update({'resource_calendar_id': ref("resource_calendar_hoursweeks0")})
self.compute_allocation(cr, uid, [ref('project_project_developyamlproject0')], start_date, end_date, context)
self.generate_members(cr, uid, [ref('project_project_developyamlproject0')], context=None)
-
- Creating 3 consecutive 5-days phases.
+ I create 3 consecutive 5-days phases.
For that Creating a Analyst Human resource to analyst Project Yaml.
-
!record {model: resource.resource, id: resource_resource_analyst1}:
user_id: base.user_admin
-
- Creating Developer Human resource who develop Yaml
+ I create Developer Human resource who develop Yaml.
-
!record {model: resource.resource, id: resource_resource_develop0}:
calendar_id: project_long_term.resource_calendar_hoursweeks0
time_efficiency: 1.0
user_id: base.user_admin
-
- Creating a Tester Human resource for testing Yaml
+ I create a Tester Human resource for testing Yaml.
-
!record {model: resource.resource, id: resource_resource_tester1}:
calendar_id: project_long_term.resource_calendar_hoursweeks0
user_id: base.user_admin
-
- Create 3 a project phase and NO one depends on other one.
+ I create 3 a project phase and NO one depends on other one.
so,they should start on the same day.
- Creating First 'Analysis Flow for Yaml' Project Phase.
+ I create First 'Analysis Flow for Yaml' Project Phase.
-
!record {model: project.phase, id: project_phase_analysisflowforyaml0}:
date_start: !eval time.strftime('%Y-%m-%d')
state: draft
-
- I update the Constrain Date Start adn Date End for phase Analysis Flow for Yaml
+ I update the Constrain Date Start adn Date End for phase Analysis Flow for Yaml.
-
!python {model : project.phase }: |
import datetime
self.write(cr,uid, [(ref("project_phase_analysisflowforyaml0"))], {'constraint_date_start': start, 'constraint_date_end':end})
-
- Create project phase 'Develop yaml' with constraint date.
+ I create project phase 'Develop yaml' with constraint date.
-
!record {model: project.phase, id: project_phase_developyaml0}:
duration: 6.0
- project_phase_analysisflowforyaml0
-
- I update the Constrain Date Start adn Date End for phase Develop yaml
+ I update the Constrain Date Start adn Date End for phase Develop yaml.
-
!python {model : project.phase }: |
import datetime
self._get_default_uom_id(cr, uid)
self.write(cr,uid, [(ref("project_phase_developyaml0"))], {'constraint_date_start': start, 'constraint_date_end':end})
-
- Create project phase 'Test Yaml'
+ I create project phase 'Test Yaml'.
-
!record {model: project.phase, id: project_phase_testyaml0}:
duration: 6.0
constraint_date_start :
constraint_date_end :
-
- Compute Schedule of phases For One project
+ I compute Schedule of phases For One project.
-
!record {model: project.compute.phases, id: project_compute_phases_0}:
project_id: project_project_developyamlproject0
target_project: one
-
- Schedule project phases using "Compute Phase Scheduling"
+ I schedule project phases using "Compute Phase Scheduling".
-
!python {model: project.project}: |
self.schedule_phases(cr, uid, [ref("project_project_developyamlproject0")])
-
- After scheduling,check that
+ After scheduling,check that.
Phase "Analysis Flow for Yaml" and "Test Yaml" Phase should start on the project start date while "Develop yaml" Phase should respect the constraint.
-
!python {model: project.project}: |
if phase1.id != phase.id and phase.constraint_date_start == phase1.date_start:
raise AssertionError("Phases not scheduled")
-
- Now, I am Checking constraint start and end for Phase 'Develop Yaml'
+ Now, I am Checking constraint start and end for Phase 'Develop Yaml'.
-
!python {model: project.phase}: |
self._check_constraint_start(cr, uid, [ref("project_phase_developyaml0")],context)
self._check_constraint_end(cr, uid, [ref("project_phase_developyaml0")],context)
-
- I am opening the Phase 'Develop Yaml'
+ I am opening the Phase 'Develop Yaml'.
-
!python {model: project.phase}: |
self.set_open(cr, uid, [ref("project_phase_developyaml0")])
-
- Now, Compute the Total Hours
+ Now, Compute the Total Hours.
-
!python {model: project.phase}: |
field_name = 'test'
self._compute(cr, uid, [ref("project_phase_developyaml0")], field_name, arg, context=None)
-
- Now, change the partner if needed
+ Now, change the partner if needed.
-
!python {model: project.phase}: |
for project in self.browse(cr, uid, [ref('project_phase_developyaml0')], context):
except:
pass
-
- I am Postponding the Phase 'Develop Yaml' So Setting State to Pending
+ I am Postponding the Phase 'Develop Yaml' So Setting State to Pending.
-
!python {model: project.phase}: |
self.set_pending(cr, uid, [ref("project_phase_developyaml0")])
-
- Now, Done the Phase 'Develop Yaml'
+ Now, Done the Phase 'Develop Yaml'.
-
!python {model: project.phase}: |
self.set_done(cr, uid, [ref("project_phase_developyaml0")])
-
!python {model: project.phase}: |
self.set_cancel(cr, uid, [ref("project_phase_developyaml0")])
-
--
- Create a project 'Develop yaml Project Module'.
--
+-
+ I create a project 'Develop yaml Project Module'.
+-
!record {model: project.project, id: project_project_developyamlproject_2}:
name: "Develop Yaml Project Module"
date_start: !eval time.strftime('%Y-%m-%d')
--
+-
I have set Working Time from Monday to Friday from 9am to 17pm.
--
+-
!record {model: resource.calendar, id: resource_calendar_hoursweekstest_P2}:
name: "from Monday to Friday, from 9am to 17pm"
--
- I have set Day1 Working Time for Monday to Friday from 9am to 17pm working hour
--
+-
+ I have set Day1 Working Time for Monday to Friday from 9am to 17pm working hour.
+-
!record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day1}:
name: "Day1"
hour_from : 09.00
dayofweek : "0"
calendar_id : resource_calendar_hoursweekstest_P2
--
- I have set Day2 Working Time for Monday to Friday from 9am to 17pm working hour
--
+-
+ I have set Day2 Working Time for Monday to Friday from 9am to 17pm working hour.
+-
!record {model: resource.calendar.attendance, id: rresource_calendar_hoursweekstest_P2day2}:
name: "Day2"
hour_from : 09.00
hour_to : 17.00
dayofweek : "1"
calendar_id : resource_calendar_hoursweekstest_P2
-
--
- I have set Day3 Working Time for Monday to Friday from 9am to 17pm working hour
--
+
+-
+ I have set Day3 Working Time for Monday to Friday from 9am to 17pm working hour.
+-
!record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day3}:
name: "Day3"
hour_from : 09.00
hour_to : 17.00
- dayofweek : "2"
+ dayofweek : "2"
calendar_id : resource_calendar_hoursweekstest_P2
--
- I have set Day4 Working Time for Monday to Friday from 9am to 17pm working hour
--
+-
+ I have set Day4 Working Time for Monday to Friday from 9am to 17pm working hour.
+-
!record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day4}:
name: "Day4"
hour_from: 09.00
dayofweek: "3"
calendar_id: resource_calendar_hoursweekstest_P2
--
- I have set Day5 Working Time for Monday to Friday from 9am to 17pm working hour
+-
+ I have set Day5 Working Time for Monday to Friday from 9am to 17pm working hour.
-
!record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day5}:
name: "Day5"
dayofweek: "4"
calendar_id: resource_calendar_hoursweekstest_P2
--
- Now Set working period to Project 'Develop yaml Project Module'
--
- !python {model: project.project}: |
+-
+ Now Set working period to Project 'Develop yaml Project Module'.
+-
+ !python {model: project.project}: |
self.write(cr, uid, [ref("project_project_developyamlproject_2")], {'resource_calendar_id': ref("resource_calendar_hoursweekstest_P2")})
--
- Create 3 a project phase.
- First 'Analysis Flow for Yaml'Project Phase
--
+-
+ I create 3 a project phase.
+ First 'Analysis Flow for Yaml'Project Phase.
+-
!record {model: project.phase, id: project_project_developyamlproject_2_Phase1}:
date_start: !eval time.strftime('%Y-%m-%d')
duration: 5.0
product_uom: product.uom_day
project_id: project_project_developyamlproject_2
state: draft
-
--
- Create project phase 'Develop yaml'
--
+
+-
+ I create project phase 'Develop yaml'.
+-
!record {model: project.phase, id: project_project_developyamlproject_2_Phase2}:
duration: 5.0
name: Develop Yaml
project_id: project_project_developyamlproject_2
previous_phase_ids:
- project_project_developyamlproject_2_Phase1
-
--
- Create project phase 'Test Yaml'
--
+
+-
+ I create project phase 'Test Yaml'.
+-
!record {model: project.phase, id: project_project_developyamlproject_2_Phase3}:
duration: 5.0
name: Testing Yaml
product_uom: product.uom_day
project_id: project_project_developyamlproject_2
previous_phase_ids:
- - project_project_developyamlproject_2_Phase2
-
--
- Compute Schedule of phases For One project
--
+ - project_project_developyamlproject_2_Phase2
+
+-
+ I compute Schedule of phases For One project.
+-
!record {model: project.compute.phases, id: project_compute_phases_0}:
project_id: project_project_developyamlproject_2
target_project: one
-
--
- Schedule project phases using Compute Phase Scheduling
--
+
+-
+ I schedule project phases using Compute Phase Scheduling.
+-
!python {model: project.project}: |
self.schedule_phases(cr, uid, [ref("project_project_developyamlproject_2")])
-
+
-
After scheduling, Check that phases scheduled, check that either of phase's start_date, end_date not null.
-
proj=self.browse(cr, uid, [ref("project_project_developyamlproject_2")])[0]
for phase in proj.phase_ids:
if (not phase.responsible_id) or (not phase.date_start) or (not phase.date_end):
- raise AssertionError("Phases not scheduled")
+ raise AssertionError("Phases not scheduled")
--
- Schedule the task
--
+-
+ I schedule the task.
+-
!record {model: project.schedule.tasks, id: project_schedule_tasks_0}:
msg: Task Scheduling Completed Successfully
-
--
- Compute date and Phase Scheduling
--
- !python {model: project.schedule.tasks}: |
- self.default_get(cr, uid, fields_list = {}, context=None)
- self.compute_date(cr, uid, context=None)
+-
+ I compute date and Phase Scheduling.
+-
+ !python {model: project.schedule.tasks}: |
+ self.default_get(cr, uid, fields_list = {}, context=None)
+ self.compute_date(cr, uid, context=None)
-
- Create a project 'Develop yaml Implementation Module'.
+ I create a project 'Develop yaml Implementation Module'.
-
!record {model: project.project, id: project_project_developyamlproject_2}:
name: "Develop Yaml Project Module"
date_start: !eval time.strftime('%Y-%m-%d')
--
- Create 4 Project phase.
- First Project Phase 'Analysis Flow for Yaml'
--
+-
+ I create 4 Project phase.
+ First Project Phase 'Analysis Flow for Yaml'.
+-
!record {model: project.phase, id: project_project_developyamlproject_2_phase_1}:
date_start: !eval time.strftime('%Y-%m-%d')
duration: 6.0
project_id: project_project_developyamlproject_2
responsible_id: project.res_users_analyst
state: draft
-
--
- Create project phase 'Develop yaml'
--
+
+-
+ I create project phase 'Develop yaml'.
+-
!record {model: project.phase, id: project_project_developyamlproject_2_phase_2}:
duration: 6.0
name: "Develop yaml"
previous_phase_ids:
- project_project_developyamlproject_2_phase_1
state: draft
--
- Create project phase 'Test Yaml'
--
+-
+ I create project phase 'Test Yaml'.
+-
!record {model: project.phase, id: project_project_developyamlproject_2_phase_3}:
duration: 6.0
name: Testing Yaml
product_uom: product.uom_day
project_id: project_project_developyamlproject_2
previous_phase_ids:
- - project_project_developyamlproject_2_phase_2
+ - project_project_developyamlproject_2_phase_2
state: draft
--
- Create project phase 'Implement Yaml'
--
+-
+ I create project phase 'Implement Yaml'.
+-
!record {model: project.phase, id: project_project_developyamlproject_2_phase_4}:
duration: 6.0
name: Testing Yaml
product_uom: product.uom_day
project_id: project_project_developyamlproject_2
previous_phase_ids:
- - project_project_developyamlproject_2_phase_3
+ - project_project_developyamlproject_2_phase_3
state: draft
--
- Compute Schedule of phases For One project
--
+-
+ I compute Schedule of phases For One project .
+-
!record {model: project.compute.phases, id: project_compute_phases_0}:
project_id: project_project_developyamlproject_2
target_project: one
-
--
- Schedule project phases using Compute Phase Scheduling
--
+
+-
+ I schedule project phases using Compute Phase Scheduling.
+-
!python {model: project.project}: |
self.schedule_phases(cr, uid, [ref("project_project_developyamlproject_2")])
-
+
-
After scheduling, Check that phases scheduled, check that either of phase's start_date, end_date not null.
-
proj=self.browse(cr, uid, [ref("project_project_developyamlproject_2")])[0]
for phase in proj.phase_ids:
if (not phase.responsible_id) or (not phase.date_start) or (not phase.date_end):
- raise AssertionError("Phases not scheduled")
-
-
+ raise AssertionError("Phases not scheduled")
-
- Create project 'Develop an outlook-openerp synchronization plugin'
+ I create project 'Develop an outlook-openerp synchronization plugin'.
-
!record {model: project.project, id: project_project_project4}:
name: Develop an outlook-openerp synchronization plugin
- project.res_users_analyst
- project.res_users_finacial_manager
-
- Create phase 'Develop GUI' in Outlook
+ I create phase 'Develop GUI' in Outlook.
-
!record {model: project.phase, id: project_phase_phase0}:
date_start: !eval time.strftime("%Y-%m-%d")
- resource_id: project_long_term.resource_project_manager
-
- Create the phase task 'Develop GUI for Server Configuration'
+ I create the phase task 'Develop GUI for Server Configuration'.
-
!record {model: project.task, id: project_task_t0}:
name: Develop GUI for Server Configuration
-
- Create the phase task 'Develop GUI for Modules Configuration'
+ I create the phase task 'Develop GUI for Modules Configuration'.
-
!record {model: project.task, id: project_task_t1}:
name: Develop GUI for Modules Configuration
project_id: project_project_project4
-
- Create the phase task 'Develop GUI for OpenERP Synchronisation'
+ I create the phase task 'Develop GUI for OpenERP Synchronisation'.
-
!record {model: project.task, id: project_task_t2}:
name: Develop GUI for OpenERP Synchronisation
project_id: project_project_project4
-
- Create the phase task 'Design required GUI/Menus'
+ I create the phase task 'Design required GUI/Menus'.
-
!record {model: project.task, id: project_task_3}:
name: Design required GUI/Menus
project_id: project_project_project4
-
- Schedule phase tasks
+ Schedule phase tasks.
-
!python {model: project.phase}: |
res = self.schedule_tasks(cr, uid, [ref("project_phase_phase0")])
-
- Check if tasks scheduled, check that either of task's start_date, end_date and user_id is not null
+ I check if tasks scheduled, check that either of task's start_date, end_date and user_id is not null.
-
!python {model: project.phase}: |
phase = self.browse(cr, uid, [ref("project_phase_phase0")])[0]
-
- Create a project 'World Bank's Project'
+ I create a project 'World Bank's Project'.
-
!record {model: project.project, id: project_project_worldbanksproject0}:
name: "World Bank's Project"
- project.res_users_tester
-
- Create a project phase 'Defining Client's Basic Idea of Project'
+ I create a project phase 'Defining Client's Basic Idea of Project'.
-
!record {model: project.phase, id: project_phase_definingclientsbasicideaofproject0}:
date_start: !eval time.strftime('%Y-%m-%d')
project_id: project_project_worldbanksproject0
-
- Create project phase 'Establishing Project Feasibility'
+ I create project phase 'Establishing Project Feasibility'.
-
!record {model: project.phase, id: project_phase_establishingprojectfeasibility0}:
date_start: !eval time.strftime('%Y-%m-%d')
resource_id: project_long_term.resource_project_manager
phase_id: project_phase_definingclientsbasicideaofproject0
-
- call get_name function
+ call get_name function.
-
!python {model: project.resource.allocation}: |
arg={}
phase_id: project_phase_definingclientsbasicideaofproject0
-
- Create the phase task 'Develop GUI for Server Configuration'
+ I create the phase task 'Develop GUI for Server Configuration'.
-
!record {model: project.task, id: project_task_t0}:
name: Develop GUI for Server Configuration
project_id: project_project_worldbanksproject0
-
- Create the phase task 'Develop GUI for Modules Configuration'
+ I create the phase task 'Develop GUI for Modules Configuration'.
-
!record {model: project.task, id: project_task_t1}:
name: Develop GUI for Modules Configuration
project_id: project_project_worldbanksproject0
-
- Create project phase 'Preparation of Engineering Designs'
+ I create project phase 'Preparation of Engineering Designs'.
-
!record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}:
date_start: !eval time.strftime('%Y-%m-%d')
phase_id: project_phase_preparationofengineeringdesigns0
-
- Create the phase task 'Develop GUI for Client Configuration'
+ I create the phase task 'Develop GUI for Client Configuration'.
-
!record {model: project.task, id: project_task_t2}:
name: Develop GUI for Server Configuration
project_id: project_project_worldbanksproject0
-
- Create the phase task 'Develop GUI for Client Module Configuration'
+ I create the phase task 'Develop GUI for Client Module Configuration'.
-
!record {model: project.task, id: project_task_t3}:
name: Develop GUI for Modules Configuration
-
- Create project phase 'Procurement of Works and Goods'
+ I create project phase 'Procurement of Works and Goods'.
-
!record {model: project.phase, id: project_phase_procurementofworksandgoods0}:
date_start: !eval time.strftime('%Y-%m-%d')
project_id: project_project_worldbanksproject0
-
- Create project phase 'Project Construction'
+ I create project phase 'Project Construction'.
-
!record {model: project.phase, id: project_phase_projectconstruction0}:
date_start: !eval time.strftime('%Y-%m-%d')
-
- Create project phase 'Project Completion'
+ I create project phase 'Project Completion'.
-
!record {model: project.phase, id: project_phase_projectcompletion0}:
date_start: !eval time.strftime('%Y-%m-%d')
project_id: project_project_worldbanksproject0
-
- Set previous phase for phase 'Establishing Project Feasibility'
+ I set previous phase for phase 'Establishing Project Feasibility'.
-
!record {model: project.phase, id: project_phase_establishingprojectfeasibility0}:
previous_phase_ids:
-
- Set previous phase for phase 'Preparation of Engineering Designs'
+ I set previous phase for phase 'Preparation of Engineering Designs'.
-
!record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}:
previous_phase_ids:
- project_phase_establishingprojectfeasibility0
-
- Set previous phase for phase 'Procurement of Works and Goods'
+ I set previous phase for phase 'Procurement of Works and Goods'.
-
!record {model: project.phase, id: project_phase_procurementofworksandgoods0}:
previous_phase_ids:
- project_phase_preparationofengineeringdesigns0
-
- Set previous phase for phase 'Project Construction'
+ I set previous phase for phase 'Project Construction'.
-
!record {model: project.phase, id: project_phase_projectconstruction0}:
previous_phase_ids:
-
- Set previous phase for phase 'Project Completion'
+ I set previous phase for phase 'Project Completion'.
-
!record {model: project.phase, id: project_phase_projectcompletion0}:
previous_phase_ids:
-
- Get the project to schedule phases
+ I get the project to schedule phases.
-
!record {model: project.compute.phases, id: project_compute_phases_0}:
project_id: project_project_worldbanksproject0
-
- Schedule project phases
+ I schedule project phases.
-
!python {model: project.project}: |
self.schedule_phases(cr, uid, ref("project_project_worldbanksproject0"))
-
- Check if phases scheduled, check that either of phase's start_date, end_date and user_id is not null
+ I check if phases scheduled, check that either of phase's start_date, end_date and user_id is not null.
-
!python {model: project.project}: |
prj=self.browse(cr, uid, [ref("project_project_worldbanksproject0")])[0]
for phase in prj.phase_ids:
if (not phase.responsible_id) or (not phase.date_start) or (not phase.date_end):
raise AssertionError("Tasks not scheduled")
-
-
--
- Create project 'Develop a thunderbird-openerp synchronization plugin'
--
+-
+ I create project 'Develop a thunderbird-openerp synchronization plugin'.
+-
!record {model: project.project, id: project_project_project1}:
name: Develop a thunderbird-openerp synchronization plugin
members:
- project.res_users_tester
- project.res_users_analyst
- project.res_users_finacial_manager
-
--
- Create phase 'Develop GUI' in thunderbird
--
+
+-
+ I create phase 'Develop GUI' in thunderbird.
+-
!record {model: project.phase, id: project_phase_phase1}:
date_start: !eval time.strftime('%Y-%m-%d')
duration: 200.0
useability: 30.0
- resource_id: project_long_term.resource_designer
useability: 30.0
-
-
--
- Create the phase task 'Develop GUI for Server Configuration'
--
+
+
+-
+ I create the phase task 'Develop GUI for Server Configuration'.
+-
!record {model: project.task, id: project_task_t10}:
name: Develop GUI for Server Configuration
planned_hours: 20.0
phase_id: project_phase_phase1
project_id: project_project_project1
user_id: project.res_users_developer
-
--
- Create the phase task 'Develop GUI for Modules Configuration'
--
+
+-
+ I create the phase task 'Develop GUI for Modules Configuration'.
+-
!record {model: project.task, id: project_task_t11}:
name: Develop GUI for Modules Configuration
planned_hours: 25.0
phase_id: project_phase_phase1
project_id: project_project_project1
user_id: project.res_users_developer
--
- Create the phase task 'Develop GUI for OpenERP Synchronisation'
--
+-
+ I create the phase task 'Develop GUI for OpenERP Synchronisation'.
+-
!record {model: project.task, id: project_task_t12}:
name: Develop GUI for OpenERP Synchronisation
planned_hours: 30.0
phase_id: project_phase_phase1
project_id: project_project_project1
user_id: project.res_users_developer
--
- Create the phase task 'Design required GUI/Menus'
--
+-
+ I create the phase task 'Design required GUI/Menus'.
+-
!record {model: project.task, id: project_task_13}:
name: Design required GUI/Menus
planned_hours: 25.0
phase_id: project_phase_phase1
project_id: project_project_project1
user_id: project.res_users_designer
-
-
--
- Schedule tasks
--
+
+
+-
+ I schedule tasks.
+-
!python {model: project.project}: |
self.schedule_tasks(cr, uid, ref("project_project_project1"))
-
- Check if tasks scheduled, check that either of task's start_date, end_date and user_id is not null
+ I check if tasks scheduled, check that either of task's start_date, end_date and user_id is not null.
-
!python {model: project.project}: |
prj = self.browse(cr, uid, [ref("project_project_project1")])[0]
test it with two different dates for scheduling.
-
I create a project Development and Testing.
--
+-
!record {model: project.project, id: project_project_project_case1}:
name: "Development and Testing"
date_start: !eval time.strftime('%Y-%m-%d')
- project.project_tt_development
- project.project_tt_testing
- project.project_tt_merge
--
+-
I create first phase of the project.
--
+-
!record {model: project.phase, id: project_phase_firstphase0_case1}:
duration: 2.0
name: First Phase
product_uom: product.uom_day
project_id: project_project_project_case1
state: draft
--
+-
I create second phase of the project.
--
+-
!record {model: project.phase, id: project_phase_secondphase0_case2}:
duration: 3.0
name: Second Phase
-
- In order to test scheduling of project phases, I create two different
+ In order to test scheduling of project phases, I create two different
working periods and resources. And schedule the phases.
--
+-
I create first working period 'Working Time A'.
--
+-
!record {model: resource.calendar, id: resource_calendar_workingtimea0}:
attendance_ids:
- dayofweek: '0'
name: Thursday
name: Working Time A
--
- Creating a resource.calendar.attendance record
--
+-
+ I create a resource.calendar.attendance record.
+-
!record {model: resource.calendar.attendance, id: resource_calendar_attendance_monday0}:
calendar_id: resource_calendar_workingtimea0
dayofweek: '0'
hour_from: 10.0
hour_to: 16.0
name: Monday
--
- Creating a resource.calendar.attendance record
--
+-
+ I create a resource.calendar.attendance record.
+-
!record {model: resource.calendar.attendance, id: resource_calendar_attendance_tuesday0}:
calendar_id: resource_calendar_workingtimea0
dayofweek: '1'
hour_from: 10.0
hour_to: 16.0
name: Tuesday
--
- Creating a resource.calendar.attendance record
--
+-
+ I create a resource.calendar.attendance record.
+-
!record {model: resource.calendar.attendance, id: resource_calendar_attendance_wednesday0}:
calendar_id: resource_calendar_workingtimea0
dayofweek: '2'
hour_from: 10.0
hour_to: 16.0
name: Wednesday
--
- Creating a resource.calendar.attendance record
--
+-
+ I create a resource.calendar.attendance record.
+-
!record {model: resource.calendar.attendance, id: resource_calendar_attendance_thursday0}:
calendar_id: resource_calendar_workingtimea0
dayofweek: '3'
hour_from: 10.0
hour_to: 16.0
name: Thursday
--
+-
I create second working period 'Working Time B'.
--
+-
!record {model: resource.calendar, id: resource_calendar_workingtimeb0}:
attendance_ids:
- dayofweek: '4'
hour_to: 18.0
name: Friday
name: Working Time B
--
- Creating a resource.calendar.attendance record
--
+-
+ I create a resource.calendar.attendance record.
+-
!record {model: resource.calendar.attendance, id: resource_calendar_attendance_friday0}:
calendar_id: resource_calendar_workingtimeb0
dayofweek: '4'
hour_from: 9.0
hour_to: 18.0
name: Friday
--
+-
I create first resource say 'Resource X' without assigning working period.
--
+-
!record {model: resource.resource, id: resource_resource_resourcex0}:
name: Resource X
resource_type: user
time_efficiency: 1.0
user_id: base.user_admin
--
+-
I create first resource say 'Resource Y' with working period 'Working Time B'.
--
+-
!record {model: resource.resource, id: resource_resource_resourcey0}:
calendar_id: resource_calendar_workingtimeb0
name: Resource Y
resource_type: user
time_efficiency: 1.0
user_id: base.user_admin
--
+-
I create a project 'Development and Testing' and assign working period 'Working Time A'.
--
+-
!record {model: project.project, id: project_project_project0}:
balance: 0.0
credit: 0.0
- project.project_tt_development
- project.project_tt_testing
- project.project_tt_merge
-
--
+
+-
I create a phase 'Initial Phase' for project 'Development and Testing'.
--
+-
!record {model: project.phase, id: project_phase_phase0}:
date_start: '2011-01-03'
duration: 0.0
product_uom: product.uom_day
project_id: project_project_project0
state: draft
--
+-
I create first task 'Developing module' and assign 10h.
--
+-
!record {model: project.task, id: project_task_task0}:
delay_hours: 0.0
effective_hours: 0.0
state: draft
total_hours: 10.0
phase_id: project_phase_phase0
--
+-
I create first task 'Testing module' and assign 10h.
--
+-
!record {model: project.task, id: project_task_task1}:
delay_hours: 0.0
effective_hours: 0.0
-
!python {model: project.compute.phases}: |
self.check_selection(cr, uid, [ref("project_compute_phases0")])
-