Provides encoding attribute on CaptureIO

Fix #2375
This commit is contained in:
Llandy Riveron Del Risco 2017-07-15 16:15:26 +02:00
parent 3578f4e405
commit ba9a76fdb3
4 changed files with 22 additions and 1 deletions

View File

@ -92,6 +92,7 @@ Kevin Cox
Kodi B. Arfer Kodi B. Arfer
Lee Kamentsky Lee Kamentsky
Lev Maximov Lev Maximov
Llandy Riveron Del Risco
Loic Esteve Loic Esteve
Lukas Bednar Lukas Bednar
Luke Murphy Luke Murphy
@ -165,3 +166,4 @@ Vitaly Lashmanov
Vlad Dragos Vlad Dragos
Wouter van Ackooy Wouter van Ackooy
Xuecong Liao Xuecong Liao
Zoltán Máté

View File

@ -283,7 +283,16 @@ def _setup_collect_fakemodule():
if _PY2: if _PY2:
from py.io import TextIO as CaptureIO # Without this the test_dupfile_on_textio will fail, otherwise CaptureIO could directly inherit from StringIO.
from py.io import TextIO
class CaptureIO(TextIO):
@property
def encoding(self):
return getattr(self, '_encoding', 'UTF-8')
else: else:
import io import io

1
changelog/2375.trivial Normal file
View File

@ -0,0 +1 @@
Provides encoding attribute on CaptureIO.

View File

@ -1037,6 +1037,15 @@ def test_capture_not_started_but_reset():
capsys.stop_capturing() capsys.stop_capturing()
def test_using_capsys_fixture_works_with_sys_stdout_encoding(capsys):
test_text = 'test text'
print(test_text.encode(sys.stdout.encoding, 'replace'))
(out, err) = capsys.readouterr()
assert out
assert err == ''
@needsosdup @needsosdup
@pytest.mark.parametrize('use', [True, False]) @pytest.mark.parametrize('use', [True, False])
def test_fdcapture_tmpfile_remains_the_same(tmpfile, use): def test_fdcapture_tmpfile_remains_the_same(tmpfile, use):