From 76b781754bfefe21706762442c422bac523701e4 Mon Sep 17 00:00:00 2001 From: Jeff Forcier Date: Mon, 14 Mar 2022 19:21:01 -0400 Subject: Use args, not kwargs, to retain py2 compat for now --- paramiko/pkey.py | 5 +++-- sites/www/changelog.rst | 8 ++++++++ tests/test_pkey.py | 4 ++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/paramiko/pkey.py b/paramiko/pkey.py index 67945261..797e7723 100644 --- a/paramiko/pkey.py +++ b/paramiko/pkey.py @@ -565,9 +565,10 @@ class PKey(object): # existing files, so using all 3 in both cases is fine. Ditto the use # of the 'mode' argument; it should be safe to give even for existing # files (though it will not act like a chmod in that case). - kwargs = dict(flags=os.O_WRONLY | os.O_TRUNC | os.O_CREAT, mode=o600) + # TODO 3.0: turn into kwargs again + args = [os.O_WRONLY | os.O_TRUNC | os.O_CREAT, o600] # NOTE: yea, you still gotta inform the FLO that it is in "write" mode - with os.fdopen(os.open(filename, **kwargs), mode="w") as f: + with os.fdopen(os.open(filename, *args), "w") as f: # TODO 3.0: remove the now redundant chmod os.chmod(filename, o600) self._write_private_key(f, key, format, password=password) diff --git a/sites/www/changelog.rst b/sites/www/changelog.rst index 45bacd22..d5215995 100644 --- a/sites/www/changelog.rst +++ b/sites/www/changelog.rst @@ -2,6 +2,14 @@ Changelog ========= +- :bug:`2001` Fix Python 2 compatibility breakage introduced in 2.10.1. Spotted + by Christian Hammond. + + .. warning:: + This is almost certainly the last time we will fix Python 2 related + errors! Please see `the roadmap + `_. + - :release:`2.10.1 <2022-03-11>` - :bug:`-` (`CVE-2022-24302 `_) Creation diff --git a/tests/test_pkey.py b/tests/test_pkey.py index 97b406c2..cff99aac 100644 --- a/tests/test_pkey.py +++ b/tests/test_pkey.py @@ -719,9 +719,9 @@ class KeyTest(unittest.TestCase): key.write_private_key_file(new, password=newpassword) # Expected open via os module os_.open.assert_called_once_with( - new, flags=os.O_WRONLY | os.O_CREAT | os.O_TRUNC, mode=o600 + new, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, o600 ) - os_.fdopen.assert_called_once_with(os_.open.return_value, mode="w") + os_.fdopen.assert_called_once_with(os_.open.return_value, "w") # Old chmod still around for backwards compat os_.chmod.assert_called_once_with(new, o600) assert ( -- cgit v1.2.3