• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

adrienverge / yamllint / 7365719389 / 2
100%
master: 100%

Build:
DEFAULT BRANCH: master
Ran 30 Dec 2023 06:35PM UTC
Files 65
Run time 1s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 Dec 2023 06:34PM UTC coverage: 99.415% (+0.08%) from 99.338%
7365719389.2

push

github

adrienverge
tests: Prevent “unittest --buffer” from crashing

Before this change, if certain tests were failing in certain ways, then
running “python -m unittest --buffer” would cause an AttributeError in
the unittest module itself.

Here’s what unittest does when you use the --buffer argument:

1. It sets sys.stdout and sys.stderr to StringIOs [1].
2. It runs a test.
3. If the test failed, it runs getvalue() on sys.stdout and sys.stderr
   to get data from its StringIOs.

tests/test_cli.py has its own RunContext class that does something
similar. Before this change, here’s what could happen:

1. unittest sets sys.stdout and sys.stderr to StringIOs.
2. unittest runs a test that uses RunContext.
3. A RunContext gets entered. It sets sys.stdout and sys.stderr to its
   own StringIOs.
4. The RunContext gets exited. It sets sys.stdout and sys.stderr to
   sys.__stdout__ and sys.__stderr__.
5. The test fails.
6. unittest assumes that sys.stdout is still set to one of its
   StringIOs, and runs sys.stdout.getvalue().
7. unittest crashes with this error:

	AttributeError: '_io.TextIOWrapper' object has no attribute 'getvalue'

[1]: <https://github.com/python/cpython/blob/<a class=hub.com/adrienverge/yamllint/commit/2305ca51448552542b2414186252123a8dc87db7">2305ca514/Lib/unittest/result.py#L65>
[2]: <https://github.com/python/cpython/blob/2305ca51448552542b2414186252123a8dc87db7/Lib/unittest/result.py#L87>

3906 of 3929 relevant lines covered (99.41%)

0.99 hits per line

Source Files on job 7365719389.2
  • Tree
  • List 0
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 7365719389
  • 152ba20f on github
  • Prev Job for on master (#7365429379.1)
  • Next Job for on master (#7411988604.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc