diff --git a/tests/data/pixi_build/multi-output-pin/pixi.toml b/tests/data/pixi_build/multi-output-pin/pixi.toml new file mode 100644 index 0000000..7323b76 --- /dev/null +++ b/tests/data/pixi_build/multi-output-pin/pixi.toml @@ -0,0 +1,11 @@ +[workspace] +authors = ["Wolf Vollprecht "] +channels = ["https://prefix.dev/conda-forge"] +description = "Add a short description here" +name = "multi-output" +platforms = ["osx-arm64", "linux-64", "win-64"] +preview = ["pixi-build"] +version = "0.1.0" + +[dependencies] +multi-output-pin = { path = "./recipe" } diff --git a/tests/data/pixi_build/multi-output-pin/recipe/recipe.yaml b/tests/data/pixi_build/multi-output-pin/recipe/recipe.yaml new file mode 100644 index 0000000..bc54d08 --- /dev/null +++ b/tests/data/pixi_build/multi-output-pin/recipe/recipe.yaml @@ -0,0 +1,15 @@ +recipe: + name: multi-output-pin + version: "0.1.0" + +build: + number: 0 + +outputs: + - package: + name: libmulti-output-pin + - package: + name: multi-output-pin + requirements: + build: + - ${{ pin_subpackage('libmulti-output-pin', exact=True) }} diff --git a/tests/integration_python/test_multi_output.py b/tests/integration_python/test_multi_output.py index ac2a984..aa07624 100644 --- a/tests/integration_python/test_multi_output.py +++ b/tests/integration_python/test_multi_output.py @@ -44,6 +44,19 @@ def test_install(pixi: Path, build_data: Path, tmp_pixi_workspace: Path) -> None verify_cli_command([pixi, "install", "-v", "--locked", "--manifest-path", tmp_pixi_workspace]) +def test_install_multioutput_pin(pixi: Path, build_data: Path, tmp_pixi_workspace: Path) -> None: + project = "multi-output-pin" + test_data = build_data.joinpath(project) + test_data.joinpath("pixi.lock").unlink(missing_ok=True) + shutil.copytree(test_data, tmp_pixi_workspace, dirs_exist_ok=True) + + # Run `install` should work and create a lock file + verify_cli_command([pixi, "install", "-v", "--manifest-path", tmp_pixi_workspace]) + + # Running `install` again require a lock file update + verify_cli_command([pixi, "install", "-v", "--locked", "--manifest-path", tmp_pixi_workspace]) + + def test_available_packages(pixi: Path, build_data: Path, tmp_pixi_workspace: Path) -> None: project = "multi-output" test_data = build_data.joinpath(project)