From bb5e0c79326b1e75f68e2fd75639c0f1cfae6bd5 Mon Sep 17 00:00:00 2001 From: Michał Górny Date: Thu, 5 Aug 2021 09:13:58 +0200 Subject: dev-python/parso: Fix py3.10.0rc1 test failures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/parso/files/parso-0.8.2-py310-2.patch | 57 ++++++++++++++++++++++++ dev-python/parso/parso-0.8.2.ebuild | 2 +- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 dev-python/parso/files/parso-0.8.2-py310-2.patch (limited to 'dev-python/parso') diff --git a/dev-python/parso/files/parso-0.8.2-py310-2.patch b/dev-python/parso/files/parso-0.8.2-py310-2.patch new file mode 100644 index 000000000000..7c6b1ad78286 --- /dev/null +++ b/dev-python/parso/files/parso-0.8.2-py310-2.patch @@ -0,0 +1,57 @@ +From dc41958947770849c8b3b4d344db434e2c8548cc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Thu, 5 Aug 2021 09:09:28 +0200 +Subject: [PATCH] Update expected exception line numbers for Python 3.10.0rc1 + +It seems that upstream has fixed line numbers in some of the expections +in Python 3.10.0rc1, so update the tests accordingly. This means that +test_non_async_in_async() gets the correct line again, +and test_default_except_error_postition() no longer suffers from +the apparent off-by-one problem. + +This doesn't fix tests entirely with Python 3.10 but it's a step +forward. +--- + test/test_python_errors.py | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/test/test_python_errors.py b/test/test_python_errors.py +index cda9bd2..e847ebb 100644 +--- a/test/test_python_errors.py ++++ b/test/test_python_errors.py +@@ -57,10 +57,10 @@ def test_non_async_in_async(): + error, = errors + actual = error.message + assert actual in wanted +- if sys.version_info[:2] < (3, 8): ++ if sys.version_info[:2] not in ((3, 8), (3,9)): + assert line_nr == error.start_pos[0] + else: +- assert line_nr == 0 # For whatever reason this is zero in Python 3.8+ ++ assert line_nr == 0 # For whatever reason this is zero in Python 3.8/3.9 + + + @pytest.mark.parametrize( +@@ -140,13 +140,16 @@ def _get_actual_exception(code): + + + def test_default_except_error_postition(): +- # For this error the position seemed to be one line off, but that doesn't +- # really matter. ++ # For this error the position seemed to be one line off in Python < 3.10, ++ # but that doesn't really matter. + code = 'try: pass\nexcept: pass\nexcept X: pass' + wanted, line_nr = _get_actual_exception(code) + error, = _get_error_list(code) + assert error.message in wanted +- assert line_nr != error.start_pos[0] ++ if sys.version_info[:2] >= (3, 10): ++ assert line_nr == error.start_pos[0] ++ else: ++ assert line_nr != error.start_pos[0] + # I think this is the better position. + assert error.start_pos[0] == 2 + +-- +2.32.0 + diff --git a/dev-python/parso/parso-0.8.2.ebuild b/dev-python/parso/parso-0.8.2.ebuild index 2637f5cf5c31..42be4262b424 100644 --- a/dev-python/parso/parso-0.8.2.ebuild +++ b/dev-python/parso/parso-0.8.2.ebuild @@ -20,6 +20,7 @@ distutils_enable_tests pytest PATCHES=( "${FILESDIR}"/${P}-py310.patch + "${FILESDIR}"/${P}-py310-2.patch "${FILESDIR}"/${P}-flaky-test.patch ) @@ -28,7 +29,6 @@ python_test() { [[ ${EPYTHON} == python3.10 ]] && deselect+=( # py3.10 changed exception messages test/test_python_errors.py::test_python_exception_matches - test/test_python_errors.py::test_default_except_error_postition ) epytest ${deselect[@]/#/--deselect } } -- cgit v1.2.3-65-gdbad