Skip to content

Commit

Permalink
test(assert): Verify num_args/action compat
Browse files Browse the repository at this point in the history
  • Loading branch information
epage committed Feb 14, 2025
1 parent a8f9885 commit a0187c6
Showing 1 changed file with 92 additions and 0 deletions.
92 changes: 92 additions & 0 deletions tests/builder/action.rs
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,19 @@ fn set_true_with_required_if_eq() {
assert_eq!(matches.get_flag("mammal"), true);
}

#[test]
#[should_panic = "Argument `mammal`'s selected action SetTrue contradicts `takes_value`"]
fn set_true_with_incompatible_num_args() {
Command::new("test")
.arg(
Arg::new("mammal")
.long("mammal")
.action(ArgAction::SetTrue)
.num_args(1..),
)
.build();
}

#[test]
fn set_false() {
let cmd = Command::new("test").arg(
Expand Down Expand Up @@ -333,6 +346,19 @@ fn set_false_with_default_value_if_value() {
assert_eq!(matches.get_flag("mammal"), false);
}

#[test]
#[should_panic = "Argument `mammal`'s selected action SetFalse contradicts `takes_value`"]
fn set_false_with_incompatible_num_args() {
Command::new("test")
.arg(
Arg::new("mammal")
.long("mammal")
.action(ArgAction::SetFalse)
.num_args(1..),
)
.build();
}

#[test]
fn count() {
let cmd = Command::new("test").arg(Arg::new("mammal").long("mammal").action(ArgAction::Count));
Expand Down Expand Up @@ -442,3 +468,69 @@ fn count_with_default_value_if_value() {
assert_eq!(*matches.get_one::<u8>("dog").unwrap(), 0);
assert_eq!(*matches.get_one::<u8>("mammal").unwrap(), 1);
}

#[test]
#[should_panic = "Argument `mammal`'s selected action Count contradicts `takes_value`"]
fn count_with_incompatible_num_args() {
Command::new("test")
.arg(
Arg::new("mammal")
.long("mammal")
.action(ArgAction::Count)
.num_args(1..),
)
.build();
}

#[test]
#[should_panic = "Argument `mammal`'s selected action Help contradicts `takes_value`"]
fn help_with_incompatible_num_args() {
Command::new("test")
.arg(
Arg::new("mammal")
.long("mammal")
.action(ArgAction::Help)
.num_args(1..),
)
.build();
}

#[test]
#[should_panic = "Argument `mammal`'s selected action HelpShort contradicts `takes_value`"]
fn help_short_with_incompatible_num_args() {
Command::new("test")
.arg(
Arg::new("mammal")
.long("mammal")
.action(ArgAction::HelpShort)
.num_args(1..),
)
.build();
}

#[test]
#[should_panic = "Argument `mammal`'s selected action HelpLong contradicts `takes_value`"]
fn help_long_with_incompatible_num_args() {
Command::new("test")
.arg(
Arg::new("mammal")
.long("mammal")
.action(ArgAction::HelpLong)
.num_args(1..),
)
.build();
}

#[test]
#[should_panic = "Argument `mammal`'s selected action Version contradicts `takes_value`"]
fn version_with_incompatible_num_args() {
Command::new("test")
.version("1.0.0")
.arg(
Arg::new("mammal")
.long("mammal")
.action(ArgAction::Version)
.num_args(1..),
)
.build();
}

0 comments on commit a0187c6

Please sign in to comment.