From c0da5123154c38995155c81e05c51b94e1bdf8a1 Mon Sep 17 00:00:00 2001 From: Kavya Katal Date: Thu, 20 Aug 2026 11:05:58 +0530 Subject: [PATCH] test(bitbucket): pin redirect rejection for authenticated requests --- tools/bitbucket/tests/test_bitbucket.py | 26 ++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/tools/bitbucket/tests/test_bitbucket.py b/tools/bitbucket/tests/test_bitbucket.py index 8d518a7d..81291b66 100644 --- a/tools/bitbucket/tests/test_bitbucket.py +++ b/tools/bitbucket/tests/test_bitbucket.py @@ -27,7 +27,13 @@ from magpie_bitbucket import cloud, datacenter from magpie_bitbucket.cli import main -from magpie_bitbucket.client import BitbucketError, SameHostRedirectHandler, load_config, make_auth_header +from magpie_bitbucket.client import ( + BitbucketError, + NoAuthRedirectHandler, + SameHostRedirectHandler, + load_config, + make_auth_header, +) from magpie_bitbucket.normalize import ( created_issue_comment, issue, @@ -106,6 +112,24 @@ def urllib_request(url: str) -> urllib.request.Request: ) +def test_no_auth_redirect_handler_rejects_redirect() -> None: + handler = NoAuthRedirectHandler() + request = urllib_request("https://api.bitbucket.org/2.0/repositories/apache/magpie") + + with pytest.raises( + BitbucketError, + match="refusing to forward credentials", + ): + handler.redirect_request( + request, + None, + 302, + "Found", + {}, + "https://api.bitbucket.org/2.0/repositories/apache/magpie/issues/7/comments", + ) + + def test_same_host_redirect_handler_allows_same_origin() -> None: handler = SameHostRedirectHandler() request = urllib_request("https://bitbucket.example.test/rest/api/1.0/foo")