Source: gnome-gmail Version: 2.7-2 Severity: important Dear Maintainer,
When running gnome-gmail autopkgtest with Python ≥ 3.9.5, test_body2html
fails. That version is currently available in Debian experimental. The failing
configurations are:
- test_body2html[False-a\tb-a b]
- test_body2html[False-a\nb-a<br>\nb]
- test_body2html[False-a\nb\nc-a<br>\nb<br>\nc]
For example, the first configuration fails with this error:
_____________________ test_body2html[False-a\tb-a b]
______________________
encbody = False, body = 'a\tb', result = 'a b'
@pytest.mark.parametrize("body, result", testCaseStrings)
@pytest.mark.parametrize("encbody", (False, True))
def test_body2html(encbody, body, result):
if encbody:
body = urllib.parse.quote(body)
elif '&' in body or '#' in body:
pytest.skip("Don't test unencoded bodies with URL special chars")
gmapi = get_gmapi(baseMailtoURL + body)
html_body = gmapi.body2html()
> assert result in html_body
E AssertionError: assert 'a b' in
'<html>\n<head>\n</head>\n<body>\nab\n</body>\n</html>'
test/test_body.py:106: AssertionError
It happens because starting with Python 3.9.5, urllib.parse.urlsplit() removes
newline and tabs:
https://github.com/python/cpython/commit/491fde0161d5e527
And that function is called by gnome-gmail's mailto2dict() function.
Compare:
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib.parse
>>> urllib.parse.urlsplit("mailto:joe?body=a\tb", "mailto")
SplitResult(scheme='mailto', netloc='', path='joe', query='body=a\tb',
fragment='')
and:
Python 3.9.5 (default, May 6 2021, 09:11:34)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib.parse
>>> urllib.parse.urlsplit("mailto:joe?body=a\tb", "mailto")
SplitResult(scheme='mailto', netloc='', path='joe', query='body=ab',
fragment='')
--
Dmitry Shachnev
signature.asc
Description: PGP signature

