--- /dev/null
+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
+
--- /dev/null
+# 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
+}