dev-python/future: add Python 3.7, doc, EAPI=7

Closes: https://github.com/gentoo/gentoo/pull/9597
Package-Manager: Portage-2.3.47, Repoman-2.3.10
This commit is contained in:
Louis Sautier
2018-08-21 16:39:59 +02:00
parent e981d382eb
commit 0608ebb482
3 changed files with 145 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
##Skipping tests due to connection failures on Fedora build-system
##See https://github.com/PythonCharmers/python-future/issues/165
--- a/tests/test_future/test_standard_library.orig.py 2014-11-21 12:52:03.000000000 +0100
+++ b/tests/test_future/test_standard_library.py 2015-09-02 11:37:36.808826777 +0200
@@ -318,7 +318,7 @@
import builtins
self.assertTrue(hasattr(builtins, 'tuple'))
- # @unittest.skip("ssl support has been stripped out for now ...")
+ @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...")
def test_urllib_request_ssl_redirect(self):
"""
This site redirects to https://...
@@ -332,6 +332,7 @@
# pprint(r.read().decode('utf-8'))
self.assertTrue(True)
+ @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...")
def test_moves_urllib_request_http(self):
"""
This site (python-future.org) uses plain http (as of 2014-09-23).
@@ -343,6 +343,7 @@
data = r.read()
self.assertTrue(b'</html>' in data)
+ @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...")
def test_urllib_request_http(self):
"""
This site (python-future.org) uses plain http (as of 2014-09-23).
--- a/tests/test_future/test_requests.orig.py 2014-11-21 12:52:03.000000000 +0100
+++ b/tests/test_future/test_requests.py 2015-09-02 11:39:01.509378296 +0200
@@ -57,6 +57,7 @@
This class tests whether the requests module conflicts with the
standard library import hooks, as in issue #19.
"""
+ @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...")
def test_remove_hooks_then_requests(self):
code = """
from future import standard_library
@@ -79,6 +80,7 @@
self.assertTrue(True)
+ @unittest.skip("ConnectionError: ('Connection aborted.', gaierror(-3, 'Temporary failure in name resolution'))...")
def test_requests_cm(self):
"""
Tests whether requests can be used importing standard_library modules

View File

@@ -0,0 +1,43 @@
commit ce4f015978d250718ec8dd9f50721da90a9bd18b
Author: Louis Sautier <sautier.louis@gmail.com>
Date: Mon Aug 20 12:42:29 2018 +0200
Skip int() keyword tests with Python 3.7
The first argument must be positional since
https://github.com/python/cpython/commit/2e5642422f6234fd8d0c082142b27340e588f96e
diff --git a/tests/test_future/test_int.py b/tests/test_future/test_int.py
index f1d9c5d..e306550 100644
--- a/tests/test_future/test_int.py
+++ b/tests/test_future/test_int.py
@@ -265,6 +265,9 @@ class IntTestCases(unittest.TestCase):
def test_no_args(self):
self.assertEqual(int(), 0)
+ @unittest.skipIf(sys.version_info >= (3, 7),
+ "The first parameter must be positional with Python >= 3.7"
+ )
def test_keyword_args(self):
# Test invoking int() using keyword arguments.
self.assertEqual(int(x=1.2), 1)
commit d7a3451753982d944ae0894c9e9f01d0460d03d5
Author: Louis Sautier <sautier.louis@gmail.com>
Date: Mon Aug 20 11:17:59 2018 +0200
Make test_bad_status_repr work for Python 3.7
diff --git a/tests/test_future/test_httplib.py b/tests/test_future/test_httplib.py
index 968e933..a1e2b19 100644
--- a/tests/test_future/test_httplib.py
+++ b/tests/test_future/test_httplib.py
@@ -197,7 +197,7 @@ class BasicTest(TestCase):
if not utils.PY3:
self.assertEqual(repr(exc), '''BadStatusLine("u\'\'",)''')
else:
- self.assertEqual(repr(exc), '''BadStatusLine("\'\'",)''')
+ self.assertIn(repr(exc), ('''BadStatusLine("''",)''', '''BadStatusLine("''")'''))
def test_partial_reads(self):
# if we have a length, the system knows when to close itself

View File

@@ -0,0 +1,52 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{2_7,3_{4,5,6,7}} )
inherit distutils-r1
DESCRIPTION="Easy, clean, reliable Python 2/3 compatibility"
HOMEPAGE="http://python-future.org/"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE="doc test"
BDEPEND="
dev-python/setuptools[${PYTHON_USEDEP}]
doc? (
dev-python/sphinx[${PYTHON_USEDEP}]
dev-python/sphinx-bootstrap-theme[${PYTHON_USEDEP}]
)
test? (
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
)
"
PATCHES=(
# https://github.com/PythonCharmers/python-future/issues/165
"${FILESDIR}/${P}-disable-tests-with-internet-connection.patch"
# https://github.com/PythonCharmers/python-future/pull/355
"${FILESDIR}/${P}-fix-tests-py37.patch"
)
python_prepare_all() {
sed -i "/'sphinx.ext.intersphinx'/d" docs/conf.py || die
distutils-r1_python_prepare_all
}
python_compile_all() {
if use doc; then
sphinx-build docs/ docs/_build/html || die
HTML_DOCS=( docs/_build/html/. )
fi
}
python_test() {
pytest -vv || die "Tests failed under ${EPYTHON}"
}