- Delete paramiko-pr1665-remove-pytest-relaxed.patch

- Add remove-icecream-dep.patch
- Update to 3.1.0:
  * [Feature] #2173: Accept single tabs as field separators (in
    addition to single spaces) in
    <paramiko.hostkeys.HostKeyEntry.from_line> for parity with
    OpenSSH’s KnownHosts parser. Patched by Alex Chavkin.
  * [Feature] #2013: (solving #2009, plus others) Add an explicit
    channel_timeout keyword argument to
    paramiko.client.SSHClient.connect, allowing users to configure the
    previously-hardcoded default value of 3600 seconds. Thanks to
    @VakarisZ and @ilija-lazoroski for the report and patch, with
    credit to Mike Salvatore for patch review.
  * [Support] #2178: Apply codespell to the codebase, which found a
    lot of very old minor spelling mistakes in docstrings. Also
    modernize many instances of *largs vs *args and **kwarg vs
    **kwargs. Patch courtesy of Yaroslav Halchenko, with review from
    Brian Skinn.
- 3.0.0:
  * [Bug]: A handful of lower-level classes (notably
    paramiko.message.Message and paramiko.pkey.PKey) previously
    returned bytes objects from their implementation of __str__, even
    under Python 3; and there was never any __bytes__ method.
  * These issues have been fixed by renaming __str__ to __bytes__ and
    relying on Python’s default “stringification returns the output of
    __repr__” behavior re: any real attempts to str() such objects.
  * [Bug] #2165: Streamline some redundant (and costly) byte
    conversion calls in the packetizer and the core SFTP module. This
    should lead to some SFTP speedups at the very least. Thanks to
    Alex Gaynor for the patch.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-paramiko?expand=0&rev=112
This commit is contained in:
Daniel Garcia 2023-05-12 09:31:22 +00:00 committed by Git OBS Bridge
parent d189e738cb
commit 0b8f87a515
6 changed files with 102 additions and 83 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:376885c05c5d6aa6e1f4608aac2a6b5b0548b1add40274477324605903d9cd49
size 1076369

3
paramiko-3.1.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6950faca6819acd3219d4ae694a23c7a87ee38d084f70c1724b0c0dbb8b75769
size 1189515

View File

@ -1,66 +0,0 @@
From 5844aa0270d3ad8feab4bf1023e35aa4fc255b6c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Thu, 16 Apr 2020 09:22:59 +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 - (removed from patch=
setup.cfg | 3 ---
tests/test_client.py | 20 ++++++++++----------
3 files changed, 10 insertions(+), 14 deletions(-)
Index: paramiko-2.12.0/tests/test_client.py
===================================================================
--- paramiko-2.12.0.orig/tests/test_client.py
+++ paramiko-2.12.0/tests/test_client.py
@@ -34,7 +34,6 @@ import weakref
from tempfile import mkstemp
import pytest
-from pytest_relaxed import raises
from mock import patch, Mock
import paramiko
@@ -787,11 +786,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):
@@ -811,15 +810,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",
+ )

View File

@ -1,3 +1,72 @@
-------------------------------------------------------------------
Fri May 12 09:27:30 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
- Delete paramiko-pr1665-remove-pytest-relaxed.patch
- Add remove-icecream-dep.patch
- Update to 3.1.0:
* [Feature] #2173: Accept single tabs as field separators (in
addition to single spaces) in
<paramiko.hostkeys.HostKeyEntry.from_line> for parity with
OpenSSHs KnownHosts parser. Patched by Alex Chavkin.
* [Feature] #2013: (solving #2009, plus others) Add an explicit
channel_timeout keyword argument to
paramiko.client.SSHClient.connect, allowing users to configure the
previously-hardcoded default value of 3600 seconds. Thanks to
@VakarisZ and @ilija-lazoroski for the report and patch, with
credit to Mike Salvatore for patch review.
* [Support] #2178: Apply codespell to the codebase, which found a
lot of very old minor spelling mistakes in docstrings. Also
modernize many instances of *largs vs *args and **kwarg vs
**kwargs. Patch courtesy of Yaroslav Halchenko, with review from
Brian Skinn.
- 3.0.0:
* [Bug]: A handful of lower-level classes (notably
paramiko.message.Message and paramiko.pkey.PKey) previously
returned bytes objects from their implementation of __str__, even
under Python 3; and there was never any __bytes__ method.
* These issues have been fixed by renaming __str__ to __bytes__ and
relying on Pythons default “stringification returns the output of
__repr__” behavior re: any real attempts to str() such objects.
* [Bug] #2165: Streamline some redundant (and costly) byte
conversion calls in the packetizer and the core SFTP module. This
should lead to some SFTP speedups at the very least. Thanks to
Alex Gaynor for the patch.
* [Bug] #2110: Remove some unnecessary __repr__ calls when handling
bytes-vs-str conversions. This was apparently doing a lot of
unintentional data processing, which adds up in some use cases
such as SFTP transfers, which may now be significantly faster.
Kudos to Shuhua Zhong for catch & patch.
* [Support]: Drop support for Python versions less than 3.6,
including Python 2. So long and thanks for all the fish!
* [Support]: Remove the now irrelevant paramiko.py3compat module.
* [Support]: paramiko.common.asbytes has been moved to
paramiko.util.asbytes.
* [Support]: PKey.__cmp__ has been removed. Ordering-oriented
comparison of key files is unlikely to have ever made sense (the
old implementation attempted to order by the hashes of the key
material) and so we have not bothered setting up __lt__ and
friends at this time. The class continues to have its original
__eq__ untouched.
* [Support]: The behavior of private key classes (ie anything
inheriting from PKey) private key writing methods used to perform
a manual, extra chmod call after writing. This hasnt been
strictly necessary since the mid 2.x release line (when key
writing started giving the mode argument to os.open), and has now
been removed entirely.
* This should only be observable if you were mocking Paramikos
system calls during your own testing, or similar.
* [Support] #732: (also re: #630) SSHConfig used to straight-up
delete the proxycommand key from config lookup results when the
source config said ProxyCommand none. This has been altered to
preserve the key and give it the Python value None, thus making
the Python representation more in line with the source config
file.
* [Support]: paramiko.util.retry_on_signal (and any internal uses of
same, and also any internal retries of EINTR on eg socket
operations) has been removed. As of Python 3.5, per PEP 475, this
functionality (and retrying EINTR generally) is now part of the
standard library.
-------------------------------------------------------------------
Sun Apr 23 23:16:46 UTC 2023 - Matej Cepl <mcepl@suse.com>

View File

@ -19,7 +19,7 @@
%define skip_python2 1
%{?sle15_python_module_pythons}
Name: python-paramiko
Version: 2.12.0
Version: 3.1.0
Release: 0
Summary: SSH2 protocol library
License: LGPL-2.1-or-later
@ -27,33 +27,32 @@ Group: Documentation/Other
URL: https://www.paramiko.org/
Source0: https://files.pythonhosted.org/packages/source/p/paramiko/paramiko-%{version}.tar.gz
Patch0: paramiko-test_extend_timeout.patch
# PATCH-FIX-UPSTREAM paramiko-pr1665-remove-pytest-relaxed.patch gh#paramiko/paramiko#1665 -- pytest-relaxed is broken
Patch1: paramiko-pr1665-remove-pytest-relaxed.patch
# PATCH-FIX-OPENSUSE remove-icecream-dep.patch to do not depend on python-icecream
Patch1: remove-icecream-dep.patch
BuildRequires: %{python_module PyNaCl >= 1.0.1}
%if 0%{?suse_version} > 1500
BuildRequires: python3-Sphinx
%else
BuildRequires: %{python_module Sphinx}
%endif
BuildRequires: %{python_module bcrypt >= 3.1.3}
BuildRequires: %{python_module cryptography >= 2.5}
BuildRequires: %{python_module bcrypt >= 3.2}
BuildRequires: %{python_module cryptography >= 3.3}
BuildRequires: %{python_module gssapi}
BuildRequires: %{python_module invocations}
BuildRequires: %{python_module invoke >= 1.3}
BuildRequires: %{python_module invoke >= 2.0}
BuildRequires: %{python_module pyasn1 >= 0.1.7}
BuildRequires: %{python_module pytest-relaxed}
BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module six}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Recommends: python-gssapi
Recommends: python-invoke
Requires: python-PyNaCl >= 1.0.1
Requires: python-bcrypt >= 3.1.3
Requires: python-cryptography >= 2.5
Requires: python-PyNaCl >= 1.5
Requires: python-bcrypt >= 3.2
Requires: python-cryptography >= 3.3
Requires: python-pyasn1 >= 0.1.7
Requires: python-six
BuildArch: noarch
%python_subpackages
@ -91,10 +90,10 @@ find demos -name "*.py" -exec sed -i "/#\!\/usr\/bin\/.*/d" {} \; -exec chmod -x
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
# https://github.com/paramiko/paramiko/issues/2027 -- despite being "completed" upstream, this is not fixed yet.
sed -i 's:from mock:from unittest.mock:' tests/test_*.py
export LANG=en_US.UTF-8
%pytest
# Do not test k5shell to avoid dependency
donttest="k5shell"
%pytest tests/test_*.py -k "not $donttest"
%files %{python_files}
%license LICENSE

17
remove-icecream-dep.patch Normal file
View File

@ -0,0 +1,17 @@
Index: paramiko-3.1.0/tests/conftest.py
===================================================================
--- paramiko-3.1.0.orig/tests/conftest.py
+++ paramiko-3.1.0/tests/conftest.py
@@ -10,12 +10,6 @@ from .loop import LoopSocket
from .stub_sftp import StubServer, StubSFTPServer
from .util import _support
-from icecream import ic, install as install_ic
-
-
-install_ic()
-ic.configureOutput(includeContext=True)
-
# Perform logging by default; pytest will capture and thus hide it normally,
# presenting it on error/failure. (But also allow turning it off when doing