commit: a3ea150ce6740584732d29fa396bc08ba1c1fb86 Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Wed Jun 10 19:29:58 2020 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Wed Jun 10 20:30:34 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a3ea150c
dev-python/boto: Port to py3.9, fix tests Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> dev-python/boto/boto-2.49.0-r2.ebuild | 28 ++++++++------- dev-python/boto/files/boto-2.49.0-py38.patch | 54 ++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 12 deletions(-) diff --git a/dev-python/boto/boto-2.49.0-r2.ebuild b/dev-python/boto/boto-2.49.0-r2.ebuild index ae8ee2a25f3..0e774e24a22 100644 --- a/dev-python/boto/boto-2.49.0-r2.ebuild +++ b/dev-python/boto/boto-2.49.0-r2.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=7 -PYTHON_COMPAT=( python3_{6,7,8} ) +PYTHON_COMPAT=( python3_{6..9} ) DISTUTILS_USE_SETUPTOOLS=bdepend inherit distutils-r1 @@ -13,22 +13,26 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" LICENSE="MIT" SLOT="0" KEYWORDS="amd64 arm arm64 ppc sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="test" - -BDEPEND=" - test? ( dev-python/nose[${PYTHON_USEDEP}] ) -" - -RESTRICT="!test? ( test )" - -# requires Amazon Web Services keys to pass some tests -RESTRICT+=" test" PATCHES=( # taken from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=909545 "${FILESDIR}/boto-try-to-add-SNI-support-v2.patch" + "${FILESDIR}"/${P}-py38.patch ) +distutils_enable_tests nose + +src_prepare() { + # broken, not worth fixing + rm tests/unit/cloudfront/test_signed_urls.py || die + # fix tests + mkdir -p "${HOME}"/.ssh || die + : > "${HOME}"/.ssh/known_hosts || die + + distutils-r1_src_prepare +} + python_test() { - "${PYTHON}" tests/test.py -v || die "Tests fail with ${EPYTHON}" + nosetests -v tests/unit || + die "Tests fail with ${EPYTHON}" } diff --git a/dev-python/boto/files/boto-2.49.0-py38.patch b/dev-python/boto/files/boto-2.49.0-py38.patch new file mode 100644 index 00000000000..0052c6e32e8 --- /dev/null +++ b/dev-python/boto/files/boto-2.49.0-py38.patch @@ -0,0 +1,54 @@ +diff --git a/boto/ecs/item.py b/boto/ecs/item.py +index 79177a31..292b05af 100644 +--- a/boto/ecs/item.py ++++ b/boto/ecs/item.py +@@ -21,7 +21,7 @@ + + + import xml.sax +-import cgi ++import html + from boto.compat import six, StringIO + + class ResponseGroup(xml.sax.ContentHandler): +@@ -67,7 +67,7 @@ class ResponseGroup(xml.sax.ContentHandler): + return None + + def endElement(self, name, value, connection): +- self._xml.write("%s</%s>" % (cgi.escape(value).replace("&amp;", "&"), name)) ++ self._xml.write("%s</%s>" % (html.escape(value).replace("&amp;", "&"), name)) + if len(self._nodepath) == 0: + return + obj = None +diff --git a/tests/unit/utils/test_utils.py b/tests/unit/utils/test_utils.py +index db15b56d..89d1a524 100644 +--- a/tests/unit/utils/test_utils.py ++++ b/tests/unit/utils/test_utils.py +@@ -85,7 +85,7 @@ class TestPassword(unittest.TestCase): + def hmac_hashfunc(cls, msg): + if not isinstance(msg, bytes): + msg = msg.encode('utf-8') +- return hmac.new(b'mysecretkey', msg) ++ return hmac.new(b'mysecretkey', msg, digestmod='MD5') + + class HMACPassword(Password): + hashfunc = hmac_hashfunc +@@ -95,15 +95,15 @@ class TestPassword(unittest.TestCase): + password.set('foo') + + self.assertEquals(str(password), +- hmac.new(b'mysecretkey', b'foo').hexdigest()) ++ hmac.new(b'mysecretkey', b'foo', digestmod='MD5').hexdigest()) + + def test_constructor(self): +- hmac_hashfunc = lambda msg: hmac.new(b'mysecretkey', msg) ++ hmac_hashfunc = lambda msg: hmac.new(b'mysecretkey', msg, digestmod='MD5') + + password = Password(hashfunc=hmac_hashfunc) + password.set('foo') + self.assertEquals(password.str, +- hmac.new(b'mysecretkey', b'foo').hexdigest()) ++ hmac.new(b'mysecretkey', b'foo', digestmod='MD5').hexdigest()) + + + class TestPythonizeName(unittest.TestCase):