Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

assert on leading and trailing whitespace #2786

Merged
merged 1 commit into from
Sep 24, 2021

Conversation

jonathanmorley
Copy link
Contributor

@jonathanmorley jonathanmorley commented Sep 24, 2021

This changes the assertions of output to make leading and trailing whitespace significant

@@ -146,7 +155,9 @@ FLAGS:
SUBCOMMANDS:
help
Print this message or the help of the given subcommand(s)
test";
test

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks to be incorrect, will open a ticket

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also expected, given the trailing spaces on short format help messages

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens when there's a subcommand starting with z? Would appreciate you looking into it and then creating an issue with expected behaviour. In fact, there might one already for short format help messages.

@@ -841,7 +878,7 @@ fn no_wrap_help() {
assert!(utils::compare_output(
app,
"ctest --help",
MULTI_SC_HELP,
&format!("{}\n", MULTI_SC_HELP),
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MULTI_SC_HELP already has a trailing newline, this adds a second one, which doesn't sound right

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On second thought, this is probably expected

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain why this is expected?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we want to remove the extra new line if override_help has one trailing?

@@ -2576,8 +2632,7 @@ fn disabled_help_flag_and_subcommand() {
"error: Found argument 'help' which wasn't expected, or isn't valid in this context

USAGE:
foo [SUBCOMMAND]
",
foo [SUBCOMMAND]",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't look right, will make issue

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jonathanmorley jonathanmorley force-pushed the assert-whitespace branch 2 times, most recently from 786bd63 to 9037980 Compare September 24, 2021 16:05
tests/app_settings.rs Show resolved Hide resolved
Comment on lines +18 to +19
-o, --opt <opt> [aliases: visible]
";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering if all of these tests need to care about whitspace, rather than having the full help-specific tests focus it.

My concern is with the cost of a change and ensuring that cost is not unnecessarily burdensome. For example, an arg alias test is only about a fraction of the overall output. If someone makes a change within a different part of clap, it shouldn't break arg aliases tests but only tests related to what was changed.

(Personally, I'd prefer we find a way to make these tests only care about the part of the help that is relevant.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure how this change would affect tests-breaking-at-a-distance. My main change was in tests/utils.rs, to stop us from stripping the trailing whitespace from assertions. Given that that file is used by all these tests, having to update all of them is expected.

Going forward with other changes in a particular area, such a wide sweep should not be necessary

@@ -841,7 +878,7 @@ fn no_wrap_help() {
assert!(utils::compare_output(
app,
"ctest --help",
MULTI_SC_HELP,
&format!("{}\n", MULTI_SC_HELP),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain why this is expected?

@pksunkara pksunkara merged commit 86fda8b into clap-rs:master Sep 24, 2021
@jonathanmorley jonathanmorley deleted the assert-whitespace branch October 7, 2021 21:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants