diff --git a/aurweb/config.py b/aurweb/config.py index 6cf0b0ef..1a9b0719 100644 --- a/aurweb/config.py +++ b/aurweb/config.py @@ -6,7 +6,7 @@ from typing import Any # Publicly visible version of aurweb. This is used to display # aurweb versioning in the footer and must be maintained. # Todo: Make this dynamic/automated. -AURWEB_VERSION = "v6.0.5" +AURWEB_VERSION = "v6.0.6" _parser = None diff --git a/aurweb/packages/util.py b/aurweb/packages/util.py index 21b5fab8..0a259e1e 100644 --- a/aurweb/packages/util.py +++ b/aurweb/packages/util.py @@ -61,12 +61,16 @@ def dep_extra_desc(dep: models.PackageDependency) -> str: @register_filter("pkgname_link") def pkgname_link(pkgname: str) -> str: + record = db.query(Package).filter( + Package.Name == pkgname).exists() + if db.query(record).scalar(): + return f"/packages/{pkgname}" + official = db.query(OfficialProvider).filter( OfficialProvider.Name == pkgname).exists() if db.query(official).scalar(): base = "/".join([OFFICIAL_BASE, "packages"]) return f"{base}/?q={pkgname}" - return f"/packages/{pkgname}" @register_filter("package_link") @@ -98,17 +102,10 @@ def get_pkg_or_base( :raises HTTPException: With status code 404 if record doesn't exist :return: {Package,PackageBase} instance """ - provider = db.query(models.OfficialProvider).filter( - models.OfficialProvider.Name == name).first() - if provider: - raise HTTPException(status_code=HTTPStatus.NOT_FOUND) - with db.begin(): instance = db.query(cls).filter(cls.Name == name).first() - if not instance: raise HTTPException(status_code=HTTPStatus.NOT_FOUND) - return instance diff --git a/pyproject.toml b/pyproject.toml index ae7db89c..f2f5847d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ # [tool.poetry] name = "aurweb" -version = "v6.0.5" +version = "v6.0.6" license = "GPL-2.0-only" description = "Source code for the Arch User Repository's website" homepage = "https://aur.archlinux.org" diff --git a/test/test_packages_routes.py b/test/test_packages_routes.py index adafe1ae..ee837912 100644 --- a/test/test_packages_routes.py +++ b/test/test_packages_routes.py @@ -203,21 +203,6 @@ def test_package_not_found(client: TestClient): assert resp.status_code == int(HTTPStatus.NOT_FOUND) -def test_package_official_not_found(client: TestClient, package: Package): - """ When a Package has a matching OfficialProvider record, it is not - hosted on AUR, but in the official repositories. Getting a package - with this kind of record should return a status code 404. """ - with db.begin(): - db.create(OfficialProvider, - Name=package.Name, - Repo="core", - Provides=package.Name) - - with client as request: - resp = request.get(package_endpoint(package)) - assert resp.status_code == int(HTTPStatus.NOT_FOUND) - - def test_package(client: TestClient, package: Package): """ Test a single / packages / {name} route. """