summaryrefslogtreecommitdiff
path: root/addons/project_long_term
diff options
context:
space:
mode:
authoruco (OpenERP) <uco@tinyerp.com>2011-01-06 19:01:07 +0530
committeruco (OpenERP) <uco@tinyerp.com>2011-01-06 19:01:07 +0530
commit6d50b5a445d3bfbdddf22161359d35a73780bd01 (patch)
treed349e3cba9831c9b0502c86a86cca94cff19ec53 /addons/project_long_term
parent3917684c06c8d8d50bc5f101f3285b7554264671 (diff)
[ADD] project_long_term: Added a yaml for testing scheduled tasks.
bzr revid: uco@tinyerp.com-20110106133107-5obwr2qnpqypyiw0
Diffstat (limited to 'addons/project_long_term')
-rw-r--r--addons/project_long_term/__openerp__.py3
-rw-r--r--addons/project_long_term/test/test_schedule_tasks_case1.yml263
2 files changed, 265 insertions, 1 deletions
diff --git a/addons/project_long_term/__openerp__.py b/addons/project_long_term/__openerp__.py
index 795e0d758f8..05968811a4a 100644
--- a/addons/project_long_term/__openerp__.py
+++ b/addons/project_long_term/__openerp__.py
@@ -42,12 +42,13 @@ Features.
"test": [
'test/schedule_project_phases.yml',
'test/project_schedule_consecutive_day.yml',
- 'test/project_schedule_without_wroking_hour.yml'
+ 'test/project_schedule_without_wroking_hour.yml',
# 'test/schedule_project_tasks.yml',
# 'test/test_project_long_term.yml',
# 'test/schedule_phase_tasks.yml',
# 'test/test_schedule_phases_case1.yml',
# 'test/test_schedule_phases_case2.yml',
+ 'test/test_schedule_tasks_case1.yml',
],
"update_xml": [
"security/ir.model.access.csv",
diff --git a/addons/project_long_term/test/test_schedule_tasks_case1.yml b/addons/project_long_term/test/test_schedule_tasks_case1.yml
new file mode 100644
index 00000000000..78bf5e318a4
--- /dev/null
+++ b/addons/project_long_term/test/test_schedule_tasks_case1.yml
@@ -0,0 +1,263 @@
+-
+ In order to test scheduling of tasks, I create four tasks with different sequences and schedule them.
+-
+ I create address for first user.
+-
+ !record {model: res.partner.address, id: res_partner_address_user0}:
+ name: User 1
+-
+ I create address for second user.
+-
+ !record {model: res.partner.address, id: res_partner_address_user1}:
+ name: User 2
+-
+ I create first user.
+-
+ !record {model: res.users, id: res_users_user0}:
+ address_id: res_partner_address_user0
+ company_id: base.main_company
+ context_lang: en_US
+ groups_id:
+ - base.group_partner_manager
+ - base.group_user
+ login: user1
+ name: User 1
+ password: user1
+-
+ I create second user.
+-
+ !record {model: res.users, id: res_users_user1}:
+ address_id: res_partner_address_user1
+ company_id: base.main_company
+ context_lang: en_US
+ groups_id:
+ - base.group_partner_manager
+ - base.group_user
+ login: user2
+ name: User 2
+ password: user2
+-
+ I create a Project.
+-
+ !record {model: project.project, id: project_project_projecta0}:
+ balance: 0.0
+ credit: 0.0
+ currency_id: base.EUR
+ debit: 0.0
+ effective_hours: 0.0
+ name: Project A
+ members:
+ - res_users_user0
+ - res_users_user1
+ phase_ids:
+ - date_start: '2011-01-06'
+ duration: 2.0
+ name: Phase A
+ product_uom: product.uom_day
+ state: draft
+ task_ids:
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task D
+ planned_hours: 5.0
+ remaining_hours: 5.0
+ state: draft
+ total_hours: 5.0
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task C
+ planned_hours: 5.0
+ remaining_hours: 5.0
+ sequence: 11
+ state: draft
+ total_hours: 5.0
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task B
+ planned_hours: 5.0
+ remaining_hours: 5.0
+ sequence: 13
+ state: draft
+ total_hours: 5.0
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task A
+ planned_hours: 5.0
+ remaining_hours: 5.0
+ sequence: 14
+ state: draft
+ total_hours: 5.0
+ planned_hours: 20.0
+ progress_rate: 0.0
+ quantity: 0.0
+ quantity_max: 0.0
+ state: open
+ tasks:
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task D
+ planned_hours: 5.0
+ remaining_hours: 5.0
+ state: draft
+ total_hours: 5.0
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task C
+ planned_hours: 5.0
+ remaining_hours: 5.0
+ sequence: 11
+ state: draft
+ total_hours: 5.0
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task B
+ planned_hours: 5.0
+ remaining_hours: 5.0
+ sequence: 13
+ state: draft
+ total_hours: 5.0
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task A
+ planned_hours: 5.0
+ remaining_hours: 5.0
+ sequence: 14
+ state: draft
+ total_hours: 5.0
+ total_hours: 15.0
+-
+ I create first task with highest sequence.
+-
+ !record {model: project.task, id: project_task_taska0}:
+ delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task A
+ planned_hours: 5.0
+ project_id: project_project_projecta0
+ remaining_hours: 5.0
+ sequence: 14
+ state: draft
+ total_hours: 5.0
+-
+ I create second task.
+-
+ !record {model: project.task, id: project_task_taskb0}:
+ delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task B
+ planned_hours: 5.0
+ project_id: project_project_projecta0
+ remaining_hours: 5.0
+ sequence: 13
+ state: draft
+ total_hours: 5.0
+-
+ I create third task.
+-
+ !record {model: project.task, id: project_task_taskc0}:
+ delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task C
+ planned_hours: 5.0
+ project_id: project_project_projecta0
+ remaining_hours: 5.0
+ sequence: 11
+ state: draft
+ total_hours: 5.0
+-
+ I create fourth task with lowest sequence.
+-
+ !record {model: project.task, id: project_task_taskd0}:
+ delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task D
+ planned_hours: 5.0
+ project_id: project_project_projecta0
+ remaining_hours: 5.0
+ state: draft
+ total_hours: 5.0
+-
+ Now I create a resource for first user.
+-
+ !record {model: resource.resource, id: resource_resource_user0}:
+ name: User 1
+ resource_type: user
+ time_efficiency: 1.0
+ user_id: res_users_user0
+-
+ I create a resource for second user.
+-
+ !record {model: resource.resource, id: resource_resource_user1}:
+ name: User 2
+ resource_type: user
+ time_efficiency: 1.0
+ user_id: res_users_user1
+-
+ Now I create one phase for the project.
+-
+ !record {model: project.phase, id: project_phase_phasea0}:
+ date_start: '2011-01-06'
+ duration: 2.0
+ name: Phase A
+ product_uom: product.uom_day
+ project_id: project_project_projecta0
+ resource_ids:
+ - project_id: project_project_projecta0
+ resource_id: resource_resource_user0
+ - project_id: project_project_projecta0
+ resource_id: resource_resource_user1
+ state: draft
+ task_ids:
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task D
+ planned_hours: 5.0
+ project_id: project_project_projecta0
+ remaining_hours: 5.0
+ state: draft
+ total_hours: 5.0
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task C
+ planned_hours: 5.0
+ project_id: project_project_projecta0
+ remaining_hours: 5.0
+ sequence: 11
+ state: draft
+ total_hours: 5.0
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task B
+ planned_hours: 5.0
+ project_id: project_project_projecta0
+ remaining_hours: 5.0
+ sequence: 13
+ state: draft
+ total_hours: 5.0
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task A
+ planned_hours: 5.0
+ project_id: project_project_projecta0
+ remaining_hours: 5.0
+ sequence: 14
+ state: draft
+ total_hours: 5.0
+-
+ Now I create a record to schedule the tasks of project.
+-
+ !record {model: project.compute.tasks, id: project_compute_tasks0}:
+ project_id: project_project_projecta0
+-
+ I schedule the tasks.
+-
+ !python {model: project.compute.tasks}: |
+ self.compute_date(cr, uid, [ref("project_compute_tasks0")])
+-
+ I check that whether the tasks now allocated to respected resources or not.
+-
+ !python {model: project.task}: |
+ task_ids = self.search(cr, uid, [('project_id','=',ref('project_project_projecta0'))])
+ for task in self.browse(cr, uid, task_ids):
+ if (not task.user_id) or (not task.date_start) or (not task.date_end):
+ raise AssertionError("Tasks are not scheduled.")