diff --git a/addons/project_long_term/test/test_project_long_term.yml b/addons/project_long_term/test/test_project_long_term.yml new file mode 100644 index 00000000000..feb06ed8846 --- /dev/null +++ b/addons/project_long_term/test/test_project_long_term.yml @@ -0,0 +1,136 @@ +- + Create a project 'Develop yaml Project Module' starting on 01/05/2010. +- + !record {model: project.project, id: project_project_developyamlproject0}: + name: "Develop Yaml Project Module" + date_start: '2010-01-05' +- + I have set Working Time : from Monday to Friday, from 9am to 17pm + +- + !record {model: resource.calendar, id: resource_calendar_hoursweeks0}: + attendance_ids: + - dayofweek: '0' + hour_from: 9.0 + hour_to: 17.0 + name: Monday + - dayofweek: '1' + hour_from: 9.0 + hour_to: 17.0 + name: tuesday + - dayofweek: '2' + hour_from: 9.0 + hour_to: 17.0 + name: Wednesday + - dayofweek: '3' + hour_from: 9.0 + hour_to: 17.0 + name: Thursday + - dayofweek: '4' + hour_from: 9.0 + hour_to: 17.0 + name: Friday + name: 40 hours/weeks + +- + Now Set working period to Project 'Develop yaml Project Module' +- + !python {model: project.project}: | + self.write(cr, uid, [ref("project_project_developyamlproject0")], {'resource_calendar_id': ref("resource_calendar_hoursweeks0")}) + +- + Creating 3 consecutive 5-days phases.For that + First ,Creating a Analyst Human resource to analyst Project Yaml. +- + !record {model: resource.resource, id: resource_resource_analyst1}: + calendar_id: project_long_term.resource_calendar_hoursweeks0 + name: Analyst + resource_type: user + time_efficiency: 1.0 + user_id: base.user_admin + + +- + Creating Developer Human resource who develop Yaml +- + !record {model: resource.resource, id: resource_resource_develop0}: + calendar_id: project_long_term.resource_calendar_hoursweeks0 + name: Developer + resource_type: user + time_efficiency: 1.0 + user_id: base.user_admin +- + Creating a Tester Human resource for testing Yaml +- + !record {model: resource.resource, id: resource_resource_tester1}: + calendar_id: project_long_term.resource_calendar_hoursweeks0 + name: tester + resource_type: user + time_efficiency: 1.0 + user_id: base.user_admin + +- + Create 3 a project phase. + First 'Analysis Flow for Yaml'Project Phase +- + !record {model: project.phase, id: project_phase_analysisflowforyaml0}: + date_start: '2010-01-05' + duration: 5.0 + name: "Analysis Flow for Yaml" + product_uom: product.uom_day + project_id: project_project_developyamlproject0 + responsible_id: project.res_users_analyst + state: draft + resource_ids: + - resource_id: resource_resource_analyst1 + +- + Create project phase 'Develop yaml' +- + !record {model: project.phase, id: project_phase_establishingprojectfeasibility0}: + date_start: '2010-01-05' + duration: 5.0 + name: Develop Yaml + product_uom: product.uom_day + project_id: project_project_developyamlproject0 + previous_phase_ids: + - project_phase_analysisflowforyaml0 + resource_ids: + - resource_id: resource_resource_develop0 +- + Create project phase 'Test Yaml' +- + !record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}: + date_start: '2010-01-05' + duration: 5.0 + name: Testing Yaml + product_uom: product.uom_day + project_id: project_project_developyamlproject0 + previous_phase_ids: + - project_phase_establishingprojectfeasibility0 + resource_ids: + - resource_id: resource_resource_tester1 + +- + 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" +- + !python {model: project.project}: | + self.schedule_phases(cr, uid, [ref("project_project_developyamlproject0")]) + +- + After scheduling, Check that phases scheduled, check that either of phase's start_date, end_date not null. +- + !python {model: project.project}: | + proj=self.browse(cr, uid, [ref("project_project_developyamlproject0")])[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") + +