diff --git a/CHANGELOG b/CHANGELOG index d57c16d06..e335e7a03 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -6,6 +6,9 @@ module. Thanks Mikhail Chernykh for the report and Bruno Oliveira for the PR. +- fix #1198: ``--pastebin`` option now works on Python 3. Thanks + Mehdy Khoshnoody for the PR. + - fix #1204: another error when collecting with a nasty __getattr__(). Thanks Florian Bruhin for the PR. diff --git a/_pytest/pastebin.py b/_pytest/pastebin.py index f5e479158..20738134e 100644 --- a/_pytest/pastebin.py +++ b/_pytest/pastebin.py @@ -61,8 +61,8 @@ def create_new_paste(contents): 'expiry': '1week', } url = 'https://bpaste.net' - response = urlopen(url, data=urlencode(params)).read() - m = re.search(r'href="/raw/(\w+)"', response) + response = urlopen(url, data=urlencode(params).encode()).read() + m = re.search(r'href="/raw/(\w+)"', response.decode()) if m: return '%s/show/%s' % (url, m.group(1)) else: diff --git a/testing/test_pastebin.py b/testing/test_pastebin.py index 1b5fb1dca..2fe4bc137 100644 --- a/testing/test_pastebin.py +++ b/testing/test_pastebin.py @@ -1,7 +1,7 @@ import sys import pytest -class TestPasting: +class TestPasteCapture: @pytest.fixture def pastebinlist(self, monkeypatch, request): @@ -62,7 +62,7 @@ class TestPaste: class DummyFile: def read(self): # part of html of a normal response - return 'View raw.' + return b'View raw.' return DummyFile() if sys.version_info < (3, 0): @@ -78,10 +78,11 @@ class TestPaste: assert result == 'https://bpaste.net/show/3c0c6750bd' assert len(mocked_urlopen) == 1 url, data = mocked_urlopen[0] + assert type(data) is bytes lexer = 'python3' if sys.version_info[0] == 3 else 'python' assert url == 'https://bpaste.net' - assert 'lexer=%s' % lexer in data - assert 'code=full-paste-contents' in data - assert 'expiry=1week' in data + assert 'lexer=%s' % lexer in data.decode() + assert 'code=full-paste-contents' in data.decode() + assert 'expiry=1week' in data.decode()