Source code for ramble.test.package_manager_language

# Copyright 2022-2025 The Ramble Authors
#
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
# https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
# <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
# option. This file may not be copied, modified, or distributed
# except according to those terms.
"""Perform tests of the package manager class"""

import pytest

from ramble.pkgmankit import *  # noqa

pm_types = [
    PackageManagerBase,  # noqa: F405
]


[docs] @pytest.mark.parametrize("pm_class", pm_types) def test_pkg_man_type_features(pm_class): pm_path = "/path/to/pm" test_pm = pm_class(pm_path) assert hasattr(test_pm, "package_manager_variable") assert hasattr(test_pm, "maintainers")
[docs] def add_variable(pm_inst, pm_num=1): var_name = f"TestVariable{pm_num}" var_default = f"DefaultValue{pm_num}" var_description = f"Description{pm_num}" pm_inst.package_manager_variable(var_name, default=var_default, description=var_description) var_def = {"name": var_name, "default": var_default, "description": var_description} return var_def
[docs] @pytest.mark.parametrize("pm_class", pm_types) def test_pkg_man_variables(pm_class): test_defs = {} pm_inst = pm_class("/not/a/path") test_defs.update(add_variable(pm_inst)) var_name = test_defs["name"] assert hasattr(pm_inst, "package_manager_variables") assert var_name in pm_inst.package_manager_variables assert pm_inst.package_manager_variables[var_name].default is not None assert pm_inst.package_manager_variables[var_name].default == test_defs["default"] assert pm_inst.package_manager_variables[var_name].description is not None assert pm_inst.package_manager_variables[var_name].description == test_defs["description"]