From 2586e2d7ef237c50a2a6874289a971b76207b919 Mon Sep 17 00:00:00 2001 From: Luis Martinez Date: Mon, 13 Jun 2022 19:03:18 +0200 Subject: [PATCH] Allow ANY as list (#11449) --- conans/model/options.py | 3 ++- conans/test/unittests/model/options_test.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/conans/model/options.py b/conans/model/options.py index 5967e50b2bc..1b29d89574a 100644 --- a/conans/model/options.py +++ b/conans/model/options.py @@ -331,7 +331,8 @@ class PackageOption(object): def __init__(self, possible_values, name): self._name = name self._value = None - if possible_values == "ANY": + if possible_values == "ANY" or (isinstance(possible_values, list) and + "ANY" in possible_values): self._possible_values = "ANY" else: self._possible_values = sorted(str(v) for v in possible_values) diff --git a/conans/test/unittests/model/options_test.py b/conans/test/unittests/model/options_test.py index 7bb1a8ef080..4d5a1db40d5 100644 --- a/conans/test/unittests/model/options_test.py +++ b/conans/test/unittests/model/options_test.py @@ -376,3 +376,21 @@ def test_exceptions_repeated_value(self): def test_package_with_spaces(self): self.assertEqual(OptionsValues([('pck2:opt', 50), ]).dumps(), OptionsValues([('pck2 :opt', 50), ]).dumps()) + + +def test_validate_any_as_list(): + package_options = PackageOptions.loads("""{ + path: ["ANY", "kk"]}""") + values = PackageOptionValues() + values.add_option("path", "FOO") + package_options.values = values + sut = Options(package_options) + assert sut.path == "FOO" + + package_options = PackageOptions.loads("""{ + path: "ANY"}""") + values = PackageOptionValues() + values.add_option("path", "WHATEVER") + package_options.values = values + sut = Options(package_options) + assert sut.path == "WHATEVER"