mirror of
https://github.com/clap-rs/clap
synced 2025-01-07 10:18:48 +00:00
64ee0f8009
Adds new method/attribute `Arg::value_hint`, taking a `ValueHint` enum as argument. The hint can denote accepted values, for example: paths, usernames, hostnames, commands, etc. This initial implementation supports hints for the zsh and fish completion generators, support for other shells can be added later.
56 lines
1.6 KiB
Rust
56 lines
1.6 KiB
Rust
#![cfg(feature = "yaml")]
|
|
|
|
use clap::{load_yaml, App, ValueHint};
|
|
|
|
#[test]
|
|
fn create_app_from_yaml() {
|
|
let yaml = load_yaml!("fixtures/app.yaml");
|
|
App::from(yaml);
|
|
}
|
|
|
|
// TODO: Uncomment to test yaml with 2 spaces https://github.com/chyh1990/yaml-rust/issues/101
|
|
// #[test]
|
|
// fn create_app_from_yaml_2spaces() {
|
|
// let yaml = load_yaml!("fixtures/app_2space.yaml");
|
|
// App::from(yaml);
|
|
// }
|
|
|
|
#[test]
|
|
fn help_message() {
|
|
let yaml = load_yaml!("fixtures/app.yaml");
|
|
let mut app = App::from(yaml);
|
|
// Generate the full help message!
|
|
let _ = app.try_get_matches_from_mut(Vec::<String>::new());
|
|
|
|
let mut help_buffer = Vec::new();
|
|
app.write_help(&mut help_buffer).unwrap();
|
|
let help_string = String::from_utf8(help_buffer).unwrap();
|
|
assert!(help_string
|
|
.contains("-h, --help prints help with a nonstandard description\n"));
|
|
}
|
|
|
|
#[test]
|
|
fn author() {
|
|
let yaml = load_yaml!("fixtures/app.yaml");
|
|
let mut app = App::from(yaml);
|
|
// Generate the full help message!
|
|
let _ = app.try_get_matches_from_mut(Vec::<String>::new());
|
|
|
|
let mut help_buffer = Vec::new();
|
|
app.write_help(&mut help_buffer).unwrap();
|
|
let help_string = String::from_utf8(help_buffer).unwrap();
|
|
assert!(help_string.contains("Kevin K. <kbknapp@gmail.com>"));
|
|
}
|
|
|
|
// ValueHint must be parsed correctly from Yaml
|
|
#[test]
|
|
fn value_hint() {
|
|
let yml = load_yaml!("fixtures/app.yaml");
|
|
let app = App::from(yml);
|
|
|
|
let arg = app
|
|
.get_arguments()
|
|
.find(|a| a.get_name() == "value_hint")
|
|
.unwrap();
|
|
assert_eq!(arg.get_value_hint(), ValueHint::FilePath);
|
|
}
|