From 6073282997fb9141ae989643c6cbc5f7b0f89aeb Mon Sep 17 00:00:00 2001 From: Fabien Morin <fabien@nexedi.com> Date: Thu, 18 Sep 2008 08:49:06 +0000 Subject: [PATCH] override some method to be able to display more verbose test reports git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@23695 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../TestTemplateItem/testEGovMixin.py | 41 +++++++++++++++++++ bt5/erp5_egov/bt/revision | 2 +- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/bt5/erp5_egov/TestTemplateItem/testEGovMixin.py b/bt5/erp5_egov/TestTemplateItem/testEGovMixin.py index 131a2bc7b8..7f8dd66153 100644 --- a/bt5/erp5_egov/TestTemplateItem/testEGovMixin.py +++ b/bt5/erp5_egov/TestTemplateItem/testEGovMixin.py @@ -32,6 +32,9 @@ from AccessControl.SecurityManagement import getSecurityManager from Products.ERP5Type.tests.utils import DummyMailHost from AccessControl import Unauthorized from Testing import ZopeTestCase +from Products.ERP5Type.tests.Sequence import Step, Sequence, SequenceList +from zLOG import LOG +import random class TestEGovMixin(SecurityTestCase): """Usefull methods for eGov Unit Tests.""" @@ -66,6 +69,44 @@ class TestEGovMixin(SecurityTestCase): MODIFY = 'Modify portal content' DELETE = 'Delete objects' + + # use modified method to render a more verbose output + def play(self, context, sequence=None, sequence_number=0, quiet=0): + if sequence is None: + for idx, step in enumerate(self._step_list): + step.play(context, sequence=self, quiet=quiet) + # commit transaction after each step + get_transaction().commit() + Sequence.play = play + + def play(self, context, sequence=None, quiet=0): + method_name = 'step' + self._method_name + method = getattr(context,method_name) + # We can in same cases replay many times the same step, + # or not playing it at all + nb_replay = random.randrange(0,self._max_replay+1) + if self._required: + if nb_replay==0: + nb_replay=1 + for i in range(0,nb_replay): + if not quiet: + ZopeTestCase._print('\n Playing step %s' % self._method_name) + ZopeTestCase._print('\n -> %s' % method.__doc__) + LOG('Step.play', 0, ' Playing step %s' % self._method_name) + LOG('Step.play', 0, ' -> %s' % method.__doc__) + method(sequence=sequence) + Step.play = play + + def playSequence(self, sequence_string, quiet=0) : + ZopeTestCase._print('\n\n\n---------------------------------------------------------------------') + ZopeTestCase._print('\nStarting New Sequence %s :' % self._TestCase__testMethodName) + ZopeTestCase._print('\n * %s... \n' % self._TestCase__testMethodDoc) + LOG('Sequence.play', 0, 'Starting New Sequence %s :' % self._TestCase__testMethodName) + LOG('Sequence.play', 0, ' * %s... \n' % self._TestCase__testMethodDoc) + sequence_list = SequenceList() + sequence_list.addSequenceString(sequence_string) + sequence_list.play(self, quiet=quiet) + def getBusinessTemplateList(self): """return list of business templates to be installed. """ return ( 'erp5_base',) diff --git a/bt5/erp5_egov/bt/revision b/bt5/erp5_egov/bt/revision index e0da8ae09a..1a7d3a1c84 100644 --- a/bt5/erp5_egov/bt/revision +++ b/bt5/erp5_egov/bt/revision @@ -1 +1 @@ -309 \ No newline at end of file +318 \ No newline at end of file -- 2.30.9