From e64541463ce7522b7742a415a0ce6b33791dc208 Mon Sep 17 00:00:00 2001 From: timmy Date: Sat, 15 Aug 2026 10:04:10 +0000 Subject: [PATCH] test: cover Filed withdrawal authorization --- tests/test_work_route_resolver.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/test_work_route_resolver.py b/tests/test_work_route_resolver.py index 5971b40..d6e397c 100644 --- a/tests/test_work_route_resolver.py +++ b/tests/test_work_route_resolver.py @@ -202,6 +202,33 @@ async def test_completed_filed_issue_remains_authorized_for_detail_and_reply(): assert authorized is True +@pytest.mark.anyio +@pytest.mark.parametrize( + ("state", "author", "authorized"), + [("open", "timmy", True), ("closed", "timmy", False), ("open", "alex", False)], +) +async def test_only_open_authored_issues_are_authorized_for_withdrawal( + state, author, authorized +): + async def upstream(request): + if request.url.path.endswith("/user"): + return httpx.Response(200, json={"login": "timmy"}) + return httpx.Response(200, json={ + "state": state, + "user": {"login": author}, + }) + + gitea_proxy.start_client(transport=httpx.MockTransport(upstream)) + try: + result = await gitea_proxy.is_open_authored_issue( + "stackchain/dashboard", 89 + ) + finally: + await gitea_proxy.stop_client() + + assert result is authorized + + @pytest.mark.anyio async def test_resolve_work_route_rejects_a_notification_that_is_already_read(): async def upstream(request):