summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/urllib3/urllib3-1.16.ebuild')
-rw-r--r--dev-python/urllib3/urllib3-1.16.ebuild114
1 files changed, 114 insertions, 0 deletions
diff --git a/dev-python/urllib3/urllib3-1.16.ebuild b/dev-python/urllib3/urllib3-1.16.ebuild
new file mode 100644
index 000000000000..d86a98aa4341
--- /dev/null
+++ b/dev-python/urllib3/urllib3-1.16.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_{3,4,5} pypy )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more"
+HOMEPAGE="https://github.com/shazow/urllib3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-fbsd ~x86-linux"
+IUSE="doc test"
+
+RDEPEND="
+ dev-python/PySocks[${PYTHON_USEDEP}]
+ dev-python/certifi[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.14[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/backports-ssl-match-hostname[${PYTHON_USEDEP}]' python2_7 pypy)
+ $(python_gen_cond_dep 'dev-python/ndg-httpsclient[${PYTHON_USEDEP}]' python2_7 pypy)
+ $(python_gen_cond_dep 'dev-python/pyasn1[${PYTHON_USEDEP}]' python2_7 pypy)
+ "
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ >=www-servers/tornado-4.2.1[$(python_gen_usedep 'python*')]
+ >=dev-python/mock-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.3.7[${PYTHON_USEDEP}]
+ >=dev-python/nose-exclude-0.4.1[${PYTHON_USEDEP}]
+ )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ "
+
+# Testsuite written requiring mock to be installed under all Cpythons
+
+PATCHES=( "${FILESDIR}"/${PN}-1.16.0-unbundle.patch )
+
+python_prepare_all() {
+ # Replace bundled copy of dev-python/six
+ cat > urllib3/packages/six.py <<-EOF
+ from __future__ import absolute_import
+ from six import *
+ EOF
+
+ rm -r urllib3/packages/ssl_match_hostname || die
+ cat > urllib3/packages/ssl_match_hostname.py <<- EOF
+ from __future__ import absolute_import
+ try:
+ from backports.ssl_match_hostname import CertificateError, match_hostname
+ except ImportError:
+ from ssl import CertificateError, match_hostname
+ EOF
+
+ cat > urllib3/packages/ordered_dict.py <<- EOF
+ from __future__ import absolute_import
+ from collections import OrderedDict
+ EOF
+
+ sed \
+ -e 's:\.packages\.six:six:g' \
+ -e 's:\.six:six:g' \
+ -i urllib3/util/response.py urllib3/response.py || die
+
+ sed -i '/cover-min-percentage/d' setup.cfg || die
+ # Fix tests
+ sed -i 's/urllib3.packages.six/six/' test/test_retry.py || die
+
+ # Reset source of objects.inv
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed \
+ -e "s|'python': ('http://docs.python.org/2.7', None|'${PYTHON_DOC}': ('${PYTHON_DOC_INVENTORY}'|" \
+ -i docs/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # Failures still occur under py2.7.
+ # https://github.com/shazow/urllib3/issues/621
+
+ [[ "${EPYTHON}" == pypy ]] && return
+
+ nosetests -v \
+ --exclude test_headerdict \
+ --exclude test_headers \
+ --exclude test_source_address_error \
+ --exclude test_no_ssl \
+ --exclude test_ca_dir_verified \
+ --exclude test_verified \
+ test || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}