dev-python/paramiko: 2.7.1
authorSebastian Pipping <sping@gentoo.org>
Mon, 16 Dec 2019 16:57:17 +0000 (17:57 +0100)
committerSebastian Pipping <sping@gentoo.org>
Mon, 16 Dec 2019 17:02:09 +0000 (18:02 +0100)
Closes: https://bugs.gentoo.org/702020
Signed-off-by: Sebastian Pipping <sping@gentoo.org>
Package-Manager: Portage-2.3.81, Repoman-2.3.20

dev-python/paramiko/Manifest
dev-python/paramiko/files/paramiko-2.7.1-tests.patch [new file with mode: 0644]
dev-python/paramiko/paramiko-2.7.1.ebuild [new file with mode: 0644]

index cedc946bc4931e1edf726382844d64c24245c870..5eff383e6d9e5bf4947cbc44ced67e36e209fe5b 100644 (file)
@@ -1,2 +1,3 @@
 DIST paramiko-2.4.2.tar.gz 289126 BLAKE2B 767f81a09b32762241eed6661e520e3b3a96acfe8e6e638ea7ae180a8b6866f8f4adeae0a0146d46ecbfccbe71334c5f5c14e2d049744258ca4808ac21365185 SHA512 894c2ebfcfb35a84fe74670d0eb67022a49b7bf165f31acd929045c17509d8a2be111e8319f20513b5034efd033edc6432b2ca2e7027dc7e3c6703166a96790f
 DIST paramiko-2.6.0.tar.gz 304469 BLAKE2B cde861069c8924b2f685675266fd28600ffd24a39074e9ad5db8fd1d010c6e23ca13a2c78a79b23504dfff395b773b171e7c787119d01e3b92a2eec44ca8b40a SHA512 1ac2c3486cb786a1e4640d7b7f8628087f9b78ee247b09dbd3ac2646790da4f12cf95fc4291f27f200b63ec6c11d9ebf5a1283f88cf2de7c2eb6e6f76e892ef2
+DIST paramiko-2.7.1.tar.gz 330391 BLAKE2B 0f7a2f3b6c15a68002001d69f8402deea5421a8b1f6cf35061a8a36f4b81b7a291d7b0f0b457f32de4c4769659a2e067f0bdb6cc5dcdd0810ebf917e349e85af SHA512 2cebed2420cf9af77cb0d459b64a74adcffcdb15bd58c8fc9243855ae91f43e16706665b64ce2851f6e99e59ca6a47d7299a2aae35a4c9d01ab97b343569c4b2
diff --git a/dev-python/paramiko/files/paramiko-2.7.1-tests.patch b/dev-python/paramiko/files/paramiko-2.7.1-tests.patch
new file mode 100644 (file)
index 0000000..9c3570c
--- /dev/null
@@ -0,0 +1,62 @@
+From e3e904cc88a08e88c9051de4f5a6f1b6e78bf4a6 Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Mon, 16 Dec 2019 17:39:50 +0100
+Subject: [PATCH] Strip use of pytest-relaxed
+
+.. since it was removed from the tree due to breaking pytest.
+---
+ tests/test_client.py | 23 +++++++++++------------
+ 1 file changed, 11 insertions(+), 12 deletions(-)
+
+diff --git a/tests/test_client.py b/tests/test_client.py
+index 60ad310..22a2e40 100644
+--- a/tests/test_client.py
++++ b/tests/test_client.py
+@@ -33,7 +33,6 @@ import warnings
+ import weakref
+ from tempfile import mkstemp
+-from pytest_relaxed import raises
+ from mock import patch, Mock
+ import paramiko
+@@ -684,10 +683,10 @@ class PasswordPassphraseTests(ClientTest):
+     # TODO: more granular exception pending #387; should be signaling "no auth
+     # methods available" because no key and no password
+-    @raises(SSHException)
+     def test_passphrase_kwarg_not_used_for_password_auth(self):
+-        # Using the "right" password in the "wrong" field shouldn't work.
+-        self._test_connection(passphrase="pygmalion")
++        with self.assertRaises(SSHException):
++            # Using the "right" password in the "wrong" field shouldn't work.
++            self._test_connection(passphrase="pygmalion")
+     def test_passphrase_kwarg_used_for_key_passphrase(self):
+         # Straightforward again, with new passphrase kwarg.
+@@ -705,14 +704,14 @@ class PasswordPassphraseTests(ClientTest):
+             password="television",
+         )
+-    @raises(AuthenticationException)  # TODO: more granular
+     def test_password_kwarg_not_used_for_passphrase_when_passphrase_kwarg_given(  # noqa
+         self
+     ):
+-        # Sanity: if we're given both fields, the password field is NOT used as
+-        # a passphrase.
+-        self._test_connection(
+-            key_filename=_support("test_rsa_password.key"),
+-            password="television",
+-            passphrase="wat? lol no",
+-        )
++        with self.assertRaises(AuthenticationException):
++            # Sanity: if we're given both fields, the password field is NOT used as
++            # a passphrase.
++            self._test_connection(
++                key_filename=_support("test_rsa_password.key"),
++                password="television",
++                passphrase="wat? lol no",
++            )
+-- 
+2.23.0
+
diff --git a/dev-python/paramiko/paramiko-2.7.1.ebuild b/dev-python/paramiko/paramiko-2.7.1.ebuild
new file mode 100644 (file)
index 0000000..5587e75
--- /dev/null
@@ -0,0 +1,60 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python2_7 python3_{5,6,7,8} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="SSH2 protocol library"
+HOMEPAGE="https://www.paramiko.org/ https://github.com/paramiko/paramiko/ https://pypi.org/project/paramiko/"
+# pypi tarballs are missing test data
+#SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris"
+IUSE="examples server test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       >=dev-python/bcrypt-3.1.3[${PYTHON_USEDEP}]
+       >=dev-python/cryptography-2.5[${PYTHON_USEDEP}]
+       >=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
+       >=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+"
+BDEPEND="
+       dev-python/setuptools[${PYTHON_USEDEP}]
+       test? (
+               dev-python/mock[${PYTHON_USEDEP}]
+               dev-python/pytest[${PYTHON_USEDEP}]
+       )
+"
+
+distutils_enable_sphinx sites/docs
+
+src_prepare() {
+       eapply "${FILESDIR}"/${P}-tests.patch
+
+       if ! use server; then
+               eapply "${FILESDIR}/${PN}-2.4.2-disable-server.patch"
+       fi
+
+       eapply_user
+}
+
+python_test() {
+       py.test -v || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+       distutils-r1_python_install_all
+
+       if use examples; then
+               docinto examples
+               dodoc -r demos/*
+       fi
+}