summaryrefslogtreecommitdiff
path: root/addons/project_long_term
diff options
context:
space:
mode:
authorpap (openerp) <pap@tinyerp.co.in>2010-06-03 16:54:20 +0530
committerpap (openerp) <pap@tinyerp.co.in>2010-06-03 16:54:20 +0530
commit7ac215e587ea4107a705f1b57ac43ec3fefeb9ee (patch)
tree761766f448e7f2b0bdd14db859313d420381fa18 /addons/project_long_term
parent7d239dc01d9b986ebd311ff5bdfdcb72ec02fb07 (diff)
[ADD]:added yml test for project and project_ modules
bzr revid: pap@tinyerp.co.in-20100603112420-uofelwn685xlheum
Diffstat (limited to 'addons/project_long_term')
-rw-r--r--addons/project_long_term/__openerp__.py5
-rw-r--r--addons/project_long_term/test/schedule_phase_tasks.yml101
-rw-r--r--addons/project_long_term/test/schedule_project_phases.yml143
-rw-r--r--addons/project_long_term/test/schedule_project_tasks.yml108
-rw-r--r--addons/project_long_term/wizard/project_compute_phases_view.xml32
-rw-r--r--addons/project_long_term/wizard/project_compute_tasks.py6
-rw-r--r--addons/project_long_term/wizard/project_schedule_tasks.py6
-rw-r--r--addons/project_long_term/wizard/project_schedule_tasks_view.xml11
8 files changed, 384 insertions, 28 deletions
diff --git a/addons/project_long_term/__openerp__.py b/addons/project_long_term/__openerp__.py
index 32945899b30..bc82231935d 100644
--- a/addons/project_long_term/__openerp__.py
+++ b/addons/project_long_term/__openerp__.py
@@ -38,6 +38,11 @@
""",
"init_xml" : [],
"demo_xml" : ["project_long_term_demo.xml"],
+ "test" : [
+# 'test/schedule_project_phases.yml',
+# 'test/schedule_project_tasks.yml',
+# 'test/schedule_phase_tasks.yml'
+ ],
"update_xml": [
"security/ir.model.access.csv",
"project_long_term_wizard.xml" ,
diff --git a/addons/project_long_term/test/schedule_phase_tasks.yml b/addons/project_long_term/test/schedule_phase_tasks.yml
new file mode 100644
index 00000000000..73b4e204188
--- /dev/null
+++ b/addons/project_long_term/test/schedule_phase_tasks.yml
@@ -0,0 +1,101 @@
+-
+ Create project Project123
+-
+ !record {model: project.project, id: project_project_project0}:
+ company_id: base.main_company
+ name: Project123
+ members:
+ - project_long_term.res_users_manager0
+ - project_long_term.res_users_user0
+ - project_long_term.res_users_userfinance0
+ - project_long_term.res_users_userdesign0
+ - project_long_term.res_users_userdeveloper0
+ - project_long_term.res_users_usertester0
+ - project_long_term.res_users_useranalyst0
+-
+ Create phase phase123
+-
+ !record {model: project.phase, id: project_phase_phase0}:
+ date_start: '2010-06-02 00:00:00'
+ duration: 200.0
+ name: phase123
+ product_uom: product.uom_day
+ project_id: project_project_project0
+ state: draft
+ resource_ids:
+ - resource_id: project_long_term.resource_resource_analyst0
+ useability: 80.0
+ - resource_id: project_long_term.resource_resource_programmer0
+ useability: 30.0
+ - resource_id: project_long_term.resource_resource_webdesigner0
+ useability: 30.0
+
+
+-
+ Create the project task t1
+-
+ !record {model: project.task, id: project_task_t0}:
+ name: t1
+ occupation_rate: 1.0
+ planned_hours: 20.0
+ remaining_hours: 20.0
+ state: draft
+ phase_id: project_phase_phase0
+ project_id: project_project_project0
+
+
+-
+ Create the project task t2
+-
+ !record {model: project.task, id: project_task_t1}:
+ name: t2
+ occupation_rate: 1.0
+ planned_hours: 25.0
+ remaining_hours: 25.0
+ state: draft
+ phase_id: project_phase_phase0
+ project_id: project_project_project0
+
+-
+ Create the project task t3
+-
+ !record {model: project.task, id: project_task_t2}:
+ name: t3
+ occupation_rate: 1.0
+ planned_hours: 30.0
+ remaining_hours: 30.0
+ state: draft
+ phase_id: project_phase_phase0
+ project_id: project_project_project0
+
+
+-
+ Create the project task t4
+-
+ !record {model: project.task, id: project_task_3}:
+ name: t4
+ occupation_rate: 1.0
+ planned_hours: 25.0
+ remaining_hours: 25.0
+ state: draft
+ phase_id: project_phase_phase0
+ project_id: project_project_project0
+
+
+-
+ Schedule phase tasks
+-
+ !python {model: project.schedule.tasks}: |
+ self.compute_date(cr, uid, {"lang": "en_US",
+ "active_model": "project.phase", "active_ids": [ref("project_phase_phase0")],
+ "tz": False, "record_id": 138, "project_id": ref("project_project_project0"), "active_id": ref("project_phase_phase0"),
+ })
+
+-
+ 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]
+ for task in phase.task_ids:
+ if (not task.user_id) or (not task.date_start) or (not task.date_end):
+ raise AssertionError("Phase Tasks not scheduled") \ No newline at end of file
diff --git a/addons/project_long_term/test/schedule_project_phases.yml b/addons/project_long_term/test/schedule_project_phases.yml
new file mode 100644
index 00000000000..470f2dc2e48
--- /dev/null
+++ b/addons/project_long_term/test/schedule_project_phases.yml
@@ -0,0 +1,143 @@
+-
+ Create a project 'World Bank's Project'
+-
+ !record {model: project.project, id: project_project_worldbanksproject0}:
+ company_id: base.main_company
+ name: "World Bank's Project"
+ priority: 4
+
+-
+ Create a project phase 'Defining Client's Basic Idea of Project'
+-
+ !record {model: project.phase, id: project_phase_definingclientsbasicideaofproject0}:
+ date_start: '2010-06-02 00:00:00'
+ duration: 15.0
+ name: "Defining Client's Basic Idea of Project"
+ product_uom: product.uom_day
+ project_id: project_project_worldbanksproject0
+ state: draft
+
+
+-
+ Create project phase 'Establishing Project Feasibility'
+-
+ !record {model: project.phase, id: project_phase_establishingprojectfeasibility0}:
+ date_start: '2010-06-02 00:00:00'
+ duration: 30.0
+ name: Establishing Project Feasibility
+ product_uom: product.uom_day
+ project_id: project_project_worldbanksproject0
+ state: draft
+
+-
+ Create project phase 'Preparation of Engineering Designs'
+-
+ !record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}:
+ date_start: '2010-06-02 00:00:00'
+ duration: 100.0
+ name: Preparation of Engineering Designs
+ product_uom: product.uom_hour
+ project_id: project_project_worldbanksproject0
+ state: draft
+
+
+-
+ Create project phase 'Procurement of Works and Goods'
+-
+ !record {model: project.phase, id: project_phase_procurementofworksandgoods0}:
+ date_start: '2010-06-02 00:00:00'
+ duration: 24.0
+ name: Procurement of Works and Goods
+ product_uom: product.uom_hour
+ project_id: project_project_worldbanksproject0
+ state: draft
+
+
+-
+ Create project phase 'Project Construction'
+-
+ !record {model: project.phase, id: project_phase_projectconstruction0}:
+ date_start: '2010-06-02 00:00:00'
+ duration: 4320.0
+ name: Project Construction
+ product_uom: product.uom_hour
+ project_id: project_project_worldbanksproject0
+ state: draft
+
+
+-
+ Create project phase 'Project Completion'
+-
+ !record {model: project.phase, id: project_phase_projectcompletion0}:
+ date_start: '2010-06-02 00:00:00'
+ duration: 240.0
+ name: Project Completion
+ product_uom: product.uom_hour
+ project_id: project_project_worldbanksproject0
+ state: draft
+
+-
+ Set previous phase for phase 'Establishing Project Feasibility'
+-
+ !record {model: project.phase, id: project_phase_establishingprojectfeasibility0}:
+ previous_phase_ids:
+ - project_phase_definingclientsbasicideaofproject0
+
+
+-
+ 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'
+-
+ !record {model: project.phase, id: project_phase_procurementofworksandgoods0}:
+ previous_phase_ids:
+ - project_phase_preparationofengineeringdesigns0
+
+-
+ Set previous phase for phase 'Project Construction'
+-
+ !record {model: project.phase, id: project_phase_projectconstruction0}:
+ previous_phase_ids:
+ - project_phase_procurementofworksandgoods0
+
+
+-
+ Set previous phase for phase 'Project Completion'
+-
+ !record {model: project.phase, id: project_phase_projectcompletion0}:
+ previous_phase_ids:
+ - project_phase_projectconstruction0
+
+
+-
+ Get the project to schedule phases
+-
+ !record {model: project.compute.phases, id: project_compute_phases_0}:
+ project_id: project_project_worldbanksproject0
+ target_project: one
+
+
+-
+ Schedule project phases
+-
+ !python {model: project.compute.phases}: |
+ self.check_selection(cr, uid, [ref("project_compute_phases_0")], {"lang": "en_US",
+ "project_id": False, "tz": False, "active_model": "ir.ui.menu", "department_id":
+ False, "section_id": False, "record_id": 279, "active_ids": [ref("project_long_term.menu_compute_phase")],
+ "active_id": ref("project_long_term.menu_compute_phase"), })
+
+-
+ 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 task in prj.tasks:
+ if (not task.user_id) or (not task.date_start) or (not task.date_end):
+ raise AssertionError("Tasks not scheduled")
+
+ \ No newline at end of file
diff --git a/addons/project_long_term/test/schedule_project_tasks.yml b/addons/project_long_term/test/schedule_project_tasks.yml
new file mode 100644
index 00000000000..3bdeec68452
--- /dev/null
+++ b/addons/project_long_term/test/schedule_project_tasks.yml
@@ -0,0 +1,108 @@
+-
+ Create project Project2
+-
+ !record {model: project.project, id: project_project_project1}:
+ company_id: base.main_company
+ name: Project2
+ members:
+ - project_long_term.res_users_manager0
+ - project_long_term.res_users_user0
+ - project_long_term.res_users_userfinance0
+ - project_long_term.res_users_userdesign0
+ - project_long_term.res_users_userdeveloper0
+ - project_long_term.res_users_usertester0
+ - project_long_term.res_users_useranalyst0
+
+-
+ Create phase phase22
+-
+ !record {model: project.phase, id: project_phase_phase1}:
+ date_start: '2010-06-02 00:00:00'
+ duration: 100.0
+ name: phase22
+ product_uom: product.uom_day
+ project_id: project_project_project1
+ state: draft
+ resource_ids:
+ - resource_id: project_long_term.resource_resource_analyst0
+ useability: 80.0
+ - resource_id: project_long_term.resource_resource_programmer0
+ useability: 30.0
+ - resource_id: project_long_term.resource_resource_webdesigner0
+ useability: 30.0
+
+
+-
+ Create the project task t1
+-
+ !record {model: project.task, id: project_task_t00}:
+ name: t1
+ occupation_rate: 1.0
+ planned_hours: 20.0
+ remaining_hours: 20.0
+ state: draft
+ phase_id: project_phase_phase1
+ project_id: project_project_project1
+
+
+-
+ Create the project task t2
+-
+ !record {model: project.task, id: project_task_t11}:
+ name: t2
+ occupation_rate: 1.0
+ planned_hours: 25.0
+ remaining_hours: 25.0
+ state: draft
+ phase_id: project_phase_phase1
+ project_id: project_project_project1
+
+-
+ Create the project task t3
+-
+ !record {model: project.task, id: project_task_t22}:
+ name: t3
+ occupation_rate: 1.0
+ planned_hours: 30.0
+ remaining_hours: 30.0
+ state: draft
+ phase_id: project_phase_phase1
+ project_id: project_project_project1
+
+
+-
+ Create the project task t4
+-
+ !record {model: project.task, id: project_task_t33}:
+ name: t4
+ occupation_rate: 1.0
+ planned_hours: 25.0
+ remaining_hours: 25.0
+ state: draft
+ phase_id: project_phase_phase1
+ project_id: project_project_project1
+
+-
+ Get the project to schedule the tasks
+-
+ !record {model: project.compute.tasks, id: project_compute_tasks_0}:
+ project_id: project_project_project1
+
+
+-
+ Schedule tasks
+-
+ !python {model: project.compute.tasks}: |
+ self.compute_date(cr, uid, [ref("project_compute_tasks_0")], {"lang": "en_US",
+ "active_model": "ir.ui.menu", "active_ids": [ref("project_long_term.menu_compute_tasks")],
+ "tz": False, "record_id": 138, "project_id": ref("project_project_project1"), "active_id": ref("project_long_term.menu_compute_tasks"),
+ })
+
+-
+ 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]
+ for task in prj.tasks:
+ if (not task.user_id) or (not task.date_start) or (not task.date_end):
+ raise AssertionError("Project Tasks not scheduled") \ No newline at end of file
diff --git a/addons/project_long_term/wizard/project_compute_phases_view.xml b/addons/project_long_term/wizard/project_compute_phases_view.xml
index 0a3b2e12336..6bbb01ca7e4 100644
--- a/addons/project_long_term/wizard/project_compute_phases_view.xml
+++ b/addons/project_long_term/wizard/project_compute_phases_view.xml
@@ -8,22 +8,22 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Compute Scheduling of Phases">
- <group height="170" width="500">
- <group colspan="4" col="4">
- <label colspan="4" string="This wizard will schedule phases for all or specified project" />
- <newline />
- <field name="target_project" colspan="4"/>
- </group>
- <newline />
- <group colspan="4" col="6" attrs="{'invisible':[('target_project','=','all')]}">
- <field name="project_id"/>
- </group>
- <separator colspan="4"/>
- <group colspan="4" col="6"> <!-- Improve me -->
- <button icon="gtk-cancel" special="cancel" string="_Cancel"/>
- <button icon="gtk-ok" name="check_selection" string="_Compute" type="object"/>
- </group>
- </group>
+ <group width="380" height="180">
+ <group colspan="4" col="4">
+ <label colspan="4" string="This wizard will schedule phases for all or specified project" />
+ <newline />
+ <field name="target_project" colspan="4"/>
+ </group>
+ <newline />
+ <group colspan="4" col="6" attrs="{'invisible':[('target_project','=','all')]}">
+ <field name="project_id"/>
+ </group>
+ <separator colspan="4"/>
+ <group colspan="4" col="6"> <!-- Improve me -->
+ <button icon="gtk-cancel" special="cancel" string="_Cancel"/>
+ <button icon="gtk-ok" name="check_selection" string="_Compute" type="object"/>
+ </group>
+ </group>
</form>
</field>
</record>
diff --git a/addons/project_long_term/wizard/project_compute_tasks.py b/addons/project_long_term/wizard/project_compute_tasks.py
index 9f2eb707c60..af5ceaea676 100644
--- a/addons/project_long_term/wizard/project_compute_tasks.py
+++ b/addons/project_long_term/wizard/project_compute_tasks.py
@@ -112,9 +112,9 @@ class project_compute_tasks(osv.osv_memory):
if each_task.priority in priority_dict.keys():
priorty = priority_dict[each_task.priority]
if each_task.user_id:
- for resource in resources:
- if resource.__name__ == each_task.user_id.name: # check me!!
- task = create_tasks(i, hours, priorty, resource)
+ for resrce in resources:
+ if resrce.__name__ == each_task.user_id.name: # check me!!
+ task = create_tasks(i, hours, priorty, resrce)
else:
task = create_tasks(i, hours, priorty)
i += 1
diff --git a/addons/project_long_term/wizard/project_schedule_tasks.py b/addons/project_long_term/wizard/project_schedule_tasks.py
index 8ec2d4c16e0..3e01c25e975 100644
--- a/addons/project_long_term/wizard/project_schedule_tasks.py
+++ b/addons/project_long_term/wizard/project_schedule_tasks.py
@@ -131,9 +131,9 @@ class project_schedule_task(osv.osv_memory):
if each_task.priority in priority_dict.keys():
priorty = priority_dict[each_task.priority]
if each_task.user_id:
- for resource in resources:
- if resource.__name__ == each_task.user_id.name:
- task = create_tasks(i, hours, priorty, resource)
+ for resrce in resources:
+ if resrce.__name__ == each_task.user_id.name:
+ task = create_tasks(i, hours, priorty, resrce)
else:
task = create_tasks(i, hours, priorty)
i += 1
diff --git a/addons/project_long_term/wizard/project_schedule_tasks_view.xml b/addons/project_long_term/wizard/project_schedule_tasks_view.xml
index f17d573185d..1231f976d60 100644
--- a/addons/project_long_term/wizard/project_schedule_tasks_view.xml
+++ b/addons/project_long_term/wizard/project_schedule_tasks_view.xml
@@ -8,12 +8,11 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Schedule Tasks">
- <group height="90" width="250">
- <label string="Task Scheduling completed successfully."/>
- <group colspan="4" col="6">
- <button icon="gtk-ok" colspan="4" special="cancel" string="_Ok"/>
- </group>
- </group>
+ <group colspan="4" col="6" width="350" height="70">
+ <label string="Task Scheduling completed successfully."/>
+ <newline/>
+ <button icon="gtk-ok" special="cancel" string="_Ok"/>
+ </group>
</form>
</field>
</record>