clap/tests/doc-comments-help.rs
Pascal Hertleif 2075ee8328 Favor help argument over doc comments
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.
2017-06-16 12:31:37 +02:00

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"));
}