import unittest from zope.app.testing import placelesssetup class PipelineTests(unittest.TestCase): def _getTargetClass(self): from pipelines.pipeline import Pipeline return Pipeline def _makeOne(self, *args, **kw): return self._getTargetClass()(*args, **kw) def test_conforms_to_IPipeline(self): from pipelines.interfaces import IPipeline from zope.interface.verify import verifyClass verifyClass(IPipeline, self._getTargetClass()) def test_processFilters(self): pipeline = self._makeOne(filters=(f1, f2, f3)) data = [] pipeline.processFilters(data) self.assertEqual(data, ['f1', 'f2', 'f3']) def test___call__(self): pipeline = self._makeOne(filters=(f1, f2, f3)) data = [] pipeline(data) self.assertEqual(data, ['f1', 'f2', 'f3']) def f1(data, state): state.replica = data[:] state.replica.append('f1') def f2(data, state): state.replica.append('f2') def f3(data, state): state.replica.append('f3') data.extend(state.replica) def test_suite(): from zope.testing import doctest suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(PipelineTests)) suite.addTest(doctest.DocFileSuite( 'pipeline.txt', setUp=placelesssetup.setUp, tearDown=placelesssetup.tearDown, )) return suite if __name__ == "__main__": unittest.main()