mirror of
https://github.com/clap-rs/clap
synced 2024-12-16 07:42:32 +00:00
2075ee8328
This changes the behavior of `from_attr_or_env` (used for clap application settings) to favor the last occurrence of the requested attribute. This is what repeatedly calling the same methods to set field properties does implicitly.
51 lines
1.5 KiB
Rust
51 lines
1.5 KiB
Rust
// Copyright (c) 2017 structopt Developers
|
|
//
|
|
// This work is free. You can redistribute it and/or modify it under
|
|
// the terms of the Do What The Fuck You Want To Public License,
|
|
// Version 2, as published by Sam Hocevar. See the COPYING file for
|
|
// more details.
|
|
|
|
extern crate structopt;
|
|
#[macro_use]
|
|
extern crate structopt_derive;
|
|
|
|
use structopt::StructOpt;
|
|
|
|
#[test]
|
|
fn commets_intead_of_actual_help() {
|
|
/// Lorem ipsum
|
|
#[derive(StructOpt, PartialEq, Debug)]
|
|
struct LoremIpsum {
|
|
/// Fooify a bar
|
|
#[structopt(short = "f", long = "foo")]
|
|
foo: bool,
|
|
}
|
|
|
|
let mut output = Vec::new();
|
|
LoremIpsum::clap().write_long_help(&mut output).unwrap();
|
|
let output = String::from_utf8(output).unwrap();
|
|
|
|
assert!(output.contains("Lorem ipsum"));
|
|
assert!(output.contains("Fooify a bar"));
|
|
}
|
|
|
|
#[test]
|
|
fn help_is_better_than_comments() {
|
|
/// Lorem ipsum
|
|
#[derive(StructOpt, PartialEq, Debug)]
|
|
#[structopt(name = "lorem-ipsum", about = "Dolor sit amet")]
|
|
struct LoremIpsum {
|
|
/// Fooify a bar
|
|
#[structopt(short = "f", long = "foo", help = "DO NOT PASS A BAR UNDER ANY CIRCUMSTANCES")]
|
|
foo: bool,
|
|
}
|
|
|
|
let mut output = Vec::new();
|
|
LoremIpsum::clap().write_long_help(&mut output).unwrap();
|
|
let output = String::from_utf8(output).unwrap();
|
|
|
|
println!("{}", output);
|
|
assert!(output.contains("Dolor sit amet"));
|
|
assert!(!output.contains("Lorem ipsum"));
|
|
assert!(output.contains("DO NOT PASS A BAR"));
|
|
}
|