# HG changeset patch # User Bram Moolenaar # Date 1603825203 -3600 # Node ID 1928f863ac6e0678e38b24cf7eded2219c20beaa # Parent bc07ea7707dfb5290d1ac15851c8bea659778f0d patch 8.2.1912: with Python 3.9 some tests fail Commit: https://github.com/vim/vim/commit/68a48ee55e55c189b03a6718a0d06af1dfedcd16 Author: Bram Moolenaar Date: Tue Oct 27 19:59:10 2020 +0100 patch 8.2.1912: with Python 3.9 some tests fail Problem: With Python 3.9 some tests fail. Solution: Take into account the different error message. (James McCoy, closes #7210) diff --git a/src/testdir/test_python3.vim b/src/testdir/test_python3.vim --- a/src/testdir/test_python3.vim +++ b/src/testdir/test_python3.vim @@ -23,6 +23,7 @@ func Test_AAA_python3_setup() py33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional argument but (\d+) were given$') py37_exception_repr = re.compile(r'([^\(\),])(\)+)$') + py39_type_error_pattern = re.compile('\w+\.([^(]+\(\) takes)') def emsg(ei): return ei[0].__name__ + ':' + repr(ei[1].args) @@ -56,6 +57,8 @@ func Test_AAA_python3_setup() oldmsg2 = '''"Can't convert 'int' object to str implicitly"''' if msg.find(newmsg2) > -1: msg = msg.replace(newmsg2, oldmsg2) + # Python 3.9 reports errors like "vim.command() takes ..." instead of "command() takes ..." + msg = py39_type_error_pattern.sub(r'\1', msg) elif sys.version_info >= (3, 5) and e.__class__ is ValueError and str(e) == 'embedded null byte': msg = repr((TypeError, TypeError('expected bytes with no null'))) else: @@ -3812,7 +3815,16 @@ func Test_python3_errors() vim.current.xxx = True:(, AttributeError('xxx',)) END - call assert_equal(expected, getline(2, '$')) + let actual = getline(2, '$') + let n_expected = len(expected) + let n_actual = len(actual) + call assert_equal(n_expected, n_actual, 'number of lines to compare') + + " Compare line by line so the errors are easier to understand. Missing lines + " are compared with an empty string. + for i in range(n_expected > n_actual ? n_expected : n_actual) + call assert_equal(i >= n_expected ? '' : expected[i], i >= n_actual ? '' : actual[i]) + endfor close! endfunc diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1912, +/**/ 1911, /**/ 1910,