Be test-runner friendly by only decorating stdout/stderr if status line enabled. #52
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have an in-progress colcon verb extension and I have a test for it which calls it via
colcon_core.commands.verb_main
. This works on its own and when run vianose
, but fails with with an error when run viacoverage
, I guess becausesys.stdout
andsys.stderr
are being overwritten in that environment to be StringIO objects which don't have the buffer attribute:It ends up being a bit of a cascade, because colcon actually traps this exception and carries on, with colcon-notification in a half-initialized state, so later on there are other failures from the rest of the constructor having not executed:
This change addresses the issue by not trying to decorate in the non-tty case.