X Tutup
The Wayback Machine - https://web.archive.org/web/20200529203128/https://github.com/cli/cli/pull/796
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

Avoid printing header if piped to a script #796

Open
wants to merge 7 commits into
base: trunk
from

Conversation

@Tarasovych
Copy link
Contributor

Tarasovych commented Apr 17, 2020

Fixes TODO

Copy link
Member

vilmibm left a comment

Thanks!

For now I'd rather see us stick with the IsTerminal helper in utils.

Tarasovych added 2 commits Apr 21, 2020
This reverts commit 70deeb6.
@Tarasovych Tarasovych requested a review from vilmibm Apr 21, 2020
Copy link
Member

mislav left a comment

Thank you for updates!

@@ -264,7 +264,7 @@ Requesting a code review from you
}
}

func TestPRList(t *testing.T) {
func TestPRList_stdout_is_not_a_tty(t *testing.T) {

This comment has been minimized.

Copy link
@mislav

mislav Apr 21, 2020

Member

The updated test name makes me think that we should really have a way to force "tty mode" in tests to be able to assert such output. 🤔

This is not something that you have to do in this PR, btw. I don't know yet how would we pass that information to tests.

@@ -278,17 +278,14 @@ func TestPRList(t *testing.T) {
t.Fatal(err)
}

eq(t, output.Stderr(), `
Showing 3 of 3 pull requests in OWNER/REPO

This comment has been minimized.

Copy link
@mislav

mislav Apr 21, 2020

Member

I would recommend that we hold off merging this until we figure out how to simulate tty mode for tests so we can keep asserting this output. The header is an important part of output and I wish we can keep test coverage of it.

This comment has been minimized.

Copy link
@vilmibm

vilmibm Apr 28, 2020

Member

I think that is fair. In reviewing #572 and then returning to this I think we need to step back and design a holistic approach to determining what kind of output (both formatting and color) to use; something routed via the cmd reference that can be stubbed appropriately when running commands in a test.

// TODO: avoid printing header if piped to a script
fmt.Fprintf(colorableErr(cmd), "\n%s\n\n", title)

if utils.IsTerminal(os.Stdout) {

This comment has been minimized.

Copy link
@mislav

mislav Apr 21, 2020

Member

Instead of using global os.Stdout, we reference the output stream inside commands as cmd.OutOrStdout(), so you should be checking that object instead. This gives us the ability to override the output stream for tests. Note that the output stream is a Writer and not necessarily a File, so you would have to do an additional check.

@mislav mislav added the blocked label May 7, 2020
@mislav mislav mentioned this pull request May 20, 2020
3 of 11 tasks complete
@mislav mislav changed the base branch from master to trunk May 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants
You can’t perform that action at this time.
X Tutup