From 374dc89c098c31647ee0938d98ea98ec81ef68bf Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sun, 3 May 2026 18:34:20 +0200 Subject: [PATCH] Add tests with invalid signatures for integrations.gitea.middlewares.signature.GiteaSignatureMiddleware --- .../test_GiteaSignatureMiddleware.py | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/tests/unit/integrations/gitea/middlewares/signature/test_GiteaSignatureMiddleware.py b/tests/unit/integrations/gitea/middlewares/signature/test_GiteaSignatureMiddleware.py index 96bbd74..2e898d5 100644 --- a/tests/unit/integrations/gitea/middlewares/signature/test_GiteaSignatureMiddleware.py +++ b/tests/unit/integrations/gitea/middlewares/signature/test_GiteaSignatureMiddleware.py @@ -102,4 +102,42 @@ async def test_GiteaSignatureMiddleware_valid_signature(body, secret): ) res = await middleware.dispatch(req, call_next) - assert hasattr(res, 'called') \ No newline at end of file + assert hasattr(res, 'called') + +@pytest.mark.asyncio +@pytest.mark.parametrize('signature,body,secret', [ + (make_signature(b'body', b''), b'body', b'\x42'), + (make_signature(b'body', b'\x42'), b'body', b''), + (make_signature(b'body', b'\x43'), b'body', b'\x42'), + (make_signature(b'body', b'\x42'), b'body', b'\x43'), + (make_signature(b'body', b''), b'body', b'\x42\x43'), + (make_signature(b'body', b'\x42\x43'), b'body', b''), + (make_signature(b'body', b'\x43\x44'), b'body', b'\x42'), + (make_signature(b'body', b'\x42'), b'body', b'\x43\x44'), + (make_signature(b'', b''), b'', b'\x42'), + (make_signature(b'', b'\x42'), b'', b''), + (make_signature(b'', b'\x43'), b'', b'\x42'), + (make_signature(b'', b'\x42'), b'', b'\x43'), + (make_signature(b'', b''), b'', b'\x42\x43'), + (make_signature(b'', b'\x42\x43'), b'', b''), + (make_signature(b'', b'\x43\x44'), b'', b'\x42'), + (make_signature(b'', b'\x42'), b'', b'\x43\x44'), + + (make_signature(b'a', b'\x42'), b'', b'\x42'), + (make_signature(b'a', b'\x42'), b'b', b'\x42'), + (make_signature(b'', b'\x42'), b'b', b'\x42'), +]) +async def test_GiteaSignatureMiddleware_invalid_signature(signature, body, secret): + middleware = GiteaSignatureMiddleware(app = None, secret = secret) + + headers = { + 'X-Gitea-Signature': signature + } + + req = make_request( + body, + headers + ) + + with pytest.raises(HTTPException): + await middleware.dispatch(req, call_next) \ No newline at end of file