[Pytest-commit] Issue #547: ``capsys``: ``AttributeError`` is raised and output is not captured when using the ``-s`` option (hpk42/pytest)
Ignacy Sokołowski
issues-reply at bitbucket.org
Sat Jul 26 18:42:19 CEST 2014
New issue 547: ``capsys``: ``AttributeError`` is raised and output is not captured when using the ``-s`` option
https://bitbucket.org/hpk42/pytest/issue/547/capsys-attributeerror-is-raised-and-output
Ignacy Sokołowski:
Test:
```
#!python
def print_foo():
print('foo')
def test_print_foo(capsys):
print_foo()
output, __ = capsys.readouterr()
assert output == 'foo\n'
```
Output for ``py.test``:
```
test_capsys.py .
```
Output for ``py.test -s``
```
test_capsys.py foo
F
================================= FAILURES ==================================
______________________________ test_print_foo _______________________________
capsys = <_pytest.capture.CaptureFixture object at 0x7fdf0ed8d9b0>
def test_print_foo(capsys):
print_foo()
> output, __ = capsys.readouterr()
test_capsys.py:9:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.capture.CaptureFixture object at 0x7fdf0ed8d9b0>
def readouterr(self):
try:
return self._capture.readouterr()
except AttributeError:
> return self._outerr
E AttributeError: 'CaptureFixture' object has no attribute '_outerr'
../env/lib/python3.4/site-packages/_pytest/capture.py:205: AttributeError
```
Looks like the ``CaptureFixture._start`` method, where the ``_capture`` attribute is set, is not called.
This test fails on pytest 2.6 but passes on 2.5.2. On 2.5.2 the print output is captured even though the ``-s`` option was set. I think it's the expected behavior.
More information about the pytest-commit
mailing list