forked from Mirror/pmbootstrap
When installing pmboostrap, all tests are installed alongside it. There doesn't seem to be any way to selectively exclude some files inside python modules, so move all test into a separate module instead. This is the typical convention in python projects. See: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/79862 Fixes: https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/issues/2541
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
# Copyright 2024 Caleb Connolly
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
import pytest
|
|
|
|
from pmb.core.pkgrepo import pkgrepo_paths, pkgrepo_default_path
|
|
|
|
|
|
@pytest.mark.parametrize("config_file", ["no-repos"], indirect=True)
|
|
def test_pkgrepo_paths_no_repos(pmb_args):
|
|
"""Test pkgrepo_paths() with no repositories. Should raise a RuntimeError."""
|
|
pkgrepo_paths.cache_disable()
|
|
with pytest.raises(RuntimeError):
|
|
paths = pkgrepo_paths()
|
|
print(paths)
|
|
|
|
|
|
def test_pkgrepo_pmaports(pmaports, monkeypatch):
|
|
"""Test pkgrepo_paths() with pmaports repository and systemd extra repo"""
|
|
|
|
# Disable results caching
|
|
pkgrepo_paths.cache_disable()
|
|
pkgrepo_default_path.cache_disable()
|
|
|
|
paths = pkgrepo_paths()
|
|
print(f"[master] pkgrepo_paths: {paths}")
|
|
assert len(paths) == 1
|
|
assert "pmaports" in paths[0].name
|
|
|
|
default_path = pkgrepo_default_path()
|
|
|
|
assert default_path.name == "pmaports"
|
|
|
|
# Test extra-repos
|
|
paths = pkgrepo_paths(with_extra_repos="disabled")
|
|
assert len(paths) == 1
|
|
|
|
paths = pkgrepo_paths(with_extra_repos="enabled")
|
|
assert len(paths) == 2
|
|
|
|
# systemd is the first path, since we want packages there to take priority
|
|
assert paths[0].name == "systemd"
|
|
# but pmaports is the default rep, since it has channels.cfg/pmaports.cfg
|
|
assert pkgrepo_default_path().name == "pmaports"
|