async def test_async_wrapper_sync(self):
     mock = MagicMock(return_value=True)
     meta = HandlerMeta(mock)
     self.assertEqual(True, await meta.async_wrapper(InMemoryRequest(True)))
 def test_sync_wrapper_async_raises(self):
     mock = AsyncMock()
     meta = HandlerMeta(mock)
     with self.assertRaises(ValueError):
         meta.sync_wrapper(InMemoryRequest(True))
 def test_wrapper_sync_call(self):
     meta = HandlerMeta(_fn)
     with patch("minos.networks.CheckerMeta.run_sync") as mock:
         self.assertEqual(Response("Fn"), meta.wrapper(InMemoryRequest("foo")))
         self.assertEqual([call(meta.decorators, InMemoryRequest("foo"))], mock.call_args_list)
 async def test_wrapper_sync_call_raises(self):
     meta = HandlerMeta(_fn)
     with patch("minos.networks.CheckerMeta.run_sync", side_effect=NotSatisfiedCheckerException("")):
         with self.assertRaises(ResponseException):
             await meta.wrapper(InMemoryRequest("foo"))
 def test_wrapper_sync(self):
     meta = HandlerMeta(_fn)
     wrapper = meta.wrapper
     self.assertIsInstance(wrapper, HandlerWrapper)
     self.assertEqual(meta, wrapper.meta)
     self.assertEqual(meta.check, wrapper.check)
 def setUp(self) -> None:
     self.meta = HandlerMeta(_fn)
class TestHandlerMeta(unittest.IsolatedAsyncioTestCase):
    def setUp(self) -> None:
        self.meta = HandlerMeta(_fn)

    def test_constructor(self):
        self.assertEqual(_fn, self.meta.func)
        self.assertEqual(set(), self.meta.decorators)
        self.assertEqual(set(), self.meta.checkers)

    async def test_wrapper_async(self):
        meta = HandlerMeta(_async_fn)
        wrapper = meta.wrapper
        self.assertIsInstance(wrapper, HandlerWrapper)
        self.assertEqual(meta, wrapper.meta)
        self.assertEqual(meta.check, wrapper.check)

    def test_wrapper_sync(self):
        meta = HandlerMeta(_fn)
        wrapper = meta.wrapper
        self.assertIsInstance(wrapper, HandlerWrapper)
        self.assertEqual(meta, wrapper.meta)
        self.assertEqual(meta.check, wrapper.check)

    async def test_wrapper_async_call(self):
        meta = HandlerMeta(_async_fn)
        with patch("minos.networks.CheckerMeta.run_async") as mock:
            self.assertEqual(Response("Async Fn: foo"), await meta.wrapper(InMemoryRequest("foo")))
            self.assertEqual([call(meta.decorators, InMemoryRequest("foo"))], mock.call_args_list)

    async def test_wrapper_async_call_raises(self):
        meta = HandlerMeta(_async_fn)
        with patch("minos.networks.CheckerMeta.run_async", side_effect=NotSatisfiedCheckerException("")):
            with self.assertRaises(ResponseException):
                await meta.wrapper(InMemoryRequest("foo"))

    def test_wrapper_sync_call(self):
        meta = HandlerMeta(_fn)
        with patch("minos.networks.CheckerMeta.run_sync") as mock:
            self.assertEqual(Response("Fn"), meta.wrapper(InMemoryRequest("foo")))
            self.assertEqual([call(meta.decorators, InMemoryRequest("foo"))], mock.call_args_list)

    async def test_wrapper_sync_call_raises(self):
        meta = HandlerMeta(_fn)
        with patch("minos.networks.CheckerMeta.run_sync", side_effect=NotSatisfiedCheckerException("")):
            with self.assertRaises(ResponseException):
                await meta.wrapper(InMemoryRequest("foo"))

    async def test_async_wrapper_sync(self):
        mock = MagicMock(return_value=True)
        meta = HandlerMeta(mock)
        self.assertEqual(True, await meta.async_wrapper(InMemoryRequest(True)))

    def test_sync_wrapper_async_raises(self):
        mock = AsyncMock()
        meta = HandlerMeta(mock)
        with self.assertRaises(ValueError):
            meta.sync_wrapper(InMemoryRequest(True))

    def test_add_decorator(self):
        decorator = BrokerCommandEnrouteDecorator("CreateFoo")
        self.meta.add_decorator(decorator)
        self.assertEqual({decorator}, self.meta.decorators)

    def test_add_decorator_raises(self):
        self.meta.add_decorator(BrokerCommandEnrouteDecorator("CreateFoo"))

        with self.assertRaises(MinosMultipleEnrouteDecoratorKindsException):
            self.meta.add_decorator(BrokerQueryEnrouteDecorator("GetFoo"))

    def test_repr(self):
        self.assertEqual(f"HandlerMeta({_fn!r}, {set()!r}, {set()!r})", repr(self.meta))

    def test_eq(self):
        self.assertEqual(HandlerMeta(_fn), HandlerMeta(_fn))
        self.assertNotEqual(HandlerMeta(_fn), HandlerMeta(_async_fn))

    def test_iter(self):
        self.assertEqual((_fn, set(), set()), tuple(self.meta))

    def test_hash(self):
        self.assertEqual(hash(_fn), hash(self.meta))
 def test_eq(self):
     self.assertEqual(HandlerMeta(_fn), HandlerMeta(_fn))
     self.assertNotEqual(HandlerMeta(_fn), HandlerMeta(_async_fn))
示例#9
0
 def test_decorate(self):
     decorated = self.decorator(_fn)
     self.assertIsInstance(decorated, HandlerWrapper)
     self.assertEqual(HandlerMeta(_fn, {self.decorator}), decorated.meta)