From a4022503671d0943ce974e190325c8bc152b974d Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Mon, 6 May 2024 10:47:03 +0200 Subject: [PATCH] test: test_package for .tar.bz2 and .conda Signed-off-by: Marcel Bargull --- test/test_utils.py | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/test/test_utils.py b/test/test_utils.py index 12524ee3d8..bfde164737 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -1,4 +1,5 @@ import os +import re import sys import subprocess as sp import pytest @@ -10,9 +11,10 @@ import tarfile import logging import shutil +from pathlib import Path from textwrap import dedent -from conda_build import metadata +from conda_build import api, metadata from bioconda_utils import __version__ from bioconda_utils import utils @@ -1246,3 +1248,45 @@ def test_skip_unsatisfiable_pin_compatible(config_fixture): ) assert build_result assert len(utils.load_all_meta(r.recipe_dirs["two"])) == 1 + + +@pytest.mark.parametrize('mulled_test', PARAMS, ids=IDS) +@pytest.mark.parametrize('pkg_format', ["1", "2"]) +def test_pkg_test_conda_package_format(mulled_test, pkg_format, monkeypatch, tmp_path): + """ + Running a mulled-build test with .tar.bz2/.conda package formats + """ + condarc = Path(tmp_path, ".condarc") + condarc.write_text(f"conda_build:\n pkg_format: {pkg_format}\n") + monkeypatch.setenv("CONDARC", condarc) + docker_builder = None + if mulled_test: + # Override conda_build.pkg_format in build_script_template. + # ("1" is .tar.bz2 and "2" is .conda) + build_script_template = re.sub( + "^(conda config.*)", + f"conda config --set conda_build.pkg_format {pkg_format}\n\\1", + docker_utils.BUILD_SCRIPT_TEMPLATE, + count=1, + flags=re.M, + ) + docker_builder = docker_utils.RecipeBuilder( + use_host_conda_bld=True, + docker_base_image=DOCKER_BASE_IMAGE, + build_script_template=build_script_template, + ) + recipe = recipes_fixture.recipe_dirs['one'] + build_result = build.build_recipes( + recipes_fixture.basedir, + config_fixture, + (recipe,), + docker_builder=docker_builder, + mulled_test=mulled_test, + ) + assert build_result + + config = load_conda_build_config() + config.conda_package_format = pkg_format + for pkg in api.get_output_file_paths(recipe, config=config, bypass_env_check=True): + assert pkg.endswith({"1": ".tar.bz2", "2": ".conda"}[pkg_format]) + assert os.path.exists(pkg)