summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVo Minh Thu <vmt@openerp.com>2013-07-25 12:43:27 +0200
committerVo Minh Thu <vmt@openerp.com>2013-07-25 12:43:27 +0200
commit64ddf5f26422dfef9c545cc74e6db975d4a2eb50 (patch)
tree3ac67728a33661272ac7257679b853d3488a4cfd
parentae01b6ab21c3ab26aab135087cf94d80a660c6c2 (diff)
[ADD] workflows: more tests.
bzr revid: vmt@openerp.com-20130725104327-l7onjhipi6fdnrj6
-rw-r--r--openerp/tests/addons/test_workflow/data.xml65
-rw-r--r--openerp/tests/addons/test_workflow/models.py13
-rw-r--r--openerp/tests/addons/test_workflow/tests/test_workflow.py22
3 files changed, 100 insertions, 0 deletions
diff --git a/openerp/tests/addons/test_workflow/data.xml b/openerp/tests/addons/test_workflow/data.xml
index a07451e2f42..c6f542879a0 100644
--- a/openerp/tests/addons/test_workflow/data.xml
+++ b/openerp/tests/addons/test_workflow/data.xml
@@ -164,5 +164,70 @@
<field name="kind">stopall</field>
<field name="action">write({'value': 1})</field>
</record>
+
+ <!-- Workflow E:
+
+ a -True-> b
+
+ Both activities are run when the workflow is instanciated.
+ -->
+ <record id="test_workflow_e" model="workflow">
+ <field name="name">test.workflow.e</field>
+ <field name="osv">test.workflow.model.e</field>
+ <field name="on_create">True</field>
+ </record>
+
+ <record id="activity_e_a" model="workflow.activity">
+ <field name="wkf_id" ref="test_workflow_e"/>
+ <field name="flow_start">True</field>
+ <field name="name">a</field>
+ <field name="kind">function</field>
+ <field name="action">write({'value': 1})</field>
+ </record>
+ <record id="activity_e_b" model="workflow.activity">
+ <field name="wkf_id" ref="test_workflow_e"/>
+ <field name="flow_stop">True</field>
+ <field name="name">b</field>
+ <field name="kind">function</field>
+ <field name="action">write({'value': 2})</field>
+ </record>
+
+ <record id="trans_e_a_b" model="workflow.transition">
+ <field name="act_from" ref="activity_e_a"/>
+ <field name="act_to" ref="activity_e_b"/>
+ </record>
+
+ <!-- Workflow F:
+
+ a -signal-> b
+
+ Same as E but with a signal on the transition.
+ -->
+ <record id="test_workflow_f" model="workflow">
+ <field name="name">test.workflow.f</field>
+ <field name="osv">test.workflow.model.f</field>
+ <field name="on_create">True</field>
+ </record>
+
+ <record id="activity_f_a" model="workflow.activity">
+ <field name="wkf_id" ref="test_workflow_f"/>
+ <field name="flow_start">True</field>
+ <field name="name">a</field>
+ <field name="kind">function</field>
+ <field name="action">write({'value': 1})</field>
+ </record>
+ <record id="activity_f_b" model="workflow.activity">
+ <field name="wkf_id" ref="test_workflow_f"/>
+ <field name="flow_stop">True</field>
+ <field name="name">b</field>
+ <field name="kind">function</field>
+ <field name="action">write({'value': 2})</field>
+ </record>
+
+ <record id="trans_f_a_b" model="workflow.transition">
+ <field name="act_from" ref="activity_f_a"/>
+ <field name="act_to" ref="activity_f_b"/>
+ <field name="signal">a-b</field>
+ </record>
</data>
</openerp>
diff --git a/openerp/tests/addons/test_workflow/models.py b/openerp/tests/addons/test_workflow/models.py
index b1df8e662d3..84789cc9b69 100644
--- a/openerp/tests/addons/test_workflow/models.py
+++ b/openerp/tests/addons/test_workflow/models.py
@@ -51,4 +51,17 @@ class d(openerp.osv.orm.Model):
_name = 'test.workflow.model.d'
_inherit = 'test.workflow.model.a'
+class e(openerp.osv.orm.Model):
+ _name = 'test.workflow.model.e'
+ _inherit = 'test.workflow.model.a'
+
+for name in 'bcdef':
+ type(
+ name,
+ (openerp.osv.orm.Model,),
+ {
+ '_name': 'test.workflow.model.%s' % name,
+ '_inherit': 'test.workflow.model.a',
+ })
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/tests/addons/test_workflow/tests/test_workflow.py b/openerp/tests/addons/test_workflow/tests/test_workflow.py
index c09511dc168..d55657f6a6a 100644
--- a/openerp/tests/addons/test_workflow/tests/test_workflow.py
+++ b/openerp/tests/addons/test_workflow/tests/test_workflow.py
@@ -103,3 +103,25 @@ class test_workflows(common.TransactionCase):
self.check_value(model._name, i, 1)
model.unlink(self.cr, SUPERUSER_ID, [i])
+
+ def test_workflow_e(self):
+ model = self.registry('test.workflow.model.e')
+
+ i = model.create(self.cr, SUPERUSER_ID, {})
+ self.check_activities(model._name, i, ['b'])
+ self.check_value(model._name, i, 2)
+
+ model.unlink(self.cr, SUPERUSER_ID, [i])
+
+ def test_workflow_f(self):
+ model = self.registry('test.workflow.model.f')
+
+ i = model.create(self.cr, SUPERUSER_ID, {})
+ self.check_activities(model._name, i, ['a'])
+ self.check_value(model._name, i, 1)
+
+ model.signal_workflow(self.cr, SUPERUSER_ID, [i], 'a-b')
+ self.check_activities(model._name, i, ['b'])
+ self.check_value(model._name, i, 2)
+
+ model.unlink(self.cr, SUPERUSER_ID, [i])