From 127971a93d44ab2210fa0f240fbd2c2182b8550e Mon Sep 17 00:00:00 2001 From: James Date: Wed, 26 Feb 2025 09:48:29 +0100 Subject: [PATCH] disallow relative paths in ConanAPI constructor (#17851) --- conan/api/conan_api.py | 3 +++ test/integration/conan_api/test_profile_api.py | 11 +++++++++++ 2 files changed, 14 insertions(+) create mode 100644 test/integration/conan_api/test_profile_api.py diff --git a/conan/api/conan_api.py b/conan/api/conan_api.py index 30fe82cc217..8a518b21dc6 100644 --- a/conan/api/conan_api.py +++ b/conan/api/conan_api.py @@ -1,3 +1,4 @@ +import os import sys from conan.api.output import init_colorama @@ -35,6 +36,8 @@ def __init__(self, cache_folder=None): version = sys.version_info if version.major == 2 or version.minor < 6: raise ConanException("Conan needs Python >= 3.6") + if cache_folder is not None and not os.path.isabs(cache_folder): + raise ConanException("cache_folder has to be an absolute path") init_colorama(sys.stderr) self.workspace = WorkspaceAPI(self) diff --git a/test/integration/conan_api/test_profile_api.py b/test/integration/conan_api/test_profile_api.py new file mode 100644 index 00000000000..4f06d9d105a --- /dev/null +++ b/test/integration/conan_api/test_profile_api.py @@ -0,0 +1,11 @@ +import pytest + +from conan.api.conan_api import ConanAPI +from conan.errors import ConanException + + +def test_profile_api(): + # It must be an absolute path + with pytest.raises(ConanException) as e: + ConanAPI(cache_folder="test") + assert "cache_folder has to be an absolute path" in str(e.value)