Esempio n. 1
0
    def test_RUN_WF01(self):
        """Test wfe is reinit=False, eng must remember previous invocations"""
        we = GenericWorkflowEngine()
        doc = self.getDoc()[0:1]

        we.setWorkflow([
            i('start'),
            ut.RUN_WF(
                [
                    lambda obj, eng: obj.append('bom'),
                    lambda obj, eng: obj.append('bam'),
                    lambda obj, eng: obj.append('bum'),
                    lambda obj, eng: obj.append('end'), lambda obj, eng: obj.
                    append(eng.store.setdefault('eng-end', '')),
                    e('eng-end', 'eng-end')
                ],
                data_connector=lambda obj, eng: [obj],
                outkey='#wfe',
            ),
        ])
        we.process(doc)

        d = ' '.join(doc[0])

        assert 'start' in d
        assert 'bom' in d
        assert 'bam' in d
        assert 'bum' in d
        assert 'end' in d
        assert 'eng-end' not in d

        # run the same thing again
        we.process(doc)

        d = ' '.join(doc[0])
        assert 'start' in d
        assert d.count('bom') == 2
        assert d.count('bam') == 2
        assert d.count('bum') == 2
        assert 'end' in d
        assert 'eng-end' in d  # now it must be present
Esempio n. 2
0
    def test_RUN_WF02(self):
        """Test wfe is reinit=True - eng must not remember"""
        we = GenericWorkflowEngine()
        doc = self.getDoc()[0:1]

        we.callbacks.replace([
            i('start'),
            ut.RUN_WF([
                lambda obj, eng: obj.append('bom'),
                lambda obj, eng: obj.append('bam'),
                lambda obj, eng: obj.append('bum'),
                lambda obj, eng: obj.append('end'), lambda obj, eng: obj.
                append(eng.store.setdefault('eng-end', '')),
                e('eng-end', 'eng-end')
            ],
                      data_connector=lambda obj, eng: [obj],
                      outkey='#wfe',
                      reinit=True),
        ])
        we.process(doc)

        d = ' '.join(doc[0])

        assert 'start' in d
        assert 'bom' in d
        assert 'bam' in d
        assert 'bum' in d
        assert 'end' in d
        assert 'eng-end' not in d

        # run the same thing again
        we.process(doc)

        d = ' '.join(doc[0])
        assert 'start' in d
        assert d.count('bom') == 2
        assert d.count('bam') == 2
        assert d.count('bum') == 2
        assert 'end' in d
        assert 'eng-end' not in d  # it must not be present if reinit=True