From 227f13f8f3ed4240895d397d2614814a13f177dc Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Sun, 19 Nov 2023 02:00:23 +0100 Subject: [PATCH] Tests: Fix get_or_merge_testing_config cli tests cli.main_build.execute (et al.) call the function with **args.__dict__ with args having default values (e.g., croot=None) via parse_args. Signed-off-by: Marcel Bargull --- tests/cli/test_main_build.py | 8 ++------ tests/conftest.py | 14 ++++++++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/tests/cli/test_main_build.py b/tests/cli/test_main_build.py index e1ccd90d8c..c2dc0c44e5 100644 --- a/tests/cli/test_main_build.py +++ b/tests/cli/test_main_build.py @@ -2,7 +2,6 @@ # SPDX-License-Identifier: BSD-3-Clause import os import re -import sys from pathlib import Path import pytest @@ -104,8 +103,7 @@ def test_build_output_build_path( args = ["--output", testing_workdir] main_build.execute(args) test_path = os.path.join( - sys.prefix, - "conda-bld", + testing_config.croot, testing_config.host_subdir, "test_build_output_build_path-1.0-1.tar.bz2", ) @@ -124,9 +122,7 @@ def test_build_output_build_path_multiple_recipes( main_build.execute(args) - test_path = lambda pkg: os.path.join( - sys.prefix, "conda-bld", testing_config.host_subdir, pkg - ) + test_path = lambda pkg: os.path.join(testing_config.croot, testing_config.host_subdir, pkg) test_paths = [ test_path("test_build_output_build_path_multiple_recipes-1.0-1.tar.bz2"), ] diff --git a/tests/conftest.py b/tests/conftest.py index a0e683da8b..f347317d90 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -118,11 +118,17 @@ def default_testing_config(testing_config, monkeypatch, request): return def get_or_merge_testing_config(config, variant=None, **kwargs): - merged_kwargs = {} if not config: - merged_kwargs.update(testing_config._testing_config_kwargs) - merged_kwargs.update(kwargs) - return _get_or_merge_config(config, variant, **merged_kwargs) + # If no existing config, override kwargs that are None with testing config defaults. + # (E.g., "croot" is None if called via "(..., *args.__dict__)" in cli.main_build.) + kwargs.update( + { + key: value + for key, value in testing_config._testing_config_kwargs.items() + if kwargs.get(key) is None + } + ) + return _get_or_merge_config(config, variant, **kwargs) monkeypatch.setattr( conda_build.config,