From 4a39d126a1198e482c56cffb7e5d54e1ea848708 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Mon, 28 Nov 2011 14:34:36 +0530 Subject: [PATCH 1/8] [IMP]project:impove test case yml for project management. bzr revid: kbh@tinyerp.com-20111128090436-5v6yd7ytbbch5b93 --- addons/project/__openerp__.py | 6 +- .../project/test/process/cancel_project.yml | 40 ++++++++++ addons/project/test/process/cancel_task.yml | 35 +++++++++ .../process/draft2delegate2open2done_task.yml | 76 +++++++++++++++++++ .../test/process/template2project2close.yml | 61 +++++++++++++++ 5 files changed, 216 insertions(+), 2 deletions(-) create mode 100644 addons/project/test/process/cancel_project.yml create mode 100644 addons/project/test/process/cancel_task.yml create mode 100644 addons/project/test/process/draft2delegate2open2done_task.yml create mode 100644 addons/project/test/process/template2project2close.yml diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index 9132636b56f..1c1b8fea4f8 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -61,8 +61,10 @@ Dashboard for project members that includes: 'project_demo.xml', ], 'test':[ - 'test/test_project.yml', - 'test/test_project_delegation.yml', + 'test/process/draft2delegate2open2done_task.yml', + 'test/process/template2project2close.yml', + 'test/process/cancel_project.yml', + 'test/process/cancel_task.yml', ], 'installable': True, 'active': False, diff --git a/addons/project/test/process/cancel_project.yml b/addons/project/test/process/cancel_project.yml new file mode 100644 index 00000000000..db5ba8ff0b7 --- /dev/null +++ b/addons/project/test/process/cancel_project.yml @@ -0,0 +1,40 @@ +- + I cancel unqualified Project. +- + !python {model: project.project}: | + self.set_cancel(cr, uid, [ref("project_task_1")]) +- + I cancel Project in to Draft. +- + !python {model: project.project}: | + self.set_cancel(cr, uid, [ref("project_task_1")]) +- + I cancel pending Project. +- + !python {model: project.project}: | + self.set_cancel(cr, uid, [ref("project_task_1")]) +- + I cancel opened Project. +- + !python {model: project.project}: | + self.set_cancel(cr, uid, [ref("project_task_1")]) +- + I cancel delegated Project. +- + !python {model: project.project}: | + self.set_cancel(cr, uid, [ref("project_task_1")]) +- + I cancel done Project. +- + !python {model: project.project}: | + self.set_cancel(cr, uid, [ref("project_task_1")]) +- + I cancel close Project. +- + !python {model: project.project}: | + self.set_cancel(cr, uid, [ref("project_task_1")]) +- + I reset canclled Project into Draft. +- + !python {model: project.project}: | + self.set_cancel(cr, uid, [ref("project_task_1")]) \ No newline at end of file diff --git a/addons/project/test/process/cancel_task.yml b/addons/project/test/process/cancel_task.yml new file mode 100644 index 00000000000..618db25b22d --- /dev/null +++ b/addons/project/test/process/cancel_task.yml @@ -0,0 +1,35 @@ +- + I cancel unqualified Task. +- + !python {model: project.task}: | + self.do_cancel(cr, uid, [ref("project_task_1")]) +- + I cancel Task in to Draft. +- + !python {model: project.task}: | + self.do_cancel(cr, uid, [ref("project_task_1")]) +- + I cancel pending Task. +- + !python {model: project.task}: | + self.do_cancel(cr, uid, [ref("project_task_1")]) +- + I cancel opened Task. +- + !python {model: project.task}: | + self.do_cancel(cr, uid, [ref("project_task_1")]) +- + I cancel done Task. +- + !python {model: project.task}: | + self.do_cancel(cr, uid, [ref("project_task_1")]) +- + I cancel close Task. +- + !python {model: project.task}: | + self.do_cancel(cr, uid, [ref("project_task_1")]) +- + I reset canclled Task into Draft. +- + !python {model: project.task}: | + self.do_cancel(cr, uid, [ref("project_task_1")]) \ No newline at end of file diff --git a/addons/project/test/process/draft2delegate2open2done_task.yml b/addons/project/test/process/draft2delegate2open2done_task.yml new file mode 100644 index 00000000000..544d95c326e --- /dev/null +++ b/addons/project/test/process/draft2delegate2open2done_task.yml @@ -0,0 +1,76 @@ +- + In order to test process of Project Task, +- + I put task in pending due to specification is not clear. +- + !python {model: project.task}: | + self.do_pending(cr, uid, [ref("project_task_1")]) +- + I Check state of task after put in pending. +- + !assert {model: project.task, id: project_task_1, severity: error, string: task should be in pending state}: + - state == "pending" +- + Now I delegate task to team member. +- + !python {model: project.task.delegate}: | + new_id = self.create(cr,uid,{'planned_hours': 1.0, 'user_id': 3, + 'name': 'demo task', 'state': 'pending', 'prefix': 'CHECK: demo task', + 'planned_hours_me': 1.0, 'new_task_description': 'this is demo.'}) + self.delegate(cr, uid, [new_id], {"active_id": ref("project_task_1")}) +- + I check delegated task details. +- + !assert {model: project.task.delegate, id: project_task_1, severity: error, string: Task should be pending state}: + + - planned_hours == 0.0 + - name == 'a' + - state == "pending" +- + I check new task after delegated task. +- + !record {model: project.task, id: project_task_delegate }: + name: test + planned_hours: 30.0 + project_id: project_task_1 + remaining_hours: 30.0 + description: testing of delegated task + state: draft +- + Now I Delegate task to these tasks and make it pending +- + !record {model: project.task, id: project_task_1 }: + child_ids: + - project.project_task_delegate + planned_hours: 20.0 + state: pending +- + I Re-open the task +- + !python {model: project.task}: | + self.do_reopen(cr, uid, [ref("project_task_1")]) +- + + I check reopened task details. +- + !assert {model: project.task, id: project_task_1, severity: error, string: task should be open.}: + - state == "open" +- + I reevaluate task with remaining hours. +- + + I Check remaining hours after reevaluated task. +- + !assert {model: project.task.reevaluate, id: project_task_1, severity: error, string: task should be reevaluated}: + - remaining_hours == 1.0 +- + I close the task. +- + !python {model: project.task}: | + self.do_close(cr, uid, [ref("project_task_1")]) +- + I Check state after closed. +- + !assert {model: project.task, id: project_task_1, severity: error, string: task is in open state}: + - state == "done" +- diff --git a/addons/project/test/process/template2project2close.yml b/addons/project/test/process/template2project2close.yml new file mode 100644 index 00000000000..a4c7da0a9b5 --- /dev/null +++ b/addons/project/test/process/template2project2close.yml @@ -0,0 +1,61 @@ +- + In order to Test Process of Project Management, +- + I create duplicate template +- + !python {model: project.project}: | + new_project = self.duplicate_template(cr, uid, [ref("project_integrate_openerp")]) + if not new_project: + raise Exception( "New project based on template not created") + new_id = new_project['res_id'] + new_project = self.read(cr, uid, [new_id], ['name', 'state'])[0] + state = new_project['state'] + name = new_project['name'] + assert state == 'open', "Project in %s state. Project created from template project must be in open state"%state +- + I convert template into real Project. +- + !python {model: project.project}: | + self.reset_project(cr, uid, [ref("project_integrate_openerp")]) +- + I check project details after convert from template. +- + !assert {model: project.project, id: project_integrate_openerp, severity: error, string: Project should be active}: + - state == "open" + +- + I put project in pending +- + !python {model: project.project}: | + self.set_pending(cr, uid, [ref("project_integrate_openerp")]) +- + I Check state after put in pending. +- + !assert {model: project.project, id: project_integrate_openerp, severity: error, string: Project should be in pending state}: + - state == "pending" +- + I Re-open the project. +- + !python {model: project.project}: | + self.set_open(cr, uid, [ref("project_integrate_openerp")]) +- + I Check state after reopen. +- + !assert {model: project.project, id: project_integrate_openerp, severity: error, string: Project should be open.}: + - state == "open" +- + I close the project. +- + !python {model: project.project}: | + self.set_done(cr, uid, [ref("project_integrate_openerp")]) +- + I Check state after closed. +- + !assert {model: project.project, id: project_integrate_openerp, severity: error, string: Project should be close.}: + - state == "close" +- + I set project into template. +- + !python {model: project.project}: | + self.set_template(cr, uid, [ref("project_integrate_openerp")]) +- From 1f7737946f89fa3360d11ff3fc39c230bf628672 Mon Sep 17 00:00:00 2001 From: "Harry (OpenERP)" Date: Mon, 28 Nov 2011 16:10:02 +0530 Subject: [PATCH 2/8] [IMP] project: refactor test cases of process of project bzr revid: hmo@tinyerp.com-20111128104002-2rq1o010c0zl49jn --- addons/project/__openerp__.py | 6 +- .../project/test/process/cancel_project.yml | 40 --- addons/project/test/process/cancel_task.yml | 35 --- .../process/draft2delegate2open2done_task.yml | 76 ----- ...2project2close.yml => project_process.yml} | 21 +- addons/project/test/task_process.yml | 69 ++++ addons/project/test/test_project.yml | 296 ------------------ .../project/test/test_project_delegation.yml | 230 -------------- 8 files changed, 82 insertions(+), 691 deletions(-) delete mode 100644 addons/project/test/process/cancel_project.yml delete mode 100644 addons/project/test/process/cancel_task.yml delete mode 100644 addons/project/test/process/draft2delegate2open2done_task.yml rename addons/project/test/{process/template2project2close.yml => project_process.yml} (73%) create mode 100644 addons/project/test/task_process.yml delete mode 100644 addons/project/test/test_project.yml delete mode 100644 addons/project/test/test_project_delegation.yml diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index 1c1b8fea4f8..c9484ae9dd8 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -61,10 +61,8 @@ Dashboard for project members that includes: 'project_demo.xml', ], 'test':[ - 'test/process/draft2delegate2open2done_task.yml', - 'test/process/template2project2close.yml', - 'test/process/cancel_project.yml', - 'test/process/cancel_task.yml', + 'test/project_process.yml', + 'test/task_process.yml', ], 'installable': True, 'active': False, diff --git a/addons/project/test/process/cancel_project.yml b/addons/project/test/process/cancel_project.yml deleted file mode 100644 index db5ba8ff0b7..00000000000 --- a/addons/project/test/process/cancel_project.yml +++ /dev/null @@ -1,40 +0,0 @@ -- - I cancel unqualified Project. -- - !python {model: project.project}: | - self.set_cancel(cr, uid, [ref("project_task_1")]) -- - I cancel Project in to Draft. -- - !python {model: project.project}: | - self.set_cancel(cr, uid, [ref("project_task_1")]) -- - I cancel pending Project. -- - !python {model: project.project}: | - self.set_cancel(cr, uid, [ref("project_task_1")]) -- - I cancel opened Project. -- - !python {model: project.project}: | - self.set_cancel(cr, uid, [ref("project_task_1")]) -- - I cancel delegated Project. -- - !python {model: project.project}: | - self.set_cancel(cr, uid, [ref("project_task_1")]) -- - I cancel done Project. -- - !python {model: project.project}: | - self.set_cancel(cr, uid, [ref("project_task_1")]) -- - I cancel close Project. -- - !python {model: project.project}: | - self.set_cancel(cr, uid, [ref("project_task_1")]) -- - I reset canclled Project into Draft. -- - !python {model: project.project}: | - self.set_cancel(cr, uid, [ref("project_task_1")]) \ No newline at end of file diff --git a/addons/project/test/process/cancel_task.yml b/addons/project/test/process/cancel_task.yml deleted file mode 100644 index 618db25b22d..00000000000 --- a/addons/project/test/process/cancel_task.yml +++ /dev/null @@ -1,35 +0,0 @@ -- - I cancel unqualified Task. -- - !python {model: project.task}: | - self.do_cancel(cr, uid, [ref("project_task_1")]) -- - I cancel Task in to Draft. -- - !python {model: project.task}: | - self.do_cancel(cr, uid, [ref("project_task_1")]) -- - I cancel pending Task. -- - !python {model: project.task}: | - self.do_cancel(cr, uid, [ref("project_task_1")]) -- - I cancel opened Task. -- - !python {model: project.task}: | - self.do_cancel(cr, uid, [ref("project_task_1")]) -- - I cancel done Task. -- - !python {model: project.task}: | - self.do_cancel(cr, uid, [ref("project_task_1")]) -- - I cancel close Task. -- - !python {model: project.task}: | - self.do_cancel(cr, uid, [ref("project_task_1")]) -- - I reset canclled Task into Draft. -- - !python {model: project.task}: | - self.do_cancel(cr, uid, [ref("project_task_1")]) \ No newline at end of file diff --git a/addons/project/test/process/draft2delegate2open2done_task.yml b/addons/project/test/process/draft2delegate2open2done_task.yml deleted file mode 100644 index 544d95c326e..00000000000 --- a/addons/project/test/process/draft2delegate2open2done_task.yml +++ /dev/null @@ -1,76 +0,0 @@ -- - In order to test process of Project Task, -- - I put task in pending due to specification is not clear. -- - !python {model: project.task}: | - self.do_pending(cr, uid, [ref("project_task_1")]) -- - I Check state of task after put in pending. -- - !assert {model: project.task, id: project_task_1, severity: error, string: task should be in pending state}: - - state == "pending" -- - Now I delegate task to team member. -- - !python {model: project.task.delegate}: | - new_id = self.create(cr,uid,{'planned_hours': 1.0, 'user_id': 3, - 'name': 'demo task', 'state': 'pending', 'prefix': 'CHECK: demo task', - 'planned_hours_me': 1.0, 'new_task_description': 'this is demo.'}) - self.delegate(cr, uid, [new_id], {"active_id": ref("project_task_1")}) -- - I check delegated task details. -- - !assert {model: project.task.delegate, id: project_task_1, severity: error, string: Task should be pending state}: - - - planned_hours == 0.0 - - name == 'a' - - state == "pending" -- - I check new task after delegated task. -- - !record {model: project.task, id: project_task_delegate }: - name: test - planned_hours: 30.0 - project_id: project_task_1 - remaining_hours: 30.0 - description: testing of delegated task - state: draft -- - Now I Delegate task to these tasks and make it pending -- - !record {model: project.task, id: project_task_1 }: - child_ids: - - project.project_task_delegate - planned_hours: 20.0 - state: pending -- - I Re-open the task -- - !python {model: project.task}: | - self.do_reopen(cr, uid, [ref("project_task_1")]) -- - - I check reopened task details. -- - !assert {model: project.task, id: project_task_1, severity: error, string: task should be open.}: - - state == "open" -- - I reevaluate task with remaining hours. -- - - I Check remaining hours after reevaluated task. -- - !assert {model: project.task.reevaluate, id: project_task_1, severity: error, string: task should be reevaluated}: - - remaining_hours == 1.0 -- - I close the task. -- - !python {model: project.task}: | - self.do_close(cr, uid, [ref("project_task_1")]) -- - I Check state after closed. -- - !assert {model: project.task, id: project_task_1, severity: error, string: task is in open state}: - - state == "done" -- diff --git a/addons/project/test/process/template2project2close.yml b/addons/project/test/project_process.yml similarity index 73% rename from addons/project/test/process/template2project2close.yml rename to addons/project/test/project_process.yml index a4c7da0a9b5..c440c757273 100644 --- a/addons/project/test/process/template2project2close.yml +++ b/addons/project/test/project_process.yml @@ -1,17 +1,13 @@ - In order to Test Process of Project Management, - - I create duplicate template + I create duplicate template. - !python {model: project.project}: | - new_project = self.duplicate_template(cr, uid, [ref("project_integrate_openerp")]) - if not new_project: - raise Exception( "New project based on template not created") - new_id = new_project['res_id'] - new_project = self.read(cr, uid, [new_id], ['name', 'state'])[0] - state = new_project['state'] - name = new_project['name'] - assert state == 'open', "Project in %s state. Project created from template project must be in open state"%state + new_template = self.duplicate_template(cr, uid, [ref("project_integrate_openerp")]) + assert new_template, "duplicate template is not created" + template = self.browse(cr, uid, new_template['res_id'], context=context) + assert template.state == 'open', "Duplicate template must be in open state." - I convert template into real Project. - @@ -24,7 +20,7 @@ - state == "open" - - I put project in pending + I put project in pending. - !python {model: project.project}: | self.set_pending(cr, uid, [ref("project_integrate_openerp")]) @@ -59,3 +55,8 @@ !python {model: project.project}: | self.set_template(cr, uid, [ref("project_integrate_openerp")]) - + I cancel Project. +- + !python {model: project.project}: | + self.set_cancel(cr, uid, [ref("project_integrate_openerp")]) + diff --git a/addons/project/test/task_process.yml b/addons/project/test/task_process.yml new file mode 100644 index 00000000000..0a6a15a230b --- /dev/null +++ b/addons/project/test/task_process.yml @@ -0,0 +1,69 @@ +- + I put task in pending due to specification is not clear. +- + !python {model: project.task}: | + self.do_pending(cr, uid, [ref("project_task_1")]) + context.update({"active_id": ref("project_task_1")}) +- + I Check state of task after put in pending. +- + !assert {model: project.task, id: project_task_1, severity: error, string: task should be in pending state}: + - state == "pending" +- + !record {model: project.task.delegate, id: delegate_id}: + user_id: res_users_analyst + planned_hours: 12.0 + planned_hours_me: 2.0 +- + Now I delegate task to team member. +- + !python {model: project.task.delegate}: | + self.delegate(cr, uid, [ref("delegate_id")], {"active_id": ref("project_task_1")}) +- + I check delegated task details. +- + !python {model: project.task}: | + task = self.browse(cr, uid, ref("project_task_1"), context=context) + assert task.planned_hours == 2.0, "Planning hours is not correct after delegated." + assert task.state == "pending", "Task should be in Pending after delegated." + assert len(task.child_ids), "Sub task is not created after delegate." +- + I Re-open the task. +- + !python {model: project.task}: | + self.do_reopen(cr, uid, [ref("project_task_1")]) +- + I check reopened task details. +- + !assert {model: project.task, id: project_task_1, severity: error, string: task should be open.}: + - state == "open" +- + !record {model: project.task.reevaluate, id: reevaluate_id}: + remaining_hours : 120 +- + I reevaluate task with remaining hours. +- + !python {model: project.task.reevaluate}: | + self.compute_hours(cr, uid, [ref("reevaluate_id")], {"active_id": ref("project_task_1")}) +- + I check remaining hours after reevaluated task. +- + !assert {model: project.task, id: project_task_1, severity: error, string: task should be reevaluated}: + - remaining_hours == 120.0 +- + I close the task. +- + !python {model: project.task}: | + self.do_close(cr, uid, [ref("project_task_1")]) +- + I Check state after closed. +- + !assert {model: project.task, id: project_task_1, severity: error, string: task is in open state}: + - state == "done" +- + I cancel Task. +- + !python {model: project.task}: | + self.do_cancel(cr, uid, [ref("project_task_2")]) + + diff --git a/addons/project/test/test_project.yml b/addons/project/test/test_project.yml deleted file mode 100644 index f79c2a34224..00000000000 --- a/addons/project/test/test_project.yml +++ /dev/null @@ -1,296 +0,0 @@ -- - Test project template feature -- - Create project 'OpenERP Training Programme' -- - !record {model: project.project, id: project_project_openerptrainingprogramme0}: - company_id: base.main_company - name: OpenERP Training Programme -- - Create task 'Technical Training' for this project -- - !record {model: project.task, id: project_task_technicaltraining0}: - date_start: !eval time.strftime('%Y-%m-%d %H:%M:%S') - name: Technical Training - planned_hours: 30.0 - project_id: project_project_openerptrainingprogramme0 - remaining_hours: 30.0 - state: draft -- - Create task 'Functional Training' for this project -- - !record {model: project.task, id: project_task_functionaltraining0}: - date_start: !eval time.strftime('%Y-%m-%d %H:%M:%S') - name: Functional Training - planned_hours: 30.0 - project_id: project_project_openerptrainingprogramme0 - remaining_hours: 30.0 - state: draft -- - Set project as project template -- - !python {model: project.project}: | - self.set_template(cr, uid, [ref("project_project_openerptrainingprogramme0")], - {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_open_view_project_all")], - "tz": False, "active_id": ref("project.menu_open_view_project_all"), }) -- - Check if project in template state -- - !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in template state}: - - state == "template" -- - Create new project based on this template -- - !python {model: project.project}: | - new_prj = self.duplicate_template(cr, uid, [ref("project_project_openerptrainingprogramme0")], - {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_open_view_project_all")], - "tz": False, "active_id": ref("project.menu_open_view_project_all"), }) - if not new_prj: - raise Exception( "New project based on template not created") - new_id = new_prj['res_id'] - new_prj = self.read(cr, uid, [new_id], ['name', 'state'])[0] - state = new_prj['state'] - name = new_prj['name'] - assert state == 'open', "Project in %s state. Project created from template project must be in open state"%state -- - Reset project template to normal project -- - !python {model: project.project}: | - self.reset_project(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": - [ref("project.menu_open_view_project_all")], "tz": False, "active_model": - "ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"), - }) -- - Check if project in open state -- - !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in open state}: - - state == "open" -- - Test for different project-states -- - Keep project pending -- - !python {model: project.project}: | - self.set_pending(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": - [ref("project.menu_open_view_project_all")], "tz": False, "active_model": - "ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"), - }) -- - Check if project in pending state -- - !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in pending state}: - - state == "pending" -- - Cancel the project -- - !python {model: project.project}: | - self.set_cancel(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": - [ref("project.menu_open_view_project_all")], "tz": False, "active_model": - "ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"), - }) -- - Check if project in cancel state -- - !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in cancel state}: - - state == "cancelled" -- - Re-open the project -- - !python {model: project.project}: | - self.set_open(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": [ref("project.menu_open_view_project_all")], - "tz": False, "active_model": "ir.ui.menu", "project_id": False, "active_id": - ref("project.menu_open_view_project_all"), }) -- - Check if project in open state -- - !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in open state}: - - state == "open" -- - Test for task work allocation -- - As i cancelled my project before, i check if the task 'Technical Training' is in cancelled state -- - !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Task is in cancelled state}: - - state == "cancelled" -- - Now in order to reactivate the task 'Technical Training', i click on the "Reactivate" button and fill the remaining hour field -- - !record {model: project.task.reevaluate, id: project_task_technicaltraining_remainingwiz0}: - remaining_hours: 30.0 -- | - I click the apply button -- - !python {model: project.task.reevaluate}: | - self.compute_hours(cr, uid, [ref('project_task_technicaltraining_remainingwiz0')], {'active_id': ref("project_task_technicaltraining0"),'button_reactivate': True}) -- | - Check if task 'Technical Training' in open state and for other initial values -- - !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Project is in open state}: - - state == "open" - - planned_hours == 30 - - remaining_hours == 30 - - delay_hours == 0.0 - - effective_hours == 0.0 -- - Make a work task entry 'Training on OpenERP modules, models and classes' of 10 hours -- - !record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}: - work_ids: - - date: !eval time.strftime('%Y-%m-%d %H:%M:%S') - hours: 10.0 - name: Training on OpenERP modules, models and classes - user_id: base.user_root -- - Check for effective hours and remaining hours, effective_hours must be equal to 10 -- - !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After work task of 10 hours effective_hours must be equal to 10}: - - remaining_hours == 20 - - effective_hours == 10.0 -- - Make a work task entry 'Training on OpenERP xml views' of 10 hours -- - !record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}: - work_ids: - - date: !eval time.strftime('%Y-%m-%d %H:%M:%S') - hours: 10.0 - name: Training on OpenERP xml views - user_id: base.user_root -- - Check for effective hours and remaining hours, effective_hours must be equal to 20 -- - !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}: - - remaining_hours == 10 - - effective_hours == 20.0 -- - Make a work task entry 'Training on workflows' of 10 hours -- - !record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}: - work_ids: - - date: !eval time.strftime('%Y-%m-%d %H:%M:%S') - hours: 10.0 - name: Training on workflows - user_id: base.user_root -- - Check for effective hours and remaining hours, effective_hours must be equal to 30 -- - !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}: - - remaining_hours == 0 - - effective_hours == 30.0 -- - Set remaining hours of 10 hours for reevaluating the task -- - !record {model: project.task.reevaluate, id: config_compute_remaining_0}: - remaining_hours: 10.0 -- - Reevaluate the task -- - !python {model: project.task.reevaluate}: | - self.compute_hours(cr, uid, [ref("config_compute_remaining_0")], {"lang": "en_US", - "project_id": False, "tz": False, "active_model": "project.task", "search_default_project_id": - False, "search_default_user_id": 1, "search_default_current": 1, "active_ids": - [ref("project_task_technicaltraining0")], "active_id": ref("project_task_technicaltraining0"), }) - -- - Check for effective hours and remaining hours, remaining_hours must be 10 while planned_hours remains 30 -- - !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}: - - planned_hours == 30 - - remaining_hours == 10.0 - - effective_hours == 30.0 -- - Make a work task entry 'Training on reports and wizards' of 10 hours -- - !record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}: - work_ids: - - date: !eval time.strftime('%Y-%m-%d %H:%M:%S') - hours: 10.0 - name: Training on reports and wizards - user_id: base.user_root -- - Check for effective hours and remaining hours -- - !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}: - - planned_hours == 30 - - remaining_hours == 0 - - effective_hours == 40.0 -- - Close the task -- - !python {model: project.task}: | - self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {'mail_send': False}) -- - Check if task in done state -- - !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Task is in done state}: - - state == "done" - - -- - Test for task reactivation -- - Reactivate task -- - !record {model: project.task.reevaluate, id: config_compute_remaining_1}: - remaining_hours: 10.0 -- - Reevaluate the task with 10 hours remaining -- - !python {model: project.task.reevaluate}: | - self.compute_hours(cr, uid, [ref("config_compute_remaining_1")], {"lang": "en_US", - "project_id": False, "tz": False, "button_reactivate": True, "active_model": - "project.task", "search_default_project_id": False, "search_default_user_id": - 1, "search_default_current": 1, "active_ids": [ref("project_task_technicaltraining0")], "active_id": ref("project_task_technicaltraining0"), - }) -- - Check for effective hours and remaining hours, remaining_hours must be 10 while planned_hours remains 30 -- - !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}: - - planned_hours == 30 - - remaining_hours == 10.0 - - effective_hours == 40.0 -- - Make a work task entry 'Training on yml' of 5 hours -- - !record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}: - work_ids: - - date: !eval time.strftime('%Y-%m-%d %H:%M:%S') - hours: 5.0 - name: Training on yml - user_id: base.user_root -- - Check for effective hours and remaining hours, remaining_hours must be 5, effective_hours must be 45 -- - !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}: - - planned_hours == 30 - - remaining_hours == 5.0 - - effective_hours == 45.0 -- - Close the task -- - !python {model: project.task}: | - self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {'mail_send': False}) -- - Check if task in done state -- - !assert {model: project.task, id: project_task_technicaltraining0, severity: error}: - - state == "done" -- - Check for effective hours and remaining hours -- - !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}: - - planned_hours == 30 - - remaining_hours == 0.0 - - effective_hours == 45.0 -- - Close project 'OpenERP Training Programme' -- - !python {model: project.project}: | - self.set_done(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": [ref("project.menu_open_view_project_all")], - "tz": False, "active_model": "ir.ui.menu", "project_id": False, "active_id": - ref("project.menu_open_view_project_all"), }) -- - Check if project in close state -- - !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: "Project must be in closed state"}: - - state == "close" - diff --git a/addons/project/test/test_project_delegation.yml b/addons/project/test/test_project_delegation.yml deleted file mode 100644 index 02bc9afaae8..00000000000 --- a/addons/project/test/test_project_delegation.yml +++ /dev/null @@ -1,230 +0,0 @@ -- - This scenario tests the delegation process. Closing all the delegated tasks(task delegation at multiple levels) transits the parent task from pending to open state. -- - Creating a project OpenERP Documentation -- - !record {model: project.project, id: project_project_openerpdocumentation0}: - company_id: base.main_company - name: OpenERP Documentation - -- - Creating a task 'Develop book for Technical and Functional reference' -- - !record {model: project.task, id: project_task_documentation_book}: - name: Develop book for Technical and Functional reference - planned_hours: 20.0 - project_id: project_project_openerpdocumentation0 - remaining_hours: 20.0 - state: draft - -- - Open the task -- - !python {model: project.task}: | - self.do_open(cr, uid, [ref("project_task_documentation_book")], - {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_action_view_task")], - "tz": False, "active_id": ref("project.menu_action_view_task"), }) - -- - Creating a task 'Publish the References' -- - !record {model: project.task, id: project_task_publish_book}: - name: Publish the References - planned_hours: 10.0 - project_id: project_project_openerpdocumentation0 - remaining_hours: 10.0 - state: draft - -- - Open the task -- - !python {model: project.task}: | - self.do_open(cr, uid, [ref("project_task_publish_book")], - {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_action_view_task")], - "tz": False, "active_id": ref("project.menu_action_view_task"), }) - -- - Test the delegate wizard -- - Creating a delegate task 'Publish the References' of 15 hours, renaming parent task to 'CHECK Publish the References' of 1 hour -- - !record {model: project.task.delegate, id: project_task_publish_book_delegate}: - name: Publish the References - new_task_description: aaa - planned_hours: 15.0 - planned_hours_me: 1.0 - prefix: 'CHECK: Publish the References' - state: pending - user_id: base.user_demo - -- - Validating the delegate task -- - !python {model: project.task.delegate}: | - self.delegate(cr, uid, [ref("project_task_publish_book_delegate")], - {"lang": "en_US", "active_model": "project.task", "tz": False, "record_id": - 4, "active_ids": [ref("project_task_publish_book")], "active_id": ref("project_task_publish_book"), - }) - -- - Check if parent task 'CHECK Publish the References' is in pending state -- - !assert {model: project.task, id: project_task_publish_book, severity: error, string: "Task must be in pending state after delegation"}: - - state == "pending" -- - Creating a delegate task 'Prepare a book that gives functional overview of OpenERP' -- - !record {model: project.task, id: project_task_delegate_openerp_tutorial}: - name: Prepare a book that gives functional overview of OpenERP - planned_hours: 30.0 - project_id: project.project_project_openerpdocumentation0 - remaining_hours: 30.0 - state: draft - -- - Open the task -- - !python {model: project.task}: | - self.do_open(cr, uid, [ref("project_task_delegate_openerp_tutorial")], - {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_action_view_task")], - "tz": False, "active_id": ref("project.menu_action_view_task"), }) - -- - Creating a delegate task 'Prepare a technical reference for creating your modules' -- - !record {model: project.task, id: project_task_delegate_developer_book}: - name: Prepare a technical reference for creating your modules - planned_hours: 30.0 - project_id: project_project_openerpdocumentation0 - remaining_hours: 30.0 - state: draft - -- - Open the task -- - !python {model: project.task}: | - self.do_open(cr, uid, [ref("project_task_delegate_developer_book")], - {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_action_view_task")], - "tz": False, "active_id": ref("project.menu_action_view_task"), }) - -- - Delegate task 'Develop book for Technical and Functional reference' to these tasks and make it pending -- - !record {model: project.task, id: project_task_documentation_book}: - child_ids: - - project.project_task_delegate_openerp_tutorial - - project.project_task_delegate_developer_book - planned_hours: 20.0 - state: pending - -- - Creating a delegate task 'Prepare documentation for Module Development' -- - !record {model: project.task, id: project_task_delegate_module_develop}: - name: Prepare documentation for Module Development - planned_hours: 30.0 - project_id: project.project_project_openerpdocumentation0 - remaining_hours: 30.0 - state: draft - - -- - Creating a delegate 'Prepare documentation for Business Process Development' -- - !record {model: project.task, id: project_task_delegate_business_process_develop}: - name: Prepare documentation for Business Process Development - planned_hours: 30.0 - project_id: project_project_openerpdocumentation0 - remaining_hours: 30.0 - state: draft - -- - Delegate task 'Prepare a technical reference for creating your modules' to these tasks and make it pending -- - !record {model: project.task, id: project_task_delegate_developer_book}: - child_ids: - - project.project_task_delegate_module_develop - - project.project_task_delegate_business_process_develop - planned_hours: 20.0 - state: pending - -- - Open the task -- - !python {model: project.task}: | - self.do_open(cr, uid, [ref("project_task_delegate_module_develop")], - {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_action_view_task")], - "tz": False, "active_id": ref("project.menu_action_view_task"), }) - -- - Open the task -- - !python {model: project.task}: | - self.do_open(cr, uid, [ref("project_task_delegate_business_process_develop")], - {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_action_view_task")], - "tz": False, "active_id": ref("project.menu_action_view_task"), }) - -- - Check if 'Prepare a technical reference for creating your modules' in pending state -- - !assert {model: project.task, id: project_task_delegate_developer_book, severity: error, string: Task must be in pending state}: - - state == "pending" - -- - Close the child task 'Prepare documentation for Module Development' -- - !python {model: project.task}: | - self.do_close(cr, uid, [ref("project_task_delegate_module_develop")], {"lang": "en_US", - "active_ids": [ref("project.menu_action_view_task")], "tz": False, "active_model": - "ir.ui.menu", "section_id": False, "search_default_project_id": False, "search_default_user_id": - 1, "search_default_current": 1, "mail_send": False, "active_id": ref("project.menu_action_view_task"), - }) - -- - Close the child task 'Prepare documentation for Business Process Development' -- - !python {model: project.task}: | - self.do_close(cr, uid, [ref("project_task_delegate_business_process_develop")], {"lang": "en_US", - "active_ids": [ref("project.menu_action_view_task")], "tz": False, "active_model": - "ir.ui.menu", "section_id": False, "search_default_project_id": False, "search_default_user_id": - 1, "search_default_current": 1, "mail_send": False, "active_id": ref("project.menu_action_view_task"), - }) - -- - Parent task 'Prepare a technical reference for creating your modules' task must now be in open state -- - !assert {model: project.task, id: project_task_delegate_developer_book, severity: error, string: Task is in done state}: - - state == "open" - - -- - Check if task 'Develop book for Technical and Functional reference' in pending state -- - !assert {model: project.task, id: project_task_documentation_book, severity: error, string: Task is in pending state}: - - state == "pending" - -- - Close the child task 'Prepare a technical reference for creating your modules' -- - !python {model: project.task}: | - self.do_close(cr, uid, [ref("project_task_delegate_developer_book")], {"lang": "en_US", - "active_ids": [ref("project.menu_action_view_task")], "tz": False, "active_model": - "ir.ui.menu", "section_id": False, "search_default_project_id": False, "search_default_user_id": - 1, "search_default_current": 1, "mail_send": False, "active_id": ref("project.menu_action_view_task"), - }) - -- - Close the child task 'Prepare a book that gives functional overview of OpenERP' -- - !python {model: project.task}: | - self.do_close(cr, uid, [ref("project_task_delegate_openerp_tutorial")], {"lang": "en_US", - "active_ids": [ref("project.menu_action_view_task")], "tz": False, "active_model": - "ir.ui.menu", "section_id": False, "search_default_project_id": False, "search_default_user_id": - 1, "search_default_current": 1, "mail_send": False, "active_id": ref("project.menu_action_view_task"), - }) - -- - Parent task 'Develop book for Technical and Functional reference' must be now in open state -- - !assert {model: project.task, id: project_task_documentation_book, severity: error, string: Task is in done state}: - - state == "open" From 7bb36d6c1b76cee148cb998fdb553fee57d9a839 Mon Sep 17 00:00:00 2001 From: "Harry (OpenERP)" Date: Mon, 28 Nov 2011 16:21:40 +0530 Subject: [PATCH 3/8] [IMP] project: add test case for scheduling task in project process bzr revid: hmo@tinyerp.com-20111128105140-1wo9f883saij6wft --- addons/project/test/project_process.yml | 8 ++++++-- addons/project/test/task_process.yml | 1 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/project/test/project_process.yml b/addons/project/test/project_process.yml index c440c757273..4e1a5e80281 100644 --- a/addons/project/test/project_process.yml +++ b/addons/project/test/project_process.yml @@ -54,9 +54,13 @@ - !python {model: project.project}: | self.set_template(cr, uid, [ref("project_integrate_openerp")]) +- + I schedule tasks of project. +- + !python {model: project.project}: | + self.schedule_tasks(cr, uid, [ref("project_integrate_openerp")], context=context) - I cancel Project. - !python {model: project.project}: | - self.set_cancel(cr, uid, [ref("project_integrate_openerp")]) - + self.set_cancel(cr, uid, [ref("project_project_9")]) diff --git a/addons/project/test/task_process.yml b/addons/project/test/task_process.yml index 0a6a15a230b..87d2206a918 100644 --- a/addons/project/test/task_process.yml +++ b/addons/project/test/task_process.yml @@ -26,7 +26,6 @@ task = self.browse(cr, uid, ref("project_task_1"), context=context) assert task.planned_hours == 2.0, "Planning hours is not correct after delegated." assert task.state == "pending", "Task should be in Pending after delegated." - assert len(task.child_ids), "Sub task is not created after delegate." - I Re-open the task. - From ee3dd3f581e259af3084b2b0289c02e8de404ed8 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Mon, 28 Nov 2011 16:41:07 +0530 Subject: [PATCH 4/8] [IMP]minor changes to the statements of YML. bzr revid: kbh@tinyerp.com-20111128111107-gsnjmi1xm9z647vv --- addons/project/test/project_process.yml | 8 ++++---- addons/project/test/task_process.yml | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/project/test/project_process.yml b/addons/project/test/project_process.yml index 4e1a5e80281..1c0c7a18713 100644 --- a/addons/project/test/project_process.yml +++ b/addons/project/test/project_process.yml @@ -25,17 +25,17 @@ !python {model: project.project}: | self.set_pending(cr, uid, [ref("project_integrate_openerp")]) - - I Check state after put in pending. + I check state after put in pending. - !assert {model: project.project, id: project_integrate_openerp, severity: error, string: Project should be in pending state}: - state == "pending" - - I Re-open the project. + I re-open the project. - !python {model: project.project}: | self.set_open(cr, uid, [ref("project_integrate_openerp")]) - - I Check state after reopen. + I check state after reopen. - !assert {model: project.project, id: project_integrate_openerp, severity: error, string: Project should be open.}: - state == "open" @@ -45,7 +45,7 @@ !python {model: project.project}: | self.set_done(cr, uid, [ref("project_integrate_openerp")]) - - I Check state after closed. + I check state after closed. - !assert {model: project.project, id: project_integrate_openerp, severity: error, string: Project should be close.}: - state == "close" diff --git a/addons/project/test/task_process.yml b/addons/project/test/task_process.yml index 87d2206a918..e294b117397 100644 --- a/addons/project/test/task_process.yml +++ b/addons/project/test/task_process.yml @@ -5,12 +5,12 @@ self.do_pending(cr, uid, [ref("project_task_1")]) context.update({"active_id": ref("project_task_1")}) - - I Check state of task after put in pending. + I check state of task after put in pending. - !assert {model: project.task, id: project_task_1, severity: error, string: task should be in pending state}: - state == "pending" - - !record {model: project.task.delegate, id: delegate_id}: + !record {model: project.task.delegate, id: delegate_id}: user_id: res_users_analyst planned_hours: 12.0 planned_hours_me: 2.0 @@ -27,7 +27,7 @@ assert task.planned_hours == 2.0, "Planning hours is not correct after delegated." assert task.state == "pending", "Task should be in Pending after delegated." - - I Re-open the task. + I re-open the task. - !python {model: project.task}: | self.do_reopen(cr, uid, [ref("project_task_1")]) @@ -37,7 +37,7 @@ !assert {model: project.task, id: project_task_1, severity: error, string: task should be open.}: - state == "open" - - !record {model: project.task.reevaluate, id: reevaluate_id}: + !record {model: project.task.reevaluate, id: reevaluate_id}: remaining_hours : 120 - I reevaluate task with remaining hours. @@ -55,7 +55,7 @@ !python {model: project.task}: | self.do_close(cr, uid, [ref("project_task_1")]) - - I Check state after closed. + I check state after closed. - !assert {model: project.task, id: project_task_1, severity: error, string: task is in open state}: - state == "done" From 44d56c5bea5ae7948006a90bc8320a3bc4240961 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Fri, 9 Dec 2011 13:00:04 +0530 Subject: [PATCH 5/8] [IMP] improvement in code bzr revid: tpa@tinyerp.com-20111209073004-ll1y70suz5oo0yv5 --- addons/project/__openerp__.py | 1 + addons/project/project.py | 5 +++-- addons/project/test/project_demo.yml | 12 ++++++++++++ addons/project/test/project_process.yml | 16 ++++++++++------ addons/project/test/task_process.yml | 16 ++++++++++++---- 5 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 addons/project/test/project_demo.yml diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index c9484ae9dd8..1a03232e628 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -63,6 +63,7 @@ Dashboard for project members that includes: 'test':[ 'test/project_process.yml', 'test/task_process.yml', + 'test/project_demo.yml', ], 'installable': True, 'active': False, diff --git a/addons/project/project.py b/addons/project/project.py index 1fc83771005..c2dc37b062b 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -111,6 +111,7 @@ class project(osv.osv): if task.project_id: result[task.project_id.id] = True return result.keys() + #dead code def _get_project_work(self, cr, uid, ids, context=None): result = {} for work in self.pool.get('project.task.work').browse(cr, uid, ids, context=context): @@ -357,7 +358,7 @@ def Project(): working_days = %s resource = %s """ % ( - project.id, + project.id, project.date_start, working_days, '|'.join(['User_'+str(x) for x in puids]) ) @@ -1016,7 +1017,7 @@ class account_analytic_account(osv.osv): if vals.get('child_ids', False) and context.get('analytic_project_copy', False): vals['child_ids'] = [] return super(account_analytic_account, self).create(cr, uid, vals, context=context) - + def unlink(self, cr, uid, ids, *args, **kwargs): project_obj = self.pool.get('project.project') analytic_ids = project_obj.search(cr, uid, [('analytic_account_id','in',ids)]) diff --git a/addons/project/test/project_demo.yml b/addons/project/test/project_demo.yml new file mode 100644 index 00000000000..3bcae52e238 --- /dev/null +++ b/addons/project/test/project_demo.yml @@ -0,0 +1,12 @@ +- + !record {model: project.project, id: project_integrate_openerp, view: False}: + partner_id: base.res_partner_agrolait +- + !record {model: project.task, id: project_task_1, view: False}: + remaining_hours: 10.00 +- + !record {model: project.task, id: project_task_1, view: False}: + planned_hours: 10.00 +- + !record {model: project.task, id: project_task_1, view: False}: + project_id: project_integrate_openerp \ No newline at end of file diff --git a/addons/project/test/project_process.yml b/addons/project/test/project_process.yml index 1c0c7a18713..d162a5e5ba2 100644 --- a/addons/project/test/project_process.yml +++ b/addons/project/test/project_process.yml @@ -17,8 +17,7 @@ I check project details after convert from template. - !assert {model: project.project, id: project_integrate_openerp, severity: error, string: Project should be active}: - - state == "open" - + - state == "open" - I put project in pending. - @@ -28,7 +27,7 @@ I check state after put in pending. - !assert {model: project.project, id: project_integrate_openerp, severity: error, string: Project should be in pending state}: - - state == "pending" + - state == "pending" - I re-open the project. - @@ -38,7 +37,7 @@ I check state after reopen. - !assert {model: project.project, id: project_integrate_openerp, severity: error, string: Project should be open.}: - - state == "open" + - state == "open" - I close the project. - @@ -48,7 +47,7 @@ I check state after closed. - !assert {model: project.project, id: project_integrate_openerp, severity: error, string: Project should be close.}: - - state == "close" + - state == "close" - I set project into template. - @@ -59,8 +58,13 @@ - !python {model: project.project}: | self.schedule_tasks(cr, uid, [ref("project_integrate_openerp")], context=context) +- + I set copy the tasks of project. +- + !python {model: project.project}: | + self.template_copy(cr, uid, ref("project_integrate_openerp")) - I cancel Project. - !python {model: project.project}: | - self.set_cancel(cr, uid, [ref("project_project_9")]) + self.set_cancel(cr, uid, [ref("project_project_9")]) \ No newline at end of file diff --git a/addons/project/test/task_process.yml b/addons/project/test/task_process.yml index e294b117397..a12877526c1 100644 --- a/addons/project/test/task_process.yml +++ b/addons/project/test/task_process.yml @@ -39,6 +39,11 @@ - !record {model: project.task.reevaluate, id: reevaluate_id}: remaining_hours : 120 +- + I chnge the stage of task to next stage +- + !python {model: project.task}: | + self.prev_type(cr, uid, [ref("project_task_1")]) - I reevaluate task with remaining hours. - @@ -49,11 +54,16 @@ - !assert {model: project.task, id: project_task_1, severity: error, string: task should be reevaluated}: - remaining_hours == 120.0 +- + I chnge the stage of task to next stage +- + !python {model: project.task}: | + self.next_type(cr, uid, [ref("project_task_1")]) - I close the task. - !python {model: project.task}: | - self.do_close(cr, uid, [ref("project_task_1")]) + self.action_close(cr, uid, [ref("project_task_1")]) - I check state after closed. - @@ -63,6 +73,4 @@ I cancel Task. - !python {model: project.task}: | - self.do_cancel(cr, uid, [ref("project_task_2")]) - - + self.do_cancel(cr, uid, [ref("project_task_2")]) \ No newline at end of file From 7b052fa0a3cdc88bf6456526a2e6ff0a8cbcf522 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Fri, 9 Dec 2011 14:31:23 +0530 Subject: [PATCH 6/8] [IMP] change string bzr revid: tpa@tinyerp.com-20111209090123-12kku4od5n0g3ejb --- addons/project/test/task_process.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project/test/task_process.yml b/addons/project/test/task_process.yml index a12877526c1..0938e649785 100644 --- a/addons/project/test/task_process.yml +++ b/addons/project/test/task_process.yml @@ -40,7 +40,7 @@ !record {model: project.task.reevaluate, id: reevaluate_id}: remaining_hours : 120 - - I chnge the stage of task to next stage + I chnge the stage of task to previous stage - !python {model: project.task}: | self.prev_type(cr, uid, [ref("project_task_1")]) From 053270ae0d6e638789726fc3f0035a1efbf180f0 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Mon, 12 Dec 2011 17:27:57 +0530 Subject: [PATCH 7/8] [IMP] improved YML test case of Project bzr revid: tpa@tinyerp.com-20111212115757-ad9q8xzm8b38k2mo --- addons/project/__openerp__.py | 2 +- addons/project/test/project_process.yml | 2 +- addons/project/test/task_process.yml | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index 1a03232e628..067c0b4d452 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -61,9 +61,9 @@ Dashboard for project members that includes: 'project_demo.xml', ], 'test':[ + 'test/project_demo.yml', 'test/project_process.yml', 'test/task_process.yml', - 'test/project_demo.yml', ], 'installable': True, 'active': False, diff --git a/addons/project/test/project_process.yml b/addons/project/test/project_process.yml index d162a5e5ba2..3c51c464b1f 100644 --- a/addons/project/test/project_process.yml +++ b/addons/project/test/project_process.yml @@ -59,7 +59,7 @@ !python {model: project.project}: | self.schedule_tasks(cr, uid, [ref("project_integrate_openerp")], context=context) - - I set copy the tasks of project. + I copy the tasks of project. - !python {model: project.project}: | self.template_copy(cr, uid, ref("project_integrate_openerp")) diff --git a/addons/project/test/task_process.yml b/addons/project/test/task_process.yml index 0938e649785..3d9edb54e57 100644 --- a/addons/project/test/task_process.yml +++ b/addons/project/test/task_process.yml @@ -40,10 +40,10 @@ !record {model: project.task.reevaluate, id: reevaluate_id}: remaining_hours : 120 - - I chnge the stage of task to previous stage + I change the stage of task to next stage. - !python {model: project.task}: | - self.prev_type(cr, uid, [ref("project_task_1")]) + self.next_type(cr, uid, [ref("project_task_1")]) - I reevaluate task with remaining hours. - @@ -55,10 +55,10 @@ !assert {model: project.task, id: project_task_1, severity: error, string: task should be reevaluated}: - remaining_hours == 120.0 - - I chnge the stage of task to next stage + I change the stage of task to previous stage. - !python {model: project.task}: | - self.next_type(cr, uid, [ref("project_task_1")]) + self.prev_type(cr, uid, [ref("project_task_1")]) - I close the task. - From 97424370c6dc8646e7e094d9da94eb33eeeabae5 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Mon, 12 Dec 2011 17:58:58 +0530 Subject: [PATCH 8/8] [IMP] improved YML test case of Project bzr revid: tpa@tinyerp.com-20111212122858-hcmybqd9sinpfzs8 --- addons/project/test/task_process.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/project/test/task_process.yml b/addons/project/test/task_process.yml index 3d9edb54e57..73250de2963 100644 --- a/addons/project/test/task_process.yml +++ b/addons/project/test/task_process.yml @@ -36,14 +36,14 @@ - !assert {model: project.task, id: project_task_1, severity: error, string: task should be open.}: - state == "open" -- - !record {model: project.task.reevaluate, id: reevaluate_id}: - remaining_hours : 120 - I change the stage of task to next stage. - !python {model: project.task}: | self.next_type(cr, uid, [ref("project_task_1")]) +- + !record {model: project.task.reevaluate, id: reevaluate_id}: + remaining_hours : 120 - I reevaluate task with remaining hours. - @@ -54,11 +54,6 @@ - !assert {model: project.task, id: project_task_1, severity: error, string: task should be reevaluated}: - remaining_hours == 120.0 -- - I change the stage of task to previous stage. -- - !python {model: project.task}: | - self.prev_type(cr, uid, [ref("project_task_1")]) - I close the task. - @@ -69,6 +64,11 @@ - !assert {model: project.task, id: project_task_1, severity: error, string: task is in open state}: - state == "done" +- + I change the stage of task to previous stage. +- + !python {model: project.task}: | + self.prev_type(cr, uid, [ref("project_task_1")]) - I cancel Task. -