diff options
Diffstat (limited to 'src/tests')
-rw-r--r-- | src/tests/config.rs | 9 | ||||
-rw-r--r-- | src/tests/mod.rs | 7 | ||||
-rw-r--r-- | src/tests/run.rs | 15 |
3 files changed, 23 insertions, 8 deletions
diff --git a/src/tests/config.rs b/src/tests/config.rs index ea3a0e8..728fdbd 100644 --- a/src/tests/config.rs +++ b/src/tests/config.rs @@ -1,7 +1,7 @@ // config.rs // ************************************************************************* -// * Copyright (C) 2019 Daniel Mueller (deso@posteo.net) * +// * Copyright (C) 2019-2020 Daniel Mueller (deso@posteo.net) * // * * // * This program is free software: you can redistribute it and/or modify * // * it under the terms of the GNU General Public License as published by * @@ -39,9 +39,10 @@ $"#, #[test_device] fn set_wrong_usage(model: nitrokey::Model) { let res = Nitrocli::with_model(model).handle(&["config", "set", "--numlock", "2", "-N"]); - assert_eq!( - res.unwrap_str_err(), - "--numlock and --no-numlock are mutually exclusive" + let err = res.unwrap_str_err(); + assert!( + err.contains("The argument '--numlock <numlock>' cannot be used with '--no-numlock'"), + err, ); } diff --git a/src/tests/mod.rs b/src/tests/mod.rs index 5ebf285..ac420f2 100644 --- a/src/tests/mod.rs +++ b/src/tests/mod.rs @@ -50,6 +50,13 @@ where { fn unwrap_str_err(self) -> String { match self.unwrap_err() { + crate::Error::ClapError(err) => { + if err.use_stderr() { + err.message + } else { + String::new() + } + } crate::Error::Error(err) => err, err => panic!("Unexpected error variant found: {:?}", err), } diff --git a/src/tests/run.rs b/src/tests/run.rs index c59c660..22e7004 100644 --- a/src/tests/run.rs +++ b/src/tests/run.rs @@ -1,7 +1,7 @@ // run.rs // ************************************************************************* -// * Copyright (C) 2019 Daniel Mueller (deso@posteo.net) * +// * Copyright (C) 2019-2020 Daniel Mueller (deso@posteo.net) * // * * // * This program is free software: you can redistribute it and/or modify * // * it under the terms of the GNU General Public License as published by * @@ -27,7 +27,8 @@ fn no_command_or_option() { assert_eq!(out, b""); let s = String::from_utf8_lossy(&err).into_owned(); - assert!(s.starts_with("Usage:\n"), s); + assert!(s.starts_with("nitrocli"), s); + assert!(s.contains("USAGE:\n"), s); } #[test] @@ -42,8 +43,10 @@ fn help_options() { assert_eq!(err, b""); let s = String::from_utf8_lossy(&out).into_owned(); - let expected = format!("Usage:\n nitrocli {}", args.join(" ")); - assert!(s.starts_with(&expected), s); + let mut args = args.to_vec(); + args.insert(0, "nitrocli"); + assert!(s.starts_with(&args.join("-")), s); + assert!(s.contains("USAGE:\n"), s); } fn test(args: &[&str]) { @@ -84,7 +87,11 @@ fn help_options() { } #[test] +#[ignore] fn version_option() { + // clap sends the version output directly to stdout: https://github.com/clap-rs/clap/issues/1390 + // Therefore we ignore this test for the time being. + fn test(re: ®ex::Regex, opt: &'static str) { let (rc, out, err) = Nitrocli::new().run(&[opt]); |