Blame tests/config_settings_test_backend.py

156e2fc
"""
156e2fc
This is a test backend for pyproject-rpm-macros' integration tests
156e2fc
It is not compliant with PEP 517 and omits some required hooks.
156e2fc
"""
156e2fc
156e2fc
from flit_core import buildapi
d14a2db
from packaging.version import parse
d14a2db
from pip import __version__ as pip_version
156e2fc
d14a2db
EXPECTED_CONFIG_SETTINGS = [{"abc": "123", "xyz": "456", "--option-with-dashes": ["1", "2"]}]
d14a2db
# Older pip did not accept multiple values,
d14a2db
# but we might backport that later,
d14a2db
# hence we accept it both ways with older pips
d14a2db
if parse(pip_version) < parse("23.1"):
d14a2db
    EXPECTED_CONFIG_SETTINGS.append(
d14a2db
        EXPECTED_CONFIG_SETTINGS[0] | {"--option-with-dashes": "2"}
d14a2db
    )
156e2fc
156e2fc
156e2fc
def _verify_config_settings(config_settings):
156e2fc
    print(f"config_settings={config_settings}")
d14a2db
    if config_settings not in EXPECTED_CONFIG_SETTINGS:
156e2fc
        raise ValueError(
156e2fc
            f"{config_settings!r} does not match expected {EXPECTED_CONFIG_SETTINGS!r}"
156e2fc
        )
156e2fc
156e2fc
156e2fc
def build_wheel(wheel_directory, config_settings=None, metadata_directory=None):
156e2fc
    _verify_config_settings(config_settings)
156e2fc
    return buildapi.build_wheel(wheel_directory, None, metadata_directory)
156e2fc
156e2fc
156e2fc
def get_requires_for_build_wheel(config_settings=None):
156e2fc
    _verify_config_settings(config_settings)
156e2fc
    return buildapi.get_requires_for_build_wheel(None)
156e2fc
156e2fc
156e2fc
def prepare_metadata_for_build_wheel(metadata_directory, config_settings=None):
156e2fc
    _verify_config_settings(config_settings)
156e2fc
    return buildapi.prepare_metadata_for_build_wheel(metadata_directory, None)