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")]) +-