mirror of
https://github.com/clap-rs/clap
synced 2025-01-23 09:55:00 +00:00
c90a4eabae
In looking at other help output, I noticed that they use two spaces, in place of clap's 4, and it doesn't suffer from legibility. If it doesn't make the output worse, let's go ahead and make it as dense so we fit more content on the screen. This is a part of #4132
84 lines
2 KiB
Rust
84 lines
2 KiB
Rust
#![cfg(feature = "cargo")]
|
|
|
|
use clap::{
|
|
crate_authors, crate_description, crate_name, crate_version, error::ErrorKind, Command,
|
|
};
|
|
|
|
use crate::utils;
|
|
|
|
static DESCRIPTION_ONLY: &str = "prog 1
|
|
A simple to use, efficient, and full-featured Command Line Argument Parser
|
|
|
|
Usage: prog
|
|
|
|
Options:
|
|
-h, --help Print help information
|
|
-V, --version Print version information
|
|
";
|
|
|
|
static AUTHORS_ONLY: &str = "prog 1
|
|
|
|
|
|
Usage: prog
|
|
|
|
Options:
|
|
-h, --help Print help information
|
|
-V, --version Print version information
|
|
";
|
|
|
|
#[test]
|
|
fn crate_version() {
|
|
let res = Command::new("prog")
|
|
.version(crate_version!())
|
|
.help_template(utils::FULL_TEMPLATE)
|
|
.try_get_matches_from(vec!["prog", "--version"]);
|
|
|
|
assert!(res.is_err());
|
|
let err = res.unwrap_err();
|
|
assert_eq!(err.kind(), ErrorKind::DisplayVersion);
|
|
assert_eq!(
|
|
err.to_string(),
|
|
format!("prog {}\n", env!("CARGO_PKG_VERSION"))
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn crate_description() {
|
|
let res = Command::new("prog")
|
|
.version("1")
|
|
.about(crate_description!())
|
|
.help_template(utils::FULL_TEMPLATE)
|
|
.try_get_matches_from(vec!["prog", "--help"]);
|
|
|
|
assert!(res.is_err());
|
|
let err = res.unwrap_err();
|
|
assert_eq!(err.kind(), ErrorKind::DisplayHelp);
|
|
assert_eq!(err.to_string(), DESCRIPTION_ONLY);
|
|
}
|
|
|
|
#[test]
|
|
fn crate_authors() {
|
|
let res = Command::new("prog")
|
|
.version("1")
|
|
.author(crate_authors!())
|
|
.help_template(utils::FULL_TEMPLATE)
|
|
.try_get_matches_from(vec!["prog", "--help"]);
|
|
|
|
assert!(res.is_err());
|
|
let err = res.unwrap_err();
|
|
assert_eq!(err.kind(), ErrorKind::DisplayHelp);
|
|
assert_eq!(err.to_string(), AUTHORS_ONLY);
|
|
}
|
|
|
|
#[test]
|
|
fn crate_name() {
|
|
let res = Command::new(crate_name!())
|
|
.help_template(utils::FULL_TEMPLATE)
|
|
.version("3.0")
|
|
.try_get_matches_from(vec!["clap", "--version"]);
|
|
|
|
assert!(res.is_err());
|
|
let err = res.unwrap_err();
|
|
assert_eq!(err.kind(), ErrorKind::DisplayVersion);
|
|
assert_eq!(err.to_string(), "clap 3.0\n");
|
|
}
|