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):
|
def verify_orphan_request(user: User, pkgbase: PackageBase):
|
||||||
""" Verify that an undue orphan request exists in `requests`. """
|
""" Verify that an undue orphan request exists in `requests`. """
|
||||||
is_maint = user == pkgbase.Maintainer
|
|
||||||
if is_maint:
|
|
||||||
return True
|
|
||||||
|
|
||||||
requests = pkgbase.requests.filter(
|
requests = pkgbase.requests.filter(
|
||||||
PackageRequest.ReqTypeID == ORPHAN_ID)
|
PackageRequest.ReqTypeID == ORPHAN_ID)
|
||||||
for pkgreq in requests:
|
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):
|
def pkgbase_disown_instance(request: Request, pkgbase: models.PackageBase):
|
||||||
disowner = request.user
|
disowner = request.user
|
||||||
notifs = [notify.DisownNotification(disowner.ID, pkgbase.ID)]
|
notifs = [notify.DisownNotification(disowner.ID, pkgbase.ID)]
|
||||||
notifs += handle_request(request, ORPHAN_ID, pkgbase)
|
|
||||||
|
|
||||||
if disowner != pkgbase.Maintainer:
|
if disowner != pkgbase.Maintainer:
|
||||||
|
notifs += handle_request(request, ORPHAN_ID, pkgbase)
|
||||||
with db.begin():
|
with db.begin():
|
||||||
pkgbase.Maintainer = None
|
pkgbase.Maintainer = None
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -476,6 +476,33 @@ def test_orphan_request(client: TestClient, user: User, tu_user: User,
|
||||||
assert re.match(subj, email.headers.get("Subject"))
|
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,
|
def test_request_post_orphan_autoaccept(client: TestClient, auser: User,
|
||||||
pkgbase: PackageBase,
|
pkgbase: PackageBase,
|
||||||
caplog: pytest.LogCaptureFixture):
|
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.status_code == int(HTTPStatus.SEE_OTHER)
|
||||||
assert resp.headers.get("location") == f"/pkgbase/{pkgbase.Name}"
|
assert resp.headers.get("location") == f"/pkgbase/{pkgbase.Name}"
|
||||||
|
|
||||||
assert Email.count() == 1
|
# As the pkgbase maintainer, disowning the package just ends up
|
||||||
email = Email(1)
|
# either promoting the lowest priority comaintainer or removing
|
||||||
expr = r"^\[PRQ#\d+\] Orphan Request for [^ ]+ Accepted$"
|
# the associated maintainer relationship altogether.
|
||||||
assert re.match(expr, email.headers.get("Subject"))
|
assert pkgbase.Maintainer is None
|
||||||
|
|
||||||
|
|
||||||
def test_orphan_without_requests(client: TestClient, tu_user: User,
|
def test_orphan_without_requests(client: TestClient, tu_user: User,
|
||||||
|
|
Loading…
Add table
Reference in a new issue