new_wukong/tests/core/test_core.py
2024-07-10 20:45:16 +08:00

54 lines
2.0 KiB
Python

import unittest
from src.core import core
class TestBaseMiddleware(unittest.TestCase):
def test_process_base_func1(self):
middleware = core.Middleware(lambda x: x + 1)
self.assertEqual(middleware.process(1), 2)
self.assertEqual(middleware.get_next(), [])
def test_process_base_func2(self):
mid = [core.Middleware(lambda x: x + 2)]
middleware = core.Middleware(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 TestExecutePipeline(unittest.TestCase):
def test_base(self):
middleware = core.Middleware(lambda x: x + 1)
pipeline = core.ExecutePipeline(middleware)
self.assertEqual(pipeline.execute(1), 2)
def test_add(self):
middleware = core.Middleware(lambda x: x + 1)
pipeline = core.ExecutePipeline(middleware)
pipeline.add(core.Middleware(lambda x: x + 2))
self.assertEqual(pipeline.execute(1), 4)
def test_reorder(self):
middleware = core.Middleware(lambda x: x + 1)
pipeline = core.ExecutePipeline(middleware)
pipeline.reorder([])
pipeline.execute(1)
def test_reorder1(self):
middleware_p1 = core.Middleware(lambda x: x + 1)
middleware_p2 = core.Middleware(lambda x: x + 2)
middleware_p3 = core.Middleware(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.Middleware(lambda x: x + 1)
pipeline = core.ExecutePipeline(middleware)
self.assertIsNone(pipeline.execute(None))