2 Test project template feature
4 Create project 'OpenERP Training Programme'
6 !record {model: project.project, id: project_project_openerptrainingprogramme0}:
7 company_id: base.main_company
8 name: OpenERP Training Programme
10 Create task 'Technical Training' for this project
12 !record {model: project.task, id: project_task_technicaltraining0}:
13 date_start: '2010-05-31 11:48:38'
14 name: Technical Training
16 project_id: project_project_openerptrainingprogramme0
20 Create task 'Functional Training' for this project
22 !record {model: project.task, id: project_task_functionaltraining0}:
23 date_start: '2010-05-31 11:49:11'
24 name: Functional Training
26 project_id: project_project_openerptrainingprogramme0
30 Set project as project template
32 !python {model: project.project}: |
33 self.set_template(cr, uid, [ref("project_project_openerptrainingprogramme0")],
34 {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_open_view_project_all")],
35 "tz": False, "active_id": ref("project.menu_open_view_project_all"), })
37 Check if project in template state
39 !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in template state}:
42 Create new project based on this template
44 !python {model: project.project}: |
45 new_prj = self.duplicate_template(cr, uid, [ref("project_project_openerptrainingprogramme0")],
46 {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_open_view_project_all")],
47 "tz": False, "active_id": ref("project.menu_open_view_project_all"), })
49 raise Exception( "New project based on template not created")
50 new_id = new_prj['res_id']
51 new_prj = self.read(cr, uid, [new_id], ['name', 'state'])[0]
52 state = new_prj['state']
53 name = new_prj['name']
54 assert state == 'open', "Project in %s state. Project created from template project must be in open state"%state
56 Reset project template to normal project
58 !python {model: project.project}: |
59 self.reset_project(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids":
60 [ref("project.menu_open_view_project_all")], "tz": False, "active_model":
61 "ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"),
64 Check if project in open state
66 !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in open state}:
73 Test for different project-states
77 !python {model: project.project}: |
78 self.set_pending(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids":
79 [ref("project.menu_open_view_project_all")], "tz": False, "active_model":
80 "ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"),
83 Check if project in pending state
85 !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in pending state}:
90 !python {model: project.project}: |
91 self.set_cancel(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids":
92 [ref("project.menu_open_view_project_all")], "tz": False, "active_model":
93 "ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"),
96 Check if project in cancel state
98 !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in cancel state}:
99 - state == "cancelled"
103 !python {model: project.project}: |
104 self.set_open(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": [ref("project.menu_open_view_project_all")],
105 "tz": False, "active_model": "ir.ui.menu", "project_id": False, "active_id":
106 ref("project.menu_open_view_project_all"), })
108 Check if project in open state
110 !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in open state}:
115 Test for task work allocation
117 As i cancelled my project before, i check if the task 'Technical Training' is in cancelled state
119 !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Task is in cancelled state}:
120 - state == "cancelled"
122 Now in order to reactivate the task 'Technical Training', i click on the "Reactivate" button and fill the remaining hour field
124 !record {model: project.task.reevaluate, id: project_task_technicaltraining_remainingwiz0}:
125 remaining_hours: 30.0
127 I click the apply button
129 !python {model: project.task.reevaluate}: |
130 self.compute_hours(cr, uid, [ref('project_task_technicaltraining_remainingwiz0')], {'active_id': ref("project_task_technicaltraining0"),'button_reactivate': True})
132 Check if task 'Technical Training' in open state and for other initial values
134 !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Project is in open state}:
136 - planned_hours == 30
137 - remaining_hours == 30
139 - effective_hours == 0.0
141 Make a work task entry 'Training on OpenERP modules, models and classes' of 10 hours
143 !record {model: project.task, id: project_task_technicaltraining0, context: {'withoutemployee': True}}:
145 - date: '2010-05-31 15:04:22'
147 name: Training on OpenERP modules, models and classes
148 user_id: base.user_root
150 Check for effective hours and remaining hours, effective_hours must be equal to 10
152 !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After work task of 10 hours effective_hours must be equal to 10}:
153 - remaining_hours == 20
154 - effective_hours == 10.0
156 Make a work task entry 'Training on OpenERP xml views' of 10 hours
158 !record {model: project.task, id: project_task_technicaltraining0, context: {'withoutemployee': True}}:
160 - date: '2010-06-01 15:04:46'
162 name: Training on OpenERP xml views
163 user_id: base.user_root
165 Check for effective hours and remaining hours, effective_hours must be equal to 20
167 !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}:
168 - remaining_hours == 10
169 - effective_hours == 20.0
171 Make a work task entry 'Training on workflows' of 10 hours
173 !record {model: project.task, id: project_task_technicaltraining0, context: {'withoutemployee': True}}:
175 - date: '2010-06-02 15:05:24'
177 name: Training on workflows
178 user_id: base.user_root
180 Check for effective hours and remaining hours, effective_hours must be equal to 30
182 !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}:
183 - remaining_hours == 0
184 - effective_hours == 30.0
186 Set remaining hours of 10 hours for reevaluating the task
188 !record {model: project.task.reevaluate, id: config_compute_remaining_0}:
189 remaining_hours: 10.0
193 !python {model: project.task.reevaluate}: |
194 self.compute_hours(cr, uid, [ref("config_compute_remaining_0")], {"lang": "en_US",
195 "project_id": False, "tz": False, "active_model": "project.task", "search_default_project_id":
196 False, "search_default_user_id": 1, "search_default_current": 1, "active_ids":
197 [ref("project_task_technicaltraining0")], "active_id": ref("project_task_technicaltraining0"), })
200 Check for effective hours and remaining hours, remaining_hours must be 10 while planned_hours remains 30
202 !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}:
203 - planned_hours == 30
204 - remaining_hours == 10.0
205 - effective_hours == 30.0
207 Make a work task entry 'Training on reports and wizards' of 10 hours
209 !record {model: project.task, id: project_task_technicaltraining0, context: {'withoutemployee': True}}:
211 - date: '2010-05-31 15:08:40'
213 name: Training on reports and wizards
214 user_id: base.user_root
216 Check for effective hours and remaining hours
218 !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}:
219 - planned_hours == 30
220 - remaining_hours == 0
221 - effective_hours == 40.0
225 !python {model: project.task}: |
226 self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {'mail_send': False})
228 Check if task in done state
230 !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Task is in done state}:
235 Test for task reactivation
239 !record {model: project.task.reevaluate, id: config_compute_remaining_1}:
240 remaining_hours: 10.0
242 Reevaluate the task with 10 hours remaining
244 !python {model: project.task.reevaluate}: |
245 self.compute_hours(cr, uid, [ref("config_compute_remaining_1")], {"lang": "en_US",
246 "project_id": False, "tz": False, "button_reactivate": True, "active_model":
247 "project.task", "search_default_project_id": False, "search_default_user_id":
248 1, "search_default_current": 1, "active_ids": [ref("project_task_technicaltraining0")], "active_id": ref("project_task_technicaltraining0"),
251 Check for effective hours and remaining hours, remaining_hours must be 10 while planned_hours remains 30
253 !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}:
254 - planned_hours == 30
255 - remaining_hours == 10.0
256 - effective_hours == 40.0
258 Make a work task entry 'Training on yml' of 5 hours
260 !record {model: project.task, id: project_task_technicaltraining0, context: {'withoutemployee': True}}:
262 - date: '2010-05-31 16:55:27'
264 name: Training on yml
265 user_id: base.user_root
267 Check for effective hours and remaining hours, remaining_hours must be 5, effective_hours must be 45
269 !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}:
270 - planned_hours == 30
271 - remaining_hours == 5.0
272 - effective_hours == 45.0
276 !python {model: project.task}: |
277 self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {'mail_send': False})
279 Check if task in done state
281 !assert {model: project.task, id: project_task_technicaltraining0, severity: error}:
284 Check for effective hours and remaining hours
286 !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}:
287 - planned_hours == 30
288 - remaining_hours == 0.0
289 - effective_hours == 45.0
291 Close project 'OpenERP Training Programme'
293 !python {model: project.project}: |
294 self.set_done(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": [ref("project.menu_open_view_project_all")],
295 "tz": False, "active_model": "ir.ui.menu", "project_id": False, "active_id":
296 ref("project.menu_open_view_project_all"), })
298 Check if project in close state
300 !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: "Project must be in closed state"}: