diff --git a/conan/cli/args.py b/conan/cli/args.py index bd1c8dfc858..93ef7ba5ccf 100644 --- a/conan/cli/args.py +++ b/conan/cli/args.py @@ -102,7 +102,7 @@ def add_reference_args(parser): parser.add_argument("--user", action=OnceArgument, help='Provide a user if not specified in conanfile') parser.add_argument("--channel", action=OnceArgument, - help='Provide a channel if not specified in conanfil') + help='Provide a channel if not specified in conanfile') def common_graph_args(subparser): diff --git a/conan/cli/commands/build.py b/conan/cli/commands/build.py index c28f376a45b..e8d3f55060c 100644 --- a/conan/cli/commands/build.py +++ b/conan/cli/commands/build.py @@ -12,7 +12,7 @@ @conan_command(group='Creator') def build(conan_api, parser, *args): """ - Install dependencies and calls the build() method + Install dependencies and calls the build() method. """ parser.add_argument("path", nargs="?", help="Path to a folder containing a recipe (conanfile.py " diff --git a/conan/cli/commands/cache.py b/conan/cli/commands/cache.py index 6fd0cd69a7c..fa9e23b6cda 100644 --- a/conan/cli/commands/cache.py +++ b/conan/cli/commands/cache.py @@ -9,7 +9,8 @@ @conan_command(group="Consumer") def cache(conan_api: ConanAPI, parser, *args): - """Performs file operations in the local cache (of recipes and packages) + """ + Perform file operations in the local cache (of recipes and/or packages). """ pass @@ -17,11 +18,11 @@ def cache(conan_api: ConanAPI, parser, *args): @conan_subcommand(formatters={"text": default_text_formatter}) def cache_path(conan_api: ConanAPI, parser, subparser, *args): """ - Shows the path in the Conan cache af a given reference + Show the path to the Conan cache for a given reference. """ subparser.add_argument("reference", help="Recipe reference or Package reference") subparser.add_argument("--folder", choices=['export_source', 'source', 'build'], - help="Show the path to the specified element. The 'build'" + help="Path to show. The 'build'" " requires a package reference. If not specified it shows 'exports'" " path ") @@ -54,22 +55,23 @@ def cache_path(conan_api: ConanAPI, parser, subparser, *args): @conan_subcommand() def cache_clean(conan_api: ConanAPI, parser, subparser, *args): """ - Shows the path in the Conan cache af a given reference + Remove non-critical folders from the cache, like source, build and/or download + (.tgz store) ones. """ - subparser.add_argument("pattern", help="selection pattern for references to clean") + subparser.add_argument("pattern", help="Selection pattern for references to clean") subparser.add_argument("-s", "--source", action='store_true', default=False, help="Clean source folders") subparser.add_argument("-b", "--build", action='store_true', default=False, - help="Clean source folders") + help="Clean build folders") subparser.add_argument("-d", "--download", action='store_true', default=False, help="Clean download folders") subparser.add_argument('-p', '--package-query', action=OnceArgument, - help="Remove all packages (empty) or provide a query: " + help="Remove only the packages matching a specific query, e.g., " "os=Windows AND (arch=x86 OR compiler=gcc)") args = parser.parse_args(*args) if not args.source and not args.build and not args.download: - raise ConanException("Define at least one argument from --source, --build, --download") + raise ConanException("Define at least one argument among [--source, --build, --download]") ref_pattern = ListPattern(args.pattern, rrev="*", package_id="*", prev="*") package_list = conan_api.list.select(ref_pattern, package_query=args.package_query) diff --git a/conan/cli/commands/config.py b/conan/cli/commands/config.py index b78f0b47a02..3424be78903 100644 --- a/conan/cli/commands/config.py +++ b/conan/cli/commands/config.py @@ -10,14 +10,15 @@ @conan_command(group='Consumer') def config(conan_api, parser, *args): """ - Manages the Conan configuration in the current Conan home. + Manage the Conan configuration in the Conan home. """ @conan_subcommand() def config_install(conan_api, parser, subparser, *args): """ - Installs the configuration (remotes, profiles, conf), from git, http or folder + Install the configuration (remotes, profiles, conf), from git, http or a folder, into the + Conan home folder. """ subparser.add_argument("item", help="git repository, local file or folder or zip file (local or " @@ -50,7 +51,7 @@ def list_text_formatter(confs): @conan_subcommand(formatters={"text": default_text_formatter}) def config_home(conan_api, parser, subparser, *args): """ - Gets the Conan home folder + Show the Conan home folder. """ return conan_api.config.home() @@ -58,6 +59,6 @@ def config_home(conan_api, parser, subparser, *args): @conan_subcommand(formatters={"text": list_text_formatter, "json": default_json_formatter}) def config_list(conan_api, parser, subparser, *args): """ - Prints all the Conan available configurations: core and tools. + Show all the Conan available configurations: core and tools. """ return BUILT_IN_CONFS diff --git a/conan/cli/commands/create.py b/conan/cli/commands/create.py index ebad8477822..eba37c257c2 100644 --- a/conan/cli/commands/create.py +++ b/conan/cli/commands/create.py @@ -23,13 +23,13 @@ def json_create(deps_graph): @conan_command(group="Creator", formatters={"json": json_create}) def create(conan_api, parser, *args): """ - Create a package + Create a package. """ common_args_export(parser) add_lockfile_args(parser) add_common_install_arguments(parser) parser.add_argument("--build-require", action='store_true', default=False, - help='The provided reference is a build-require') + help='Whether the provided reference is a build-require') parser.add_argument("-tf", "--test-folder", action=OnceArgument, help='Alternative test folder name. By default it is "test_package". ' 'Use "" to skip the test stage') diff --git a/conan/cli/commands/editable.py b/conan/cli/commands/editable.py index 12ea6a27af9..9bc38137baf 100644 --- a/conan/cli/commands/editable.py +++ b/conan/cli/commands/editable.py @@ -9,7 +9,7 @@ @conan_command(group="Creator") def editable(conan_api, parser, *args): """ - Allows working with a package in user folder + Allows working with a package in user folder. """ @@ -17,7 +17,7 @@ def editable(conan_api, parser, *args): def editable_add(conan_api, parser, subparser, *args): """ Define the given location as the package , so when this - package is required, it is used from this location instead of from the cache + package is required, it is used from this location instead of from the cache. """ subparser.add_argument('path', help='Path to the package folder in the user workspace') add_reference_args(subparser) @@ -69,7 +69,7 @@ def print_editables_text(data): @conan_subcommand(formatters={"text": print_editables_text, "json": print_editables_json}) def editable_list(conan_api, parser, subparser, *args): """ - List packages in editable mode + List all the packages in editable mode. """ editables = conan_api.local.editable_list() return editables diff --git a/conan/cli/commands/export.py b/conan/cli/commands/export.py index 1c555c0b022..f066b331c58 100644 --- a/conan/cli/commands/export.py +++ b/conan/cli/commands/export.py @@ -18,7 +18,7 @@ def json_export(ref): @conan_command(group="Creator", formatters={"json": json_export}) def export(conan_api, parser, *args): """ - Export recipe to the Conan package cache + Export recipe to the Conan package cache. """ common_args_export(parser) group = parser.add_mutually_exclusive_group() @@ -33,7 +33,7 @@ def export(conan_api, parser, *args): parser.add_argument("--lockfile-partial", action="store_true", help="Do not raise an error if some dependency is not found in lockfile") parser.add_argument("--build-require", action='store_true', default=False, - help='The provided reference is a build-require') + help='Whether the provided reference is a build-require') args = parser.parse_args(*args) cwd = os.getcwd() diff --git a/conan/cli/commands/export_pkg.py b/conan/cli/commands/export_pkg.py index 297775589c0..239854e0014 100644 --- a/conan/cli/commands/export_pkg.py +++ b/conan/cli/commands/export_pkg.py @@ -17,13 +17,13 @@ def json_export_pkg(info): @conan_command(group="Creator", formatters={"json": json_export_pkg}) def export_pkg(conan_api, parser, *args): """ - Create a package directly from pre-compiled binaries + Create a package directly from pre-compiled binaries. """ parser.add_argument("path", help="Path to a folder containing a recipe (conanfile.py)") parser.add_argument("-of", "--output-folder", help='The root output folder for generated and build files') parser.add_argument("--build-require", action='store_true', default=False, - help='The provided reference is a build-require') + help='Whether the provided reference is a build-require') parser.add_argument("-tf", "--test-folder", action=OnceArgument, help='Alternative test folder name. By default it is "test_package". ' 'Use "" to skip the test stage') diff --git a/conan/cli/commands/graph.py b/conan/cli/commands/graph.py index 5406fce410e..bbbe6367aeb 100644 --- a/conan/cli/commands/graph.py +++ b/conan/cli/commands/graph.py @@ -16,7 +16,7 @@ @conan_command(group="Consumer") def graph(conan_api, parser, *args): """ - Computes a dependency graph, without installing or building the binaries + Compute a dependency graph, without installing or building the binaries. """ @@ -36,7 +36,7 @@ def json_build_order(build_order): @conan_subcommand(formatters={"text": cli_build_order, "json": json_build_order}) def graph_build_order(conan_api, parser, subparser, *args): """ - Computes the build order of a dependency graph + Compute the build order of a dependency graph. """ common_graph_args(subparser) args = parser.parse_args(*args) @@ -86,7 +86,7 @@ def graph_build_order(conan_api, parser, subparser, *args): @conan_subcommand(formatters={"text": cli_build_order, "json": json_build_order}) def graph_build_order_merge(conan_api, parser, subparser, *args): """ - Merges more than 1 build-order file + Merge more than 1 build-order file. """ subparser.add_argument("--file", nargs="?", action="append", help="Files to be merged") args = parser.parse_args(*args) @@ -107,10 +107,11 @@ def graph_build_order_merge(conan_api, parser, subparser, *args): "dot": format_graph_dot}) def graph_info(conan_api, parser, subparser, *args): """ - Computes the dependency graph and shows information about it + Compute the dependency graph and shows information about it. """ common_graph_args(subparser) - subparser.add_argument("--check-updates", default=False, action="store_true") + subparser.add_argument("--check-updates", default=False, action="store_true", + help="Check if there are recipe updates") subparser.add_argument("--filter", action="append", help="Show only the specified fields") subparser.add_argument("--package-filter", action="append", diff --git a/conan/cli/commands/inspect.py b/conan/cli/commands/inspect.py index f8e98c5c5ad..cb417218771 100644 --- a/conan/cli/commands/inspect.py +++ b/conan/cli/commands/inspect.py @@ -21,7 +21,7 @@ def inspect_text_formatter(data): @conan_command(group="Consumer", formatters={"text": inspect_text_formatter, "json": default_json_formatter}) def inspect(conan_api, parser, *args): """ - Inspect a conanfile.py to return the public fields + Inspect a conanfile.py to return the public fields. """ parser.add_argument("path", help="Path to a folder containing a recipe (conanfile.py)") diff --git a/conan/cli/commands/install.py b/conan/cli/commands/install.py index 17c467ffb85..7dfde646285 100644 --- a/conan/cli/commands/install.py +++ b/conan/cli/commands/install.py @@ -18,7 +18,7 @@ def json_install(info): @conan_command(group="Consumer", formatters={"json": json_install}) def install(conan_api, parser, *args): """ - Installs the requirements specified in a recipe (conanfile.py or conanfile.txt). + Install the requirements specified in a recipe (conanfile.py or conanfile.txt). It can also be used to install a concrete package specifying a reference. If any requirement is not found in the local cache, it will diff --git a/conan/cli/commands/list.py b/conan/cli/commands/list.py index 2a57ec2f8b0..9114e4b12f4 100644 --- a/conan/cli/commands/list.py +++ b/conan/cli/commands/list.py @@ -91,16 +91,16 @@ def print_list_json(data): "html": list_packages_html}) def list(conan_api: ConanAPI, parser, *args): """ - Lists existing recipes, revisions or packages in the cache or in remotes + List existing recipes, revisions, or packages in the cache (by default) or the remotes. """ parser.add_argument('reference', help="Recipe reference or package reference. " "Both can contain * as wildcard at any reference field. " "If revision is not specified, it is assumed latest one.") parser.add_argument('-p', '--package-query', default=None, action=OnceArgument, - help="Only list packages matching a specific query. e.g: os=Windows AND " + help="List only the packages matching a specific query, e.g, os=Windows AND " "(arch=x86 OR compiler=gcc)") parser.add_argument("-r", "--remote", default=None, action="append", - help="Remote names. Accepts wildcards") + help="Remote names. Accepts wildcards ('*' means all the remotes available)") parser.add_argument("-c", "--cache", action='store_true', help="Search in the local cache") args = parser.parse_args(*args) diff --git a/conan/cli/commands/lock.py b/conan/cli/commands/lock.py index 9093ae1acb1..e137f350b5c 100644 --- a/conan/cli/commands/lock.py +++ b/conan/cli/commands/lock.py @@ -13,14 +13,14 @@ @conan_command(group="Consumer") def lock(conan_api, parser, *args): """ - Create or manages lockfiles + Create or manages lockfiles. """ @conan_subcommand() def lock_create(conan_api, parser, subparser, *args): """ - Create a lockfile from a conanfile or a reference + Create a lockfile from a conanfile or a reference. """ common_graph_args(subparser) args = parser.parse_args(*args) @@ -63,7 +63,7 @@ def lock_create(conan_api, parser, subparser, *args): @conan_subcommand() def lock_merge(conan_api, parser, subparser, *args): """ - Merge 2 or more lockfiles + Merge 2 or more lockfiles. """ subparser.add_argument('--lockfile', action="append", help='Path to lockfile to be merged') subparser.add_argument("--lockfile-out", action=OnceArgument, default=LOCKFILE, @@ -88,7 +88,7 @@ def lock_add(conan_api, parser, subparser, *args): Add requires, build-requires or python-requires to existing or new lockfile. Resulting lockfile will be ordereded, newer versions/revisions first. References can be with our without revisions like "--requires=pkg/version", but they - must be package references, including at least the version, they cannot contain a version range + must be package references, including at least the version, they cannot contain a version range. """ subparser.add_argument('--requires', action="append", help='Add references to lockfile.') subparser.add_argument('--build-requires', action="append", diff --git a/conan/cli/commands/new.py b/conan/cli/commands/new.py index c4465d990e7..1d2d11e5132 100644 --- a/conan/cli/commands/new.py +++ b/conan/cli/commands/new.py @@ -24,7 +24,7 @@ def new(conan_api, parser, *args): "as your template, or a path relative to your conan home folder." ) parser.add_argument("-d", "--define", action="append", - help="Define a template argument as key=value") + help="Define a template argument as key=value, e.g., -d name=mypkg") parser.add_argument("-f", "--force", action='store_true', help="Overwrite file if it already exists") args = parser.parse_args(*args) diff --git a/conan/cli/commands/profile.py b/conan/cli/commands/profile.py index 5fe01842863..bfe9dff0428 100644 --- a/conan/cli/commands/profile.py +++ b/conan/cli/commands/profile.py @@ -30,7 +30,7 @@ def detected_profile_cli_output(detect_profile): @conan_subcommand(formatters={"text": print_profiles}) def profile_show(conan_api, parser, subparser, *args): """ - Show profiles + Show profiles. """ add_profiles_args(subparser) args = parser.parse_args(*args) @@ -41,7 +41,7 @@ def profile_show(conan_api, parser, subparser, *args): @conan_subcommand(formatters={"text": default_text_formatter}) def profile_path(conan_api, parser, subparser, *args): """ - Show profile path location + Show profile path location. """ add_profiles_args(subparser) subparser.add_argument("name", help="Profile name") @@ -52,7 +52,7 @@ def profile_path(conan_api, parser, subparser, *args): @conan_subcommand() def profile_detect(conan_api, parser, subparser, *args): """ - Detect default profile + Detect default profile. """ subparser.add_argument("--name", help="Profile name, 'default' if not specified") subparser.add_argument("-f", "--force", action='store_true', help="Overwrite if exists") @@ -76,7 +76,7 @@ def profile_detect(conan_api, parser, subparser, *args): @conan_subcommand(formatters={"text": profiles_list_cli_output, "json": default_json_formatter}) def profile_list(conan_api, parser, subparser, *args): """ - List all profiles in the cache + List all profiles in the cache. """ result = conan_api.profiles.list() return result @@ -85,5 +85,5 @@ def profile_list(conan_api, parser, subparser, *args): @conan_command(group="Consumer") def profile(conan_api, parser, *args): """ - Manages profiles + Manage profiles. """ diff --git a/conan/cli/commands/remote.py b/conan/cli/commands/remote.py index a9aa651a563..168d45665af 100644 --- a/conan/cli/commands/remote.py +++ b/conan/cli/commands/remote.py @@ -62,7 +62,7 @@ def remote_list(conan_api: ConanAPI, parser, subparser, *args): @conan_subcommand() def remote_add(conan_api, parser, subparser, *args): """ - Add a remote + Add a remote. """ subparser.add_argument("name", help="Name of the remote to add") subparser.add_argument("url", help="Url of the remote") @@ -83,7 +83,7 @@ def remote_add(conan_api, parser, subparser, *args): @conan_subcommand() def remote_remove(conan_api, parser, subparser, *args): """ - Remove a remote + Remove a remote. """ subparser.add_argument("remote", help="Name of the remote to remove. " "Accepts 'fnmatch' style wildcards.") # to discuss @@ -94,7 +94,7 @@ def remote_remove(conan_api, parser, subparser, *args): @conan_subcommand() def remote_update(conan_api, parser, subparser, *args): """ - Update the remote + Update the remote. """ subparser.add_argument("remote", help="Name of the remote to update") subparser.add_argument("--url", action=OnceArgument, help="New url for the remote") @@ -121,7 +121,7 @@ def remote_update(conan_api, parser, subparser, *args): @conan_subcommand() def remote_rename(conan_api, parser, subparser, *args): """ - Rename a remote + Rename a remote. """ subparser.add_argument("remote", help="Current name of the remote") subparser.add_argument("new_name", help="New name for the remote") @@ -133,7 +133,7 @@ def remote_rename(conan_api, parser, subparser, *args): @conan_subcommand() def remote_enable(conan_api, parser, subparser, *args): """ - Enable all the remotes matching a pattern + Enable all the remotes matching a pattern. """ subparser.add_argument("remote", help="Pattern of the remote/s to enable. " "The pattern uses 'fnmatch' style wildcards.") @@ -144,7 +144,7 @@ def remote_enable(conan_api, parser, subparser, *args): @conan_subcommand() def remote_disable(conan_api, parser, subparser, *args): """ - Disable all the remotes matching a pattern + Disable all the remotes matching a pattern. """ subparser.add_argument("remote", help="Pattern of the remote/s to disable. " "The pattern uses 'fnmatch' style wildcards.") @@ -156,7 +156,9 @@ def remote_disable(conan_api, parser, subparser, *args): @conan_subcommand(formatters={"text": print_remote_user_list, "json": output_remotes_json}) def remote_list_users(conan_api, parser, subparser, *args): - """List the users logged into the remotes""" + """ + List the users logged into the remotes. + """ remotes = conan_api.remotes.list() ret = OrderedDict() if not remotes: @@ -169,7 +171,9 @@ def remote_list_users(conan_api, parser, subparser, *args): @conan_subcommand(formatters={"text": print_remote_user_set, "json": output_remotes_json}) def remote_login(conan_api, parser, subparser, *args): - """Login into the specified remotes""" + """ + Login into the specified remotes. + """ subparser.add_argument("remote", help="Pattern or name of the remote to login into. " "The pattern uses 'fnmatch' style wildcards.") subparser.add_argument("username", help='Username') @@ -200,7 +204,9 @@ def remote_login(conan_api, parser, subparser, *args): @conan_subcommand(formatters={"text": print_remote_user_set, "json": output_remotes_json}) def remote_set_user(conan_api, parser, subparser, *args): - """Associates a username with a remote without performing the authentication""" + """ + Associate a username with a remote without performing the authentication. + """ subparser.add_argument("remote", help="Pattern or name of the remote. " "The pattern uses 'fnmatch' style wildcards.") subparser.add_argument("username", help='Username') @@ -222,7 +228,9 @@ def remote_set_user(conan_api, parser, subparser, *args): @conan_subcommand(formatters={"text": print_remote_user_set, "json": output_remotes_json}) def remote_logout(conan_api, parser, subparser, *args): - """Clear the existing credentials for the specified remotes""" + """ + Clear the existing credentials for the specified remotes. + """ subparser.add_argument("remote", help="Pattern or name of the remote to logout. " "The pattern uses 'fnmatch' style wildcards.") args = parser.parse_args(*args) @@ -242,5 +250,5 @@ def remote_logout(conan_api, parser, subparser, *args): @conan_command(group="Consumer") def remote(conan_api, parser, *args): """ - Manages the remote list and the users authenticated on them. + Manage the remote list and the users authenticated on them. """ diff --git a/conan/cli/commands/remove.py b/conan/cli/commands/remove.py index 959abefdbb4..da4a7411b27 100644 --- a/conan/cli/commands/remove.py +++ b/conan/cli/commands/remove.py @@ -7,7 +7,7 @@ @conan_command(group="Consumer") def remove(conan_api: ConanAPI, parser, *args): """ - Removes recipes or packages from local cache or a remote. + Remove recipes or packages from local cache or a remote. - If no remote is specified (-r), the removal will be done in the local conan cache. - If a recipe reference is specified, it will remove the recipe and all the packages, unless -p diff --git a/conan/cli/commands/search.py b/conan/cli/commands/search.py index 648e51b4880..75fb4cb32a8 100644 --- a/conan/cli/commands/search.py +++ b/conan/cli/commands/search.py @@ -12,7 +12,7 @@ "json": print_list_json}) def search(conan_api: ConanAPI, parser, *args): """ - Searches for package recipes in a remote or remotes + Search for package recipes in all the remotes (by default), or a remote. """ parser.add_argument('reference', help="Recipe reference to search for." "It can contain * as wildcard at any reference field.") diff --git a/conan/cli/commands/source.py b/conan/cli/commands/source.py index 75f66e728a9..206d19857ed 100644 --- a/conan/cli/commands/source.py +++ b/conan/cli/commands/source.py @@ -12,7 +12,7 @@ @conan_command(group="Creator") def source(conan_api, parser, *args): """ - Calls the source() method + Call the source() method. """ parser.add_argument("path", nargs="?", help="Path to a folder containing a recipe (conanfile.py " diff --git a/conan/cli/commands/test.py b/conan/cli/commands/test.py index dd4bfc103ec..b07cba3b435 100644 --- a/conan/cli/commands/test.py +++ b/conan/cli/commands/test.py @@ -12,7 +12,7 @@ @conan_command(group="Creator") def test(conan_api, parser, *args): """ - Test a package from a test_package folder + Test a package from a test_package folder. """ parser.add_argument("path", action=OnceArgument, help="Path to a test_package folder containing a conanfile.py") diff --git a/conan/cli/commands/upload.py b/conan/cli/commands/upload.py index f27b86e2fb8..28c0296be92 100644 --- a/conan/cli/commands/upload.py +++ b/conan/cli/commands/upload.py @@ -8,7 +8,7 @@ @conan_command(group="Creator") def upload(conan_api: ConanAPI, parser, *args): """ - Uploads packages to a remote. + Upload packages to a remote. By default, all the matching references are uploaded (all revisions). By default, if a recipe reference is specified, it will upload all the revisions for all the diff --git a/conans/test/integration/command/help_test.py b/conans/test/integration/command/help_test.py index b33e98f183b..3f23cd167e5 100644 --- a/conans/test/integration/command/help_test.py +++ b/conans/test/integration/command/help_test.py @@ -35,6 +35,6 @@ def test_help_subcommand(self): c = TestClient() c.run("cache -h") # When listing subcommands, but line truncated - assert "Performs file operations in the local cache (of recipes and packages)" in c.out + assert "Perform file operations in the local cache (of recipes and/or packages)" in c.out c.run("cache path -h") - assert "Shows the path in the Conan cache af a given reference" in c.out + assert "Show the path to the Conan cache for a given reference" in c.out diff --git a/conans/test/integration/command_v2/help_test.py b/conans/test/integration/command_v2/help_test.py index 987fa2128e2..1696466005f 100644 --- a/conans/test/integration/command_v2/help_test.py +++ b/conans/test/integration/command_v2/help_test.py @@ -11,4 +11,4 @@ def test_help_command(): assert "Recipe reference to search for." in client.out client.run("list --help") - assert "Lists existing recipes, revisions or packages in the cache or" in client.out + assert "List existing recipes, revisions, or packages in the cache (by default) or the remotes." in client.out diff --git a/conans/test/integration/command_v2/test_cache_clean.py b/conans/test/integration/command_v2/test_cache_clean.py index 678375e3f23..472740a0bfd 100644 --- a/conans/test/integration/command_v2/test_cache_clean.py +++ b/conans/test/integration/command_v2/test_cache_clean.py @@ -32,4 +32,4 @@ def test_cache_clean(): def test_cache_clean_noargs_error(): c = TestClient() c.run('cache clean "*"', assert_error=True) - assert "Define at least one argument from --source, --build, --download" in c.out + assert "Define at least one argument among [--source, --build, --download]" in c.out