diff --git a/addons/project_scrum/__openerp__.py b/addons/project_scrum/__openerp__.py
index fb08b8432be..eb84a6bc52b 100644
--- a/addons/project_scrum/__openerp__.py
+++ b/addons/project_scrum/__openerp__.py
@@ -65,7 +65,12 @@ More information on the methodology:
"board_project_scrum_view.xml",
],
'demo_xml': ['project_scrum_demo.xml'],
- 'test': ['test/project_scrum_report.yml'],
+ 'test': ['test/project_scrum_report.yml',
+ 'test/draft2open2close_sprint.yml',
+ 'test/draft2open2close_backlog.yml',
+ 'test/cancel_backlog.yml',
+ 'test/project_scrum_test.yml'
+ ],
'installable': True,
'active': False,
'certificate' : '00736750152003010781',
diff --git a/addons/project_scrum/project_scrum.py b/addons/project_scrum/project_scrum.py
index f0db98294e7..b378b1a02b2 100644
--- a/addons/project_scrum/project_scrum.py
+++ b/addons/project_scrum/project_scrum.py
@@ -262,7 +262,7 @@ class project_scrum_task(osv.osv):
'project.scrum.product.backlog': (_get_task, ['sprint_id'], 10)
}),
}
-
+ #dead code
def onchange_backlog_id(self, cr, uid, backlog_id=False):
if not backlog_id:
return {}
@@ -292,7 +292,7 @@ class project_scrum_meeting(osv.osv):
_defaults = {
'date' : lambda *a: time.strftime('%Y-%m-%d'),
}
-
+ # dead code
def button_send_to_master(self, cr, uid, ids, context=None):
meeting_id = self.browse(cr, uid, ids, context=context)[0]
if meeting_id and meeting_id.sprint_id.scrum_master_id.user_email:
@@ -303,6 +303,7 @@ class project_scrum_meeting(osv.osv):
raise osv.except_osv(_('Error !'), _('Please provide email address for scrum master defined on sprint.'))
return True
+ #dead code
def button_send_product_owner(self, cr, uid, ids, context=None):
if context is None:
context = {}
@@ -316,6 +317,7 @@ class project_scrum_meeting(osv.osv):
raise osv.except_osv(_('Error !'), _('Please provide email address for product owner defined on sprint.'))
return True
+ #dead code
def email_send(self, cr, uid, ids, email, context=None):
mail_message_obj = self.pool.get('mail.message')
meeting_id = self.browse(cr, uid, ids, context=context)[0]
diff --git a/addons/project_scrum/project_scrum_demo.xml b/addons/project_scrum/project_scrum_demo.xml
index 76f2846c76f..687fb9c734f 100644
--- a/addons/project_scrum/project_scrum_demo.xml
+++ b/addons/project_scrum/project_scrum_demo.xml
@@ -10,7 +10,6 @@
- open
@@ -387,6 +386,9 @@
open
+
+
+
Admin: Worked on the Automatic migration system
diff --git a/addons/project_scrum/project_scrum_view.xml b/addons/project_scrum/project_scrum_view.xml
index ddf74eb2e93..2ce12c70e1d 100644
--- a/addons/project_scrum/project_scrum_view.xml
+++ b/addons/project_scrum/project_scrum_view.xml
@@ -263,6 +263,8 @@
+
@@ -273,8 +275,6 @@
-
-
diff --git a/addons/project_scrum/test/cancel_backlog.yml b/addons/project_scrum/test/cancel_backlog.yml
new file mode 100644
index 00000000000..5d954972140
--- /dev/null
+++ b/addons/project_scrum/test/cancel_backlog.yml
@@ -0,0 +1,52 @@
+-
+ In Order to Test process of Backlog cancellation,
+-
+ I cancel Backlog "Automatic migration system" from draft state.
+-
+ !python {model: project.scrum.product.backlog}: |
+ self.button_cancel(cr, uid, [ref("scrum_product_backlog_0")])
+-
+ I check state of Backlog after canceled.
+-
+ !assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: backlog should be in cancel state}:
+ - state == "cancel"
+-
+ I cancel Backlog "Editable Trees" from open state.
+-
+ !python {model: project.scrum.product.backlog}: |
+ self.button_cancel(cr, uid, [ref("scrum_product_backlog_7")])
+-
+ I check state of Backlog after canceled.
+-
+ !assert {model: project.scrum.product.backlog, id: scrum_product_backlog_7, severity: error, string: backlog should be in cancel state}:
+ - state == "cancel"
+-
+ I put Backlog in pending state because of resource unavailability.
+-
+ !python {model: project.scrum.product.backlog}: |
+ self.button_pending(cr, uid, [ref("scrum_product_backlog_0")])
+-
+ I check state of Backlog after put in pending.
+-
+ !assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in pending state}:
+ - state == "pending"
+-
+ I cancel Backlog "Automatic migration system" from pending state.
+-
+ !python {model: project.scrum.product.backlog}: |
+ self.button_cancel(cr, uid, [ref("scrum_product_backlog_0")])
+-
+ I check state of Backlog after canceled.
+-
+ !assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: backlog should be in cancel state}:
+ - state == "cancel"
+-
+ I Postpone Backlog "Reshape the complete menu" from open state.
+-
+ !python {model: project.scrum.product.backlog}: |
+ self.button_postpone(cr, uid, [ref("scrum_product_backlog_6")])
+-
+ I check state of Backlog after Postpone.
+-
+ !assert {model: project.scrum.product.backlog, id: scrum_product_backlog_6, severity: error, string: backlog should be in cancel state}:
+ - state == "cancel"
\ No newline at end of file
diff --git a/addons/project_scrum/test/draft2open2close_backlog.yml b/addons/project_scrum/test/draft2open2close_backlog.yml
new file mode 100644
index 00000000000..c438e73c380
--- /dev/null
+++ b/addons/project_scrum/test/draft2open2close_backlog.yml
@@ -0,0 +1,41 @@
+-
+ In Order to Test process of Backlog,
+-
+ I put Backlog in pending state because of specification is not ready.
+-
+ !python {model: project.scrum.product.backlog}: |
+ self.button_pending(cr, uid, [ref("scrum_product_backlog_0")])
+-
+ I check state of Backlog after put in pending.
+-
+ !assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in pending state}:
+ - state == "pending"
+-
+ Now Specification is ready so I Open backlog "Automatic migration system".
+-
+ !python {model: project.scrum.product.backlog}: |
+ self.button_open(cr, uid, [ref("scrum_product_backlog_0")])
+-
+ I check state of Backlog after opened.
+-
+ !assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in open state}:
+ - state == "open"
+-
+ I close Backlog after review
+-
+ !python {model: project.scrum.product.backlog}: |
+ self.button_close(cr, uid, [ref("scrum_product_backlog_0")])
+-
+ I check state of Backlog after closed.
+-
+ !assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in close state}:
+ - state == "done"
+-
+ I merge two Backlogs in to one Backlog
+-
+ First check If only one product backlog selected and If any of the backlog state is done Then not allow merge.then do merge
+-
+ !python {model: project.scrum.backlog.merge}: |
+ self.check_backlogs(cr, uid, [ref("scrum_product_backlog_1"),ref("scrum_product_backlog_2")], {"active_ids": [ref("scrum_product_backlog_1"),ref("scrum_product_backlog_2")],
+ "active_model": 'project.scrum.product.backlog', "active_id": ref("scrum_product_backlog_1")
+ })
\ No newline at end of file
diff --git a/addons/project_scrum/test/draft2open2close_sprint.yml b/addons/project_scrum/test/draft2open2close_sprint.yml
new file mode 100644
index 00000000000..f735ceb9b3d
--- /dev/null
+++ b/addons/project_scrum/test/draft2open2close_sprint.yml
@@ -0,0 +1,57 @@
+-
+ In Order to Test process of Sprint,
+-
+ I Open sprint of "Week 31"
+-
+ !python {model: project.scrum.sprint}: |
+ self.button_open(cr, uid, [ref("scrum_sprint_0")])
+-
+ I check state of sprint after opened.
+-
+ !assert {model: project.scrum.sprint, id: scrum_sprint_0, severity: error, string: Sprint should be in Open state}:
+ - state == "open"
+-
+ I put sprint in pending state to allocate task to resources.
+-
+ !python {model: project.scrum.sprint}: |
+ self.button_pending(cr, uid, [ref("scrum_sprint_0")])
+-
+ I check state of sprint after put in pending.
+-
+ !assert {model: project.scrum.sprint, id: scrum_sprint_0, severity: error, string: Sprint should be in pending state}:
+ - state == "pending"
+-
+ I assign Backlog into this Sprint
+-
+ !python {model: project.scrum.backlog.assign.sprint}: |
+ new_id = self.create(cr, uid, {'sprint_id': ref("scrum_sprint_0")})
+ self.assign_sprint(cr, uid, [new_id], {"active_ids": [ref("scrum_product_backlog_1")],
+ "active_model": 'project.scrum.product.backlog', "active_id": ref("scrum_product_backlog_1")
+ })
+-
+ I create tasks from backlog for sprint
+-
+ !python {model: project.scrum.backlog.create.task}: |
+ new_id = self.create(cr, uid, {'user_id': ref("base.user_root")})
+ self.do_create(cr, uid, [new_id], {
+ "active_ids": [ref("scrum_product_backlog_0")], 'active_model': 'project.scrum.product.backlog', "active_id": ref("scrum_product_backlog_0")
+ })
+-
+ I send email to scrum master with scrum meeting details.
+-
+ !python {model: mail.compose.message }: |
+ ctx = context.copy()
+ ctx.update({'active_model': 'project.scrum.meeting', 'active_id': ref("scrum_meeting_0"), 'active_ids': [ref("scrum_meeting_0")]})
+ vals = self.default_get(cr, uid , [], context=ctx)
+ new_id = self.create(cr, uid, {'email_to': 'tpa@tinyerp.com', 'subject': 'test'})
+ self.send_mail(cr, uid, [new_id], context=ctx)
+-
+ I close sprint after review
+-
+ !python {model: project.scrum.sprint}: |
+ self.button_close(cr, uid, [ref("scrum_sprint_0")])
+-
+ I check state after closed sprint.
+-
+ !assert {model: project.scrum.sprint, id: scrum_sprint_0, severity: error, string: Sprint shoud be in close state}:
+ - state == "done"
\ No newline at end of file
diff --git a/addons/project_scrum/test/project_scrum_test.yml b/addons/project_scrum/test/project_scrum_test.yml
new file mode 100644
index 00000000000..a120d900475
--- /dev/null
+++ b/addons/project_scrum/test/project_scrum_test.yml
@@ -0,0 +1,8 @@
+-
+ !record {model: project.scrum.sprint, id: project_scrum_sprint_test0, view: False}:
+ date_start: '2011-11-16'
+ date_stop: '2011-12-01'
+ name: test
+ product_owner_id: base.user_admin
+ project_id: project.project_integrate_openerp
+ scrum_master_id: project.res_users_project_manager
\ No newline at end of file