diff options
| author | pap (openerp) <pap@tinyerp.co.in> | 2010-06-03 16:54:20 +0530 |
|---|---|---|
| committer | pap (openerp) <pap@tinyerp.co.in> | 2010-06-03 16:54:20 +0530 |
| commit | 7ac215e587ea4107a705f1b57ac43ec3fefeb9ee (patch) | |
| tree | 761766f448e7f2b0bdd14db859313d420381fa18 /addons/project_long_term | |
| parent | 7d239dc01d9b986ebd311ff5bdfdcb72ec02fb07 (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')
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> |
