From f38f717539b1b7296720805b8ae3969c3509b9c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ba=C5=A1ti?= Date: Thu, 11 Jul 2019 19:12:16 +0200 Subject: [PATCH] Fix pytest 5.0.0 compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pytest.raises() returns exception info not the exception itself. They changed implementation of exception info, so now .value property must be used to get the exception instance and have proper output from str() method. https://github.com/pytest-dev/pytest/issues/5412 Signed-off-by: Martin Bašti --- tests/test_util.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) Index: gunicorn-19.9.0/tests/test_util.py =================================================================== --- gunicorn-19.9.0.orig/tests/test_util.py +++ gunicorn-19.9.0/tests/test_util.py @@ -24,9 +24,9 @@ def test_parse_address(test_input, expec def test_parse_address_invalid(): - with pytest.raises(RuntimeError) as err: + with pytest.raises(RuntimeError) as exc_info: util.parse_address('127.0.0.1:test') - assert "'test' is not a valid port number." in str(err) + assert "'test' is not a valid port number." in str(exc_info.value) def test_http_date(): @@ -52,24 +52,24 @@ def test_warn(capsys): def test_import_app(): assert util.import_app('support:app') - with pytest.raises(ImportError) as err: + with pytest.raises(ImportError) as exc_info: util.import_app('a:app') - assert 'No module' in str(err) + assert 'No module' in str(exc_info.value) - with pytest.raises(AppImportError) as err: + with pytest.raises(AppImportError) as exc_info: util.import_app('support:wrong_app') msg = "Failed to find application object 'wrong_app' in 'support'" - assert msg in str(err) + assert msg in str(exc_info.value) def test_to_bytestring(): assert util.to_bytestring('test_str', 'ascii') == b'test_str' assert util.to_bytestring('test_str®') == b'test_str\xc2\xae' assert util.to_bytestring(b'byte_test_str') == b'byte_test_str' - with pytest.raises(TypeError) as err: + with pytest.raises(TypeError) as exc_info: util.to_bytestring(100) msg = '100 is not a string' - assert msg in str(err) + assert msg in str(exc_info.value) @pytest.mark.parametrize('test_input, expected', [