mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
fix(routers.html): show comaintained packages which have been flagged
Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
parent
a2dfb97b6b
commit
5fade479a3
2 changed files with 60 additions and 2 deletions
|
@ -138,9 +138,15 @@ async def index(request: Request):
|
|||
packages = db.query(models.Package).join(models.PackageBase)
|
||||
|
||||
maintained = packages.join(
|
||||
models.User, models.PackageBase.MaintainerUID == models.User.ID
|
||||
models.PackageComaintainer,
|
||||
models.PackageComaintainer.PackageBaseID == models.PackageBase.ID,
|
||||
isouter=True
|
||||
).join(
|
||||
models.User,
|
||||
or_(models.PackageBase.MaintainerUID == models.User.ID,
|
||||
models.PackageComaintainer.UsersID == models.User.ID)
|
||||
).filter(
|
||||
models.PackageBase.MaintainerUID == request.user.ID
|
||||
models.User.ID == request.user.ID
|
||||
)
|
||||
|
||||
# Packages maintained by the user that have been flagged.
|
||||
|
|
|
@ -36,6 +36,14 @@ def user():
|
|||
yield user
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def user2():
|
||||
with db.begin():
|
||||
user = db.create(User, Username="test2", Email="test2@example.org",
|
||||
Passwd="testPassword", AccountTypeID=USER_ID)
|
||||
yield user
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def redis():
|
||||
redis = redis_connection()
|
||||
|
@ -54,6 +62,17 @@ def redis():
|
|||
delete_keys()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def package(user: User) -> Package:
|
||||
now = time.utcnow()
|
||||
with db.begin():
|
||||
pkgbase = db.create(PackageBase, Name="test-pkg",
|
||||
Maintainer=user, Packager=user,
|
||||
SubmittedTS=now, ModifiedTS=now)
|
||||
pkg = db.create(Package, PackageBase=pkgbase, Name=pkgbase.Name)
|
||||
yield pkg
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def packages(user):
|
||||
""" Yield a list of num_packages Package objects maintained by user. """
|
||||
|
@ -221,3 +240,36 @@ def test_homepage_dashboard_flagged_packages(redis, packages, user):
|
|||
flagged_pkg = root.xpath('//table[@id="flagged-packages"]/tbody/tr').pop(0)
|
||||
flagged_name = flagged_pkg.xpath('./td/a').pop(0)
|
||||
assert flagged_name.text.strip() == pkg.Name
|
||||
|
||||
|
||||
def test_homepage_dashboard_flagged(user: User, user2: User, package: Package):
|
||||
pkgbase = package.PackageBase
|
||||
|
||||
now = time.utcnow()
|
||||
with db.begin():
|
||||
db.create(PackageComaintainer, User=user2,
|
||||
PackageBase=pkgbase, Priority=1)
|
||||
pkgbase.OutOfDateTS = now - 5
|
||||
pkgbase.Flagger = user
|
||||
|
||||
# Test that a comaintainer viewing the dashboard shows them their
|
||||
# flagged co-maintained packages.
|
||||
comaint_cookies = {"AURSID": user2.login(Request(), "testPassword")}
|
||||
with client as request:
|
||||
resp = request.get("/", cookies=comaint_cookies)
|
||||
assert resp.status_code == int(HTTPStatus.OK)
|
||||
|
||||
root = parse_root(resp.text)
|
||||
flagged = root.xpath('//table[@id="flagged-packages"]//tr/td/a')[0]
|
||||
assert flagged.text.strip() == package.Name
|
||||
|
||||
# Test that a maintainer viewing the dashboard shows them their
|
||||
# flagged maintained packages.
|
||||
cookies = {"AURSID": user.login(Request(), "testPassword")}
|
||||
with client as request:
|
||||
resp = request.get("/", cookies=cookies)
|
||||
assert resp.status_code == int(HTTPStatus.OK)
|
||||
|
||||
root = parse_root(resp.text)
|
||||
flagged = root.xpath('//table[@id="flagged-packages"]//tr/td/a')[0]
|
||||
assert flagged.text.strip() == package.Name
|
||||
|
|
Loading…
Add table
Reference in a new issue