feat: Add "Requests" filter option for package name

- Add package name textbox for filtering requests (with auto-suggest)
- Make "x pending requests" a link for TU/Dev on the package details page

Signed-off-by: moson-mo <mo-son@mailbox.org>
This commit is contained in:
moson-mo 2023-05-08 18:22:16 +02:00
parent acdb2864de
commit f24fae0ce6
No known key found for this signature in database
GPG key ID: 4A4760AB4EE15296
7 changed files with 109 additions and 8 deletions

View file

@ -555,6 +555,16 @@ def test_package_authenticated(client: TestClient, user: User, package: Package)
for expected_text in expected:
assert expected_text in resp.text
# make sure we don't have these. Only for Maintainer/TUs/Devs
not_expected = [
"Disown Package",
"View Requests",
"Delete Package",
"Merge Package",
]
for unexpected_text in not_expected:
assert unexpected_text not in resp.text
# When no requests are up, make sure we don't see the display for them.
root = parse_root(resp.text)
selector = '//div[@id="actionlist"]/ul/li/span[@class="flagged"]'
@ -586,8 +596,19 @@ def test_package_authenticated_maintainer(
for expected_text in expected:
assert expected_text in resp.text
# make sure we don't have these. Only for TUs/Devs
not_expected = [
"1 pending request",
"Delete Package",
"Merge Package",
]
for unexpected_text in not_expected:
assert unexpected_text not in resp.text
def test_package_authenticated_tu(client: TestClient, tu_user: User, package: Package):
def test_package_authenticated_tu(
client: TestClient, tu_user: User, package: Package, pkgreq: PackageRequest
):
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
request.cookies = cookies
@ -603,6 +624,7 @@ def test_package_authenticated_tu(client: TestClient, tu_user: User, package: Pa
"Vote for this package",
"Enable notifications",
"Manage Co-Maintainers",
"1 pending request",
"Submit Request",
"Delete Package",
"Merge Package",

View file

@ -912,6 +912,44 @@ def test_requests_for_maintainer_requests(
assert len(rows) == 2
def test_requests_with_package_name_filter(
client: TestClient,
tu_user: User,
user2: User,
packages: list[Package],
requests: list[PackageRequest],
):
# test as TU
cookies = {"AURSID": tu_user.login(Request(), "testPassword")}
with client as request:
request.cookies = cookies
resp = request.get(
"/requests",
params={"filter_pkg_name": packages[0].PackageBase.Name},
)
assert resp.status_code == int(HTTPStatus.OK)
root = parse_root(resp.text)
rows = root.xpath('//table[@class="results"]/tbody/tr')
# We only expect 1 request for our first package
assert len(rows) == 1
# test as regular user, not related to our package
cookies = {"AURSID": user2.login(Request(), "testPassword")}
with client as request:
request.cookies = cookies
resp = request.get(
"/requests",
params={"filter_pkg_name": packages[0].PackageBase.Name},
)
assert resp.status_code == int(HTTPStatus.OK)
root = parse_root(resp.text)
rows = root.xpath('//table[@class="results"]/tbody/tr')
# We don't expect to get any requests
assert len(rows) == 0
def test_requests_by_deleted_users(
client: TestClient, user: User, tu_user: User, pkgreq: PackageRequest
):