Feature: CLI global options --data-dir, --config-path, and -v Background: Given global options test env is clean # ----------------------------------------------------------------------- # --data-dir option # ----------------------------------------------------------------------- @tdd_issue @tdd_issue_6785 Scenario: --data-dir option is accepted with an existing directory Given a temp data dir is prepared When I run the global options CLI with data-dir flag and "version" Then the global options CLI should succeed Scenario: --data-dir option overrides CLEVERAGENTS_DATA_DIR for the invocation Given a temp data dir is prepared When I run the global options CLI with data-dir flag and "version" Then the CLEVERAGENTS_DATA_DIR env var should match the temp data dir Scenario: --data-dir with a path that is an existing file fails with a clear error Given a temp file path is prepared When I run the global options CLI with data-dir as temp file and "version" Then the global options CLI should fail And the global options output should contain "--data-dir" Scenario: --data-dir stores value in ctx.obj for subcommands Given a temp data dir is prepared When I run the global options CLI with data-dir flag and "version" Then the CLEVERAGENTS_DATA_DIR env var should match the temp data dir # ----------------------------------------------------------------------- # --config-path option # ----------------------------------------------------------------------- @tdd_issue @tdd_issue_6785 Scenario: --config-path option is accepted with an existing file Given a temp config file is prepared When I run the global options CLI with config-path flag and "version" Then the global options CLI should succeed Scenario: --config-path overrides CLEVERAGENTS_CONFIG_PATH for the invocation Given a temp config file is prepared When I run the global options CLI with config-path flag and "version" Then the CLEVERAGENTS_CONFIG_PATH env var should match the temp config file Scenario: --config-path with a non-existent file fails with a clear error When I run the global options CLI with invalid config-path and "version" Then the global options CLI should fail And the global options output should contain "--config-path" Scenario: --config-path stores value in ctx.obj for subcommands Given a temp config file is prepared When I run the global options CLI with config-path flag and "version" Then the CLEVERAGENTS_CONFIG_PATH env var should match the temp config file # ----------------------------------------------------------------------- # Combining --data-dir and --config-path # ----------------------------------------------------------------------- Scenario: --data-dir and --config-path can be combined Given a temp data dir is prepared And a temp config file is prepared When I run the global options CLI with both path flags and "version" Then the global options CLI should succeed And the CLEVERAGENTS_DATA_DIR env var should match the temp data dir And the CLEVERAGENTS_CONFIG_PATH env var should match the temp config file # ----------------------------------------------------------------------- # -v verbosity option # ----------------------------------------------------------------------- Scenario: No -v flag results in CRITICAL (silent) log level When I call main_callback with verbosity 0 Then the global options log level should be "CRITICAL" Scenario: Single -v flag results in ERROR log level When I call main_callback with verbosity 1 Then the global options log level should be "ERROR" Scenario: -vv results in WARNING log level When I call main_callback with verbosity 2 Then the global options log level should be "WARNING" Scenario: -vvv results in INFO log level When I call main_callback with verbosity 3 Then the global options log level should be "INFO" Scenario: -vvvv results in DEBUG log level When I call main_callback with verbosity 4 Then the global options log level should be "DEBUG" Scenario: -vvvvv or more results in DEBUG log level When I call main_callback with verbosity 5 Then the global options log level should be "DEBUG" @tdd_issue @tdd_issue_6785 Scenario: -v flag is accepted by the CLI without crashing When I run the global options CLI with args "-v version" Then the global options CLI should succeed Scenario: -vvv flags are accepted by the CLI without crashing When I run the global options CLI with args "-v -v -v version" Then the global options CLI should succeed # ----------------------------------------------------------------------- # --help shows all three options # ----------------------------------------------------------------------- Scenario: --help output includes --data-dir option When I run the global options CLI with args "--help" Then the global options output should contain "--data-dir" Scenario: --help output includes --config-path option When I run the global options CLI with args "--help" Then the global options output should contain "--config-path" Scenario: -v flag appears in --help output When I run the global options CLI with args "--help" Then the global options output should contain "-v" # ----------------------------------------------------------------------- # -v verbosity stored in ctx.obj # ----------------------------------------------------------------------- Scenario: verbose count is stored in ctx.obj When I call main_callback with verbosity 3 Then the global options ctx obj "verbose" should be 3