"""General pytest tests for axolotl.cli.main interface.""" from axolotl.cli.main import build_command, cli def test_build_command(): """Test converting dict of options to CLI arguments""" base_cmd = ["accelerate", "launch"] options = { "learning_rate": 1e-4, "batch_size": 8, "debug": True, "use_fp16": False, "null_value": None, } result = build_command(base_cmd, options) assert result == [ "accelerate", "launch", "--learning-rate", "0.0001", "--batch-size", "8", "--debug", ] def test_invalid_command_options(cli_runner): """Test handling of invalid command options""" result = cli_runner.invoke( cli, [ "train", "config.yml", "--invalid-option", "value", ], ) assert result.exit_code != 0 assert "No such option" in result.output def test_required_config_argument(cli_runner): """Test commands fail properly when config argument is missing""" result = cli_runner.invoke(cli, ["train"]) assert result.exit_code != 0 assert "Missing argument 'CONFIG'" in result.output