mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
fix(packages.requests): disown as maintainer does not need handle_requests
As a maintainer, we don't deal with requests at all. Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
parent
34cb8ec268
commit
3a771fc807
3 changed files with 32 additions and 9 deletions
|
@ -102,10 +102,6 @@ def update_closure_comment(pkgbase: PackageBase, reqtype_id: int,
|
|||
|
||||
def verify_orphan_request(user: User, pkgbase: PackageBase):
|
||||
""" Verify that an undue orphan request exists in `requests`. """
|
||||
is_maint = user == pkgbase.Maintainer
|
||||
if is_maint:
|
||||
return True
|
||||
|
||||
requests = pkgbase.requests.filter(
|
||||
PackageRequest.ReqTypeID == ORPHAN_ID)
|
||||
for pkgreq in requests:
|
||||
|
|
|
@ -924,9 +924,9 @@ async def pkgbase_unvote(request: Request, name: str):
|
|||
def pkgbase_disown_instance(request: Request, pkgbase: models.PackageBase):
|
||||
disowner = request.user
|
||||
notifs = [notify.DisownNotification(disowner.ID, pkgbase.ID)]
|
||||
notifs += handle_request(request, ORPHAN_ID, pkgbase)
|
||||
|
||||
if disowner != pkgbase.Maintainer:
|
||||
notifs += handle_request(request, ORPHAN_ID, pkgbase)
|
||||
with db.begin():
|
||||
pkgbase.Maintainer = None
|
||||
else:
|
||||
|
|
|
@ -476,6 +476,33 @@ def test_orphan_request(client: TestClient, user: User, tu_user: User,
|
|||
assert re.match(subj, email.headers.get("Subject"))
|
||||
|
||||
|
||||
def test_request_post_orphan_autogenerated_closure(client: TestClient,
|
||||
tu_user: User,
|
||||
pkgbase: PackageBase,
|
||||
pkgreq: PackageRequest):
|
||||
idle_time = config.getint("options", "request_idle_time")
|
||||
now = int(datetime.utcnow().timestamp())
|
||||
with db.begin():
|
||||
pkgreq.ReqTypeID = ORPHAN_ID
|
||||
# Set the request time so it's seen as due (idle_time has passed).
|
||||
pkgreq.RequestTS = now - idle_time - 10
|
||||
|
||||
endpoint = f"/pkgbase/{pkgbase.Name}/disown"
|
||||
data = {"confirm": True}
|
||||
with client as request:
|
||||
resp = request.post(endpoint, data=data, cookies=tu_user.cookies)
|
||||
assert resp.status_code == int(HTTPStatus.SEE_OTHER)
|
||||
assert resp.headers.get("location") == f"/pkgbase/{pkgbase.Name}"
|
||||
|
||||
assert Email.count() == 1
|
||||
email = Email(1)
|
||||
expr = r"^\[PRQ#\d+\] Orphan Request for .+ Accepted$"
|
||||
assert re.match(expr, email.headers.get("Subject"))
|
||||
|
||||
expr = r"\[Autogenerated\] Accepted orphan for .+\."
|
||||
assert re.search(expr, email.body)
|
||||
|
||||
|
||||
def test_request_post_orphan_autoaccept(client: TestClient, auser: User,
|
||||
pkgbase: PackageBase,
|
||||
caplog: pytest.LogCaptureFixture):
|
||||
|
@ -526,10 +553,10 @@ def test_orphan_as_maintainer(client: TestClient, auser: User,
|
|||
assert resp.status_code == int(HTTPStatus.SEE_OTHER)
|
||||
assert resp.headers.get("location") == f"/pkgbase/{pkgbase.Name}"
|
||||
|
||||
assert Email.count() == 1
|
||||
email = Email(1)
|
||||
expr = r"^\[PRQ#\d+\] Orphan Request for [^ ]+ Accepted$"
|
||||
assert re.match(expr, email.headers.get("Subject"))
|
||||
# As the pkgbase maintainer, disowning the package just ends up
|
||||
# either promoting the lowest priority comaintainer or removing
|
||||
# the associated maintainer relationship altogether.
|
||||
assert pkgbase.Maintainer is None
|
||||
|
||||
|
||||
def test_orphan_without_requests(client: TestClient, tu_user: User,
|
||||
|
|
Loading…
Add table
Reference in a new issue