commit:     b7eedbb8cc180e0f9f54653582fe6ca86d25a794
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue May 17 04:57:36 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue May 17 06:54:15 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b7eedbb8

dev-python/paramiko: Bump to 2.11.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/paramiko/Manifest                       |  1 +
 .../files/paramiko-2.11.0-invoke-tests.patch       | 40 +++++++++
 .../files/paramiko-2.11.0-pytest-relaxed.patch     | 94 ++++++++++++++++++++++
 dev-python/paramiko/paramiko-2.11.0.ebuild         | 63 +++++++++++++++
 4 files changed, 198 insertions(+)

diff --git a/dev-python/paramiko/Manifest b/dev-python/paramiko/Manifest
index cda2918825b1..bf23678bc41d 100644
--- a/dev-python/paramiko/Manifest
+++ b/dev-python/paramiko/Manifest
@@ -1,2 +1,3 @@
 DIST paramiko-2.10.3.tar.gz 347738 BLAKE2B 
ccc66a7e0fe3f777e74b94374ed59435eda440fe0aeab3871e68a132610193d2fadca1fd200db3d194566b8a2a8d6ff889d71594fed69a01fb97ca43b967e957
 SHA512 
e1fce2ad33ee2942b519458d53497671e66d4777c23877954b135cf9bb8ec43357156147c7e012956ccf6198de800835a617b541a4b0faf54df00f936128514b
 DIST paramiko-2.10.4.tar.gz 348637 BLAKE2B 
8ce0d34418b6a1dc1d98fc180d2b2f0fb4333b7e1c52fcf7edabc3b0fc096f1b644dbc21a5b37f9001f046969c3d513ad5f6d7261339a71fa3ec922161cd7be7
 SHA512 
df39958e647dd6519929f68c4870228a61f54e763751e6b1d07b5e802786c85dfc34af39588009e729c4d189ca17d3aa09a58d4242403a1a1a53d36f6cd313b1
+DIST paramiko-2.11.0.tar.gz 350793 BLAKE2B 
86358e08407f8a820a9b33a60e771ac3adb8f3e003ccbc4704ba69a52bd427f38a9c49a20e6a07220d07c25dbcc35a472b2091fa9f7bc1447bab0d7a1ce16b35
 SHA512 
59e439bd54d83938f91d6c9888f2278bafa4ca48582939580bdabc6207dbe6dc856f6006ad26b7ec91b9d39e92ca70dc6270c6b5d4f77a5e1fa0ec8bd084d4b5

diff --git a/dev-python/paramiko/files/paramiko-2.11.0-invoke-tests.patch 
b/dev-python/paramiko/files/paramiko-2.11.0-invoke-tests.patch
new file mode 100644
index 000000000000..80fe876ef8e3
--- /dev/null
+++ b/dev-python/paramiko/files/paramiko-2.11.0-invoke-tests.patch
@@ -0,0 +1,40 @@
+From 529558cc20e448e45e24dc7b7609cd62300838b8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <[email protected]>
+Date: Thu, 16 Apr 2020 09:46:39 +0200
+Subject: [PATCH] Skip tests requiring invoke if it's not installed
+
+Since invoke is an optional dependency and only one group of tests
+require it, skip them gracefully rather than failing if it's not
+present.
+---
+ tests/test_config.py | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/tests/test_config.py b/tests/test_config.py
+index 45fb262d..017d4bbf 100644
+--- a/tests/test_config.py
++++ b/tests/test_config.py
+@@ -6,7 +6,11 @@ from socket import gaierror
+ 
+ from paramiko.py3compat import string_types
+ 
+-from invoke import Result
++try:
++    from invoke import Result
++except ImportError:
++    Result = None
++
+ from mock import patch
+ from pytest import raises, mark, fixture
+ 
+@@ -742,6 +746,7 @@ def _expect(success_on):
+     return inner
+ 
+ 
[email protected](Result is None, reason="requires invoke package")
+ class TestMatchExec(object):
+     @patch("paramiko.config.invoke", new=None)
+     @patch("paramiko.config.invoke_import_error", new=ImportError("meh"))
+-- 
+2.35.1
+

diff --git a/dev-python/paramiko/files/paramiko-2.11.0-pytest-relaxed.patch 
b/dev-python/paramiko/files/paramiko-2.11.0-pytest-relaxed.patch
new file mode 100644
index 000000000000..6e746aff1863
--- /dev/null
+++ b/dev-python/paramiko/files/paramiko-2.11.0-pytest-relaxed.patch
@@ -0,0 +1,94 @@
+From 03741e48c83856e53fc3f1487d660165cb718c11 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <[email protected]>
+Date: Tue, 17 May 2022 07:26:36 +0200
+Subject: [PATCH] Replace pytest-relaxed with plain pytest.raises
+
+There is really no technical reason to bring pytest-relaxed to call
+@raises as a decorator while plain pytest works just fine.  Plus,
+pytest.raises() is used in test_sftp already.
+
+pytest-relaxed causes humongous breakage to other packages
+on the system.  It has been banned from Gentoo for this reason.
+---
+ dev-requirements.txt |  1 -
+ pytest.ini           |  3 ---
+ tests/test_client.py | 20 ++++++++++----------
+ 3 files changed, 10 insertions(+), 14 deletions(-)
+
+diff --git a/dev-requirements.txt b/dev-requirements.txt
+index 3ed9eb40..e90f3373 100644
+--- a/dev-requirements.txt
++++ b/dev-requirements.txt
+@@ -2,7 +2,6 @@
+ invoke==1.6.0
+ invocations==2.6.0
+ pytest==4.4.2
+-pytest-relaxed==1.1.5
+ # pytest-xdist for test dir watching and the inv guard task
+ pytest-xdist==1.28.0
+ mock==2.0.0
+diff --git a/pytest.ini b/pytest.ini
+index be207cd8..5a506bcd 100644
+--- a/pytest.ini
++++ b/pytest.ini
+@@ -1,7 +1,4 @@
+ [pytest]
+-# We use pytest-relaxed just for its utils at the moment, so disable it at the
+-# plugin level until we adapt test organization to really use it.
+-addopts = -p no:relaxed
+ # Loop on failure
+ looponfailroots = tests paramiko
+ # Ignore some warnings we cannot easily handle.
+diff --git a/tests/test_client.py b/tests/test_client.py
+index fdf19c45..e4af71df 100644
+--- a/tests/test_client.py
++++ b/tests/test_client.py
+@@ -33,7 +33,7 @@ import warnings
+ import weakref
+ from tempfile import mkstemp
+ 
+-from pytest_relaxed import raises
++import pytest
+ from mock import patch, Mock
+ 
+ import paramiko
+@@ -733,11 +733,11 @@ class PasswordPassphraseTests(ClientTest):
+ 
+     # TODO: more granular exception pending #387; should be signaling "no auth
+     # methods available" because no key and no password
+-    @raises(SSHException)
+     @requires_sha1_signing
+     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 pytest.raises(SSHException):
++            # Using the "right" password in the "wrong" field shouldn't work.
++            self._test_connection(passphrase="pygmalion")
+ 
+     @requires_sha1_signing
+     def test_passphrase_kwarg_used_for_key_passphrase(self):
+@@ -757,15 +757,15 @@ class PasswordPassphraseTests(ClientTest):
+             password="television",
+         )
+ 
+-    @raises(AuthenticationException)  # TODO: more granular
+     @requires_sha1_signing
+     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 pytest.raises(AuthenticationException):
++            self._test_connection(
++                key_filename=_support("test_rsa_password.key"),
++                password="television",
++                passphrase="wat? lol no",
++            )
+-- 
+2.35.1
+

diff --git a/dev-python/paramiko/paramiko-2.11.0.ebuild 
b/dev-python/paramiko/paramiko-2.11.0.ebuild
new file mode 100644
index 000000000000..846177cc6874
--- /dev/null
+++ b/dev-python/paramiko/paramiko-2.11.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8..11} )
+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/
+"
+SRC_URI="
+       https://github.com/paramiko/paramiko/archive/${PV}.tar.gz
+               -> ${P}.tar.gz
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 
~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris"
+IUSE="examples server"
+
+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}]
+       dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+       test? (
+               dev-python/mock[${PYTHON_USEDEP}]
+       )
+"
+
+distutils_enable_sphinx sites/docs
+distutils_enable_tests pytest
+
+src_prepare() {
+       local PATCHES=(
+               "${FILESDIR}/${PN}-2.11.0-pytest-relaxed.patch"
+               "${FILESDIR}/${PN}-2.11.0-invoke-tests.patch"
+       )
+
+       if ! use server; then
+               PATCHES+=( "${FILESDIR}/${PN}-2.4.2-disable-server.patch" )
+       fi
+       distutils-r1_src_prepare
+}
+
+python_install_all() {
+       distutils-r1_python_install_all
+
+       if use examples; then
+               docinto examples
+               dodoc -r demos/*
+       fi
+}

Reply via email to