From 506f5e49658c5cf82227dd6d6e58ac333be5fef1 Mon Sep 17 00:00:00 2001 From: Pavan Kumar Sunkara Date: Sun, 2 Feb 2020 08:50:40 +0100 Subject: [PATCH 1/2] Added tests for cargo macros, fixes #1478 --- tests/app_from_crate.rs | 26 +++++++++++++++ tests/cargo.rs | 71 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 tests/app_from_crate.rs create mode 100644 tests/cargo.rs diff --git a/tests/app_from_crate.rs b/tests/app_from_crate.rs new file mode 100644 index 00000000..2129a0dd --- /dev/null +++ b/tests/app_from_crate.rs @@ -0,0 +1,26 @@ +use clap::{app_from_crate, ErrorKind}; + +static EVERYTHING: &str = "clap {{version}} +Kevin K. +A simple to use, efficient, and full-featured Command Line Argument Parser + +USAGE: + clap + +FLAGS: + -h, --help Prints help information + -V, --version Prints version information +"; + +#[test] +fn app_from_crate() { + let res = app_from_crate!().try_get_matches_from(vec!["clap", "--help"]); + + assert!(res.is_err()); + let err = res.unwrap_err(); + assert_eq!(err.kind, ErrorKind::HelpDisplayed); + assert_eq!( + err.message, + EVERYTHING.replace("{{version}}", env!("CARGO_PKG_VERSION")) + ); +} diff --git a/tests/cargo.rs b/tests/cargo.rs new file mode 100644 index 00000000..9fe2234e --- /dev/null +++ b/tests/cargo.rs @@ -0,0 +1,71 @@ +use clap::{crate_authors, crate_description, crate_name, crate_version, App, ErrorKind}; + +static DESCRIPTION_ONLY: &str = "prog 1 +A simple to use, efficient, and full-featured Command Line Argument Parser + +USAGE: + prog + +FLAGS: + -h, --help Prints help information + -V, --version Prints version information +"; + +static AUTHORS_ONLY: &str = "prog 1 +Kevin K. + +USAGE: + prog + +FLAGS: + -h, --help Prints help information + -V, --version Prints version information +"; + +#[test] +fn crate_version() { + let res = App::new("prog") + .version(crate_version!()) + .try_get_matches_from(vec!["prog", "--version"]); + + assert!(res.is_err()); + let err = res.unwrap_err(); + assert_eq!(err.kind, ErrorKind::VersionDisplayed); + assert_eq!(err.message, format!("prog {}", env!("CARGO_PKG_VERSION"))); +} + +#[test] +fn crate_description() { + let res = App::new("prog") + .version("1") + .about(crate_description!()) + .try_get_matches_from(vec!["prog", "--help"]); + + assert!(res.is_err()); + let err = res.unwrap_err(); + assert_eq!(err.kind, ErrorKind::HelpDisplayed); + assert_eq!(err.message, DESCRIPTION_ONLY); +} + +#[test] +fn crate_authors() { + let res = App::new("prog") + .version("1") + .author(crate_authors!()) + .try_get_matches_from(vec!["prog", "--help"]); + + assert!(res.is_err()); + let err = res.unwrap_err(); + assert_eq!(err.kind, ErrorKind::HelpDisplayed); + assert_eq!(err.message, AUTHORS_ONLY); +} + +#[test] +fn crate_name() { + let res = App::new(crate_name!()).try_get_matches_from(vec!["clap", "--version"]); + + assert!(res.is_err()); + let err = res.unwrap_err(); + assert_eq!(err.kind, ErrorKind::VersionDisplayed); + assert_eq!(err.message, "clap "); +} From 3fa39a55d211c448aae37d47db371026f8969fb2 Mon Sep 17 00:00:00 2001 From: Pavan Kumar Sunkara Date: Sun, 2 Feb 2020 09:31:09 +0100 Subject: [PATCH 2/2] Update changelog to reflect the correct minimum version --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eb19112..fbbdb6a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,10 @@ #### Minimum Required Rust -* As of this release, `clap` requires `rustc 1.33.0` or greater. +* As of this release, `clap` requires `rustc 1.36.0` or greater. -### v2.29.2 (2018-01-16) +## v2.29.2 (2018-01-16) #### Features