Пример #1
0
def test_filepath_empty(
        package_description_ahriman: PackageDescription) -> None:
    """
    must return None for missing filename
    """
    package_description_ahriman.filename = None
    assert package_description_ahriman.filepath is None
Пример #2
0
def test_from_json_with_unknown_fields(
        package_description_ahriman: PackageDescription) -> None:
    """
    must construct description from json object containing unknown fields
    """
    dump = asdict(package_description_ahriman)
    dump.update(unknown_field="value")
    assert PackageDescription.from_json(dump) == package_description_ahriman
Пример #3
0
def test_from_package(package_description_ahriman: PackageDescription,
                      pyalpm_package_description_ahriman: MagicMock) -> None:
    """
    must construct description from package object
    """
    package_description = PackageDescription.from_package(
        pyalpm_package_description_ahriman,
        package_description_ahriman.filepath)
    assert package_description_ahriman == package_description
Пример #4
0
 def from_aur(cls: Type[Package], name: str, aur_url: str) -> Package:
     """
     construct package properties from AUR page
     :param name: package name (either base or normal name)
     :param aur_url: AUR root url
     :return: package properties
     """
     package = aur.info(name)
     return cls(package.package_base, package.version, aur_url,
                {package.name: PackageDescription()})
Пример #5
0
def package_description_python2_schedule() -> PackageDescription:
    return PackageDescription(
        architecture="x86_64",
        archive_size=4202,
        build_date=422,
        depends=["python2"],
        description="Python job scheduling for humans.",
        filename="python2-schedule-1.0.0-2-any.pkg.tar.zst",
        groups=[],
        installed_size=4200002,
        licenses=["MIT"],
        url="https://github.com/dbader/schedule")
Пример #6
0
def package_description_ahriman() -> PackageDescription:
    return PackageDescription(
        architecture="x86_64",
        archive_size=4200,
        build_date=42,
        depends=["devtools", "git", "pyalpm", "python-aur", "python-srcinfo"],
        description="ArcHlinux ReposItory MANager",
        filename="ahriman-0.12.1-1-any.pkg.tar.zst",
        groups=[],
        installed_size=4200000,
        licenses=["GPL3"],
        url="https://github.com/arcan1s/ahriman")
Пример #7
0
 def from_archive(cls: Type[Package], path: Path, pacman: Pacman,
                  aur_url: str) -> Package:
     """
     construct package properties from package archive
     :param path: path to package archive
     :param pacman: alpm wrapper instance
     :param aur_url: AUR root url
     :return: package properties
     """
     package = pacman.handle.load_pkg(str(path))
     return cls(
         package.base, package.version, aur_url,
         {package.name: PackageDescription.from_package(package, path)})
Пример #8
0
 def from_json(cls: Type[Package], dump: Dict[str, Any]) -> Package:
     """
     construct package properties from json dump
     :param dump: json dump body
     :return: package properties
     """
     packages = {
         key: PackageDescription.from_json(value)
         for key, value in dump.get("packages", {}).items()
     }
     return Package(base=dump["base"],
                    version=dump["version"],
                    aur_url=dump["aur_url"],
                    packages=packages)
Пример #9
0
    def from_build(cls: Type[Package], path: Path, aur_url: str) -> Package:
        """
        construct package properties from sources directory
        :param path: path to package sources directory
        :param aur_url: AUR root url
        :return: package properties
        """
        srcinfo, errors = parse_srcinfo((path / ".SRCINFO").read_text())
        if errors:
            raise InvalidPackageInfo(errors)
        packages = {key: PackageDescription() for key in srcinfo["packages"]}
        version = cls.full_version(srcinfo.get("epoch"), srcinfo["pkgver"],
                                   srcinfo["pkgrel"])

        return cls(srcinfo["pkgbase"], version, aur_url, packages)
Пример #10
0
def package_tpacpi_bat_git() -> Package:
    return Package(base="tpacpi-bat-git",
                   version="3.1.r12.g4959b52-1",
                   aur_url="https://aur.archlinux.org",
                   packages={"tpacpi-bat-git": PackageDescription()})
Пример #11
0
def test_from_json(package_description_ahriman: PackageDescription) -> None:
    """
    must construct description from json object
    """
    assert PackageDescription.from_json(
        asdict(package_description_ahriman)) == package_description_ahriman