handle exceptions in actual_version calls

This commit is contained in:
Evgenii Alekseev 2021-03-27 17:36:54 +03:00
parent afbd956fe2
commit 46fb33bb9a
2 changed files with 30 additions and 14 deletions

View File

@ -218,6 +218,7 @@ class Package:
logger = logging.getLogger("build_details")
Task.fetch(clone_dir, self.git_url)
try:
# update pkgver first
Package._check_output("makepkg", "--nodeps", "--nobuild", exception=None, cwd=clone_dir, logger=logger)
# generate new .SRCINFO and put it to parser
@ -232,6 +233,10 @@ class Package:
raise InvalidPackageInfo(errors)
return self.full_version(srcinfo.get("epoch"), srcinfo["pkgver"], srcinfo["pkgrel"])
except Exception:
logger.exception("cannot determine version of VCS package, make sure that you have VCS tools installed")
return self.version
def is_outdated(self, remote: Package, paths: RepositoryPaths) -> bool:
"""

View File

@ -97,11 +97,22 @@ def test_actual_version_vcs(package_tpacpi_bat_git: Package, repository_paths: R
srcinfo = (resource_path_root / "models" / "package_tpacpi-bat-git_srcinfo").read_text()
mocker.patch("ahriman.models.package.Package._check_output", return_value=srcinfo)
mocker.patch("ahriman.core.build_tools.task.Task.fetch", return_value=None)
mocker.patch("ahriman.core.build_tools.task.Task.fetch")
assert package_tpacpi_bat_git.actual_version(repository_paths) == "3.1.r13.g4959b52-1"
def test_actual_version_vcs_failed(package_tpacpi_bat_git: Package, repository_paths: RepositoryPaths,
mocker: MockerFixture) -> None:
"""
must return same version in case if exception occurred
"""
mocker.patch("ahriman.models.package.Package._check_output", side_effect=Exception())
mocker.patch("ahriman.core.build_tools.task.Task.fetch")
assert package_tpacpi_bat_git.actual_version(repository_paths) == package_tpacpi_bat_git.version
def test_is_outdated_false(package_ahriman: Package, repository_paths: RepositoryPaths) -> None:
"""
must be not outdated for the same package