import unittest from src.core import core class TestBaseMiddleware(unittest.TestCase): def test_process_base_func1(self): middleware = core.BaseMiddleware(lambda x: x + 1) self.assertEqual(middleware.process(1), 2) self.assertEqual(middleware.get_next(), []) def test_process_base_func2(self): mid = [core.BaseMiddleware(lambda x: x + 2)] middleware = core.BaseMiddleware(lambda x: x + 1, next_middleware=mid) self.assertEqual(middleware.process(1), 2) self.assertEqual(middleware._data, 4) self.assertIs(middleware.get_next(), mid) class TestBaseEngine(unittest.TestCase): pass class ExecutePipeline(unittest.TestCase): def test_base(self): middleware = core.BaseMiddleware(lambda x: x + 1) pipeline = core.ExecutePipeline(middleware) self.assertEqual(pipeline.execute(1), 2) def test_add(self): middleware = core.BaseMiddleware(lambda x: x + 1) pipeline = core.ExecutePipeline(middleware) pipeline.add(core.BaseMiddleware(lambda x: x + 2)) self.assertEqual(pipeline.execute(1), 4) def test_reorder(self): middleware = core.BaseMiddleware(lambda x: x + 1) pipeline = core.ExecutePipeline(middleware) pipeline.reorder([]) pipeline.execute(1) def test_reorder1(self): middleware_p1 = core.BaseMiddleware(lambda x: x + 1) middleware_p2 = core.BaseMiddleware(lambda x: x + 2) middleware_p3 = core.BaseMiddleware(lambda x: x + 3) pipeline = core.ExecutePipeline(middleware_p1, middleware_p2, middleware_p3) self.assertEqual(pipeline.execute(1), 7) pipeline.reorder([1, 0, 2]) self.assertEqual(pipeline.execute(1), 7) pipeline.reorder([0, 2]) self.assertEqual(pipeline.execute(1), 6) pipeline.reorder([1]) self.assertEqual(pipeline.execute(1), 4) def test_execute_none(self): middleware = core.BaseMiddleware(lambda x: x + 1) pipeline = core.ExecutePipeline(middleware) self.assertIsNone(pipeline.execute(None))