diff options
| author | Vo Minh Thu <vmt@openerp.com> | 2013-07-25 12:43:27 +0200 |
|---|---|---|
| committer | Vo Minh Thu <vmt@openerp.com> | 2013-07-25 12:43:27 +0200 |
| commit | 64ddf5f26422dfef9c545cc74e6db975d4a2eb50 (patch) | |
| tree | 3ac67728a33661272ac7257679b853d3488a4cfd | |
| parent | ae01b6ab21c3ab26aab135087cf94d80a660c6c2 (diff) | |
[ADD] workflows: more tests.
bzr revid: vmt@openerp.com-20130725104327-l7onjhipi6fdnrj6
| -rw-r--r-- | openerp/tests/addons/test_workflow/data.xml | 65 | ||||
| -rw-r--r-- | openerp/tests/addons/test_workflow/models.py | 13 | ||||
| -rw-r--r-- | openerp/tests/addons/test_workflow/tests/test_workflow.py | 22 |
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]) |
