From 2cb53411c0a3640063b935a3f5fc060d4eca7c9b Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Tue, 8 Feb 2022 20:02:14 -0800 Subject: [PATCH] change: remove comaintainers when fulfilling orphan request Closes FS#50079 Signed-off-by: Kevin Morris --- aurweb/pkgbase/actions.py | 1 + test/test_requests.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/aurweb/pkgbase/actions.py b/aurweb/pkgbase/actions.py index 73366829..229d52b9 100644 --- a/aurweb/pkgbase/actions.py +++ b/aurweb/pkgbase/actions.py @@ -71,6 +71,7 @@ def pkgbase_disown_instance(request: Request, pkgbase: PackageBase) -> None: notifs += handle_request(request, ORPHAN_ID, pkgbase) with db.begin(): pkgbase.Maintainer = None + db.delete_all(pkgbase.comaintainers) util.apply_all(notifs, lambda n: n.send()) diff --git a/test/test_requests.py b/test/test_requests.py index 113368f0..5ac558e0 100644 --- a/test/test_requests.py +++ b/test/test_requests.py @@ -12,6 +12,7 @@ from fastapi.testclient import TestClient from aurweb import asgi, config, db, defaults, time from aurweb.models import Package, PackageBase, PackageRequest, User from aurweb.models.account_type import TRUSTED_USER_ID, USER_ID +from aurweb.models.package_comaintainer import PackageComaintainer from aurweb.models.package_notification import PackageNotification from aurweb.models.package_request import ACCEPTED_ID, PENDING_ID, REJECTED_ID from aurweb.models.request_type import DELETION_ID, MERGE_ID, ORPHAN_ID @@ -501,6 +502,11 @@ def test_merge_autorequest(client: TestClient, user: User, tu_user: User, def test_orphan_request(client: TestClient, user: User, tu_user: User, pkgbase: PackageBase, pkgreq: PackageRequest): """ Test the standard orphan request route. """ + user2 = create_user("user2", "user2@example.org") + with db.begin(): + db.create(PackageComaintainer, User=user2, + PackageBase=pkgbase, Priority=1) + idle_time = config.getint("options", "request_idle_time") now = time.utcnow() with db.begin(): @@ -516,6 +522,12 @@ def test_orphan_request(client: TestClient, user: User, tu_user: User, assert resp.status_code == int(HTTPStatus.SEE_OTHER) assert resp.headers.get("location") == f"/pkgbase/{pkgbase.Name}" + # We should have unset the maintainer. + assert pkgbase.Maintainer is None + + # We should have removed the comaintainers. + assert not pkgbase.comaintainers.all() + # Ensure that `pkgreq`.ClosureComment was left alone when specified. assert pkgreq.ClosureComment == comments