// Copyright 2018 Guillaume Pinot (@TeXitoi) // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. mod utils; use structopt::StructOpt; use utils::*; #[test] fn no_author_version_about() { #[derive(StructOpt, PartialEq, Debug)] #[structopt(name = "foo", no_version)] struct Opt {} let output = get_long_help::(); assert!(output.starts_with("foo \n\nUSAGE:")); } #[test] fn use_env() { #[derive(StructOpt, PartialEq, Debug)] #[structopt(author, about)] struct Opt {} let output = get_long_help::(); assert!(output.starts_with("structopt 0.")); assert!(output.contains("Guillaume Pinot , others")); assert!(output.contains("Parse command line argument by defining a struct.")); } #[test] fn explicit_version_not_str() { const VERSION: &str = "custom version"; #[derive(StructOpt)] #[structopt(version = VERSION)] pub struct Opt {} let output = get_long_help::(); assert!(output.contains("custom version")); } #[test] fn no_version_gets_propagated() { #[derive(StructOpt, PartialEq, Debug)] #[structopt(no_version)] enum Action { Move, } let output = get_subcommand_long_help::("move"); assert_eq!(output.lines().next(), Some("test-move ")); }