#6623: Add explicit deprecation warning for ftplib.Netrc.
diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index 6aecd28..8d99158 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -39,6 +39,7 @@
import os
import sys
import socket
+import warnings
from socket import _GLOBAL_DEFAULT_TIMEOUT
__all__ = ["FTP","Netrc"]
@@ -953,6 +954,8 @@
__defacct = None
def __init__(self, filename=None):
+ warnings.warn("This class is deprecated, use the netrc module instead",
+ DeprecationWarning, 2)
if filename is None:
if "HOME" in os.environ:
filename = os.path.join(os.environ["HOME"],
diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
index 4dfc457..2e89973 100644
--- a/Lib/test/test_ftplib.py
+++ b/Lib/test/test_ftplib.py
@@ -985,8 +985,19 @@
ftp.close()
+class TestNetrcDeprecation(TestCase):
+
+ def test_deprecation(self):
+ with support.temp_cwd(), support.EnvironmentVarGuard() as env:
+ env['HOME'] = os.getcwd()
+ open('.netrc', 'w').close()
+ with self.assertWarns(DeprecationWarning):
+ ftplib.Netrc()
+
+
+
def test_main():
- tests = [TestFTPClass, TestTimeouts]
+ tests = [TestFTPClass, TestTimeouts, TestNetrcDeprecation]
if support.IPV6_ENABLED:
tests.append(TestIPv6Environment)
diff --git a/Misc/NEWS b/Misc/NEWS
index d702ed1..ac29b18 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -260,6 +260,9 @@
Library
-------
+- Issue #6623: Added explicit DeprecationWarning for ftplib.netrc, which has
+ been deprecated and undocumented for a long time.
+
- Issue #13700: Fix byte/string handling in imaplib authentication when an
authobject is specified.