From ba702daef9a8ac03d2d2fea4b1764d38b8debbd9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Langa?= <lukasz@langa.pl>
Date: Thu, 28 Apr 2011 12:02:05 +0200
Subject: [PATCH] Style updates for the #11670 solution after post-commit
 review by Ezio Melotti:

http://mail.python.org/pipermail/python-checkins/2011-April/104688.html

Thanks!
---
 Doc/library/configparser.rst | 40 +++++++++++++++---------------------
 Lib/test/test_cfgparser.py   | 14 ++++++-------
 2 files changed, 24 insertions(+), 30 deletions(-)

diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst
index 49e348f82bc..1a88bbd2d53 100644
--- a/Doc/library/configparser.rst
+++ b/Doc/library/configparser.rst
@@ -975,7 +975,7 @@ ConfigParser Objects
    .. method:: read_file(f, source=None)
 
       Read and parse configuration data from *f* which must be an iterable
-      yielding Unicode strings (for example any file object).
+      yielding Unicode strings (for example files opened in text mode).
 
       Optional argument *source* specifies the name of the file being read.  If
       not given and *f* has a :attr:`name` attribute, that is used for
@@ -984,28 +984,6 @@ ConfigParser Objects
       .. versionadded:: 3.2
          Replaces :meth:`readfp`.
 
-      .. note::
-
-         Prior to Python 3.2, :meth:`readfp` consumed lines from the file-like
-         argument by calling its :meth:`~file.readline` method. For existing code
-         calling :meth:`readfp` with arguments which don't support iteration,
-         the following generator may be used as a wrapper around the file-like
-         object::
-
-             def readline_generator(f):
-                 line = f.readline()
-                 while line != '':
-                     yield line
-                     line = f.readline()
-
-         Before::
-
-             parser.readfp(f)
-
-         After::
-
-             parser.read_file(readline_generator(f))
-
    .. method:: read_string(string, source='<string>')
 
       Parse configuration data from a string.
@@ -1142,6 +1120,22 @@ ConfigParser Objects
       .. deprecated:: 3.2
          Use :meth:`read_file` instead.
 
+      .. versionchanged:: 3.2
+         :meth:`readfp` now iterates on *f* instead of calling ``f.readline()``.
+
+      For existing code calling :meth:`readfp` with arguments which don't
+      support iteration, the following generator may be used as a wrapper
+      around the file-like object::
+
+         def readline_generator(f):
+             line = f.readline()
+             while line:
+                 yield line
+                 line = f.readline()
+
+      Instead of ``parser.readfp(f)`` use
+      ``parser.read_file(readline_generator(f))``.
+
 
 .. data:: MAX_INTERPOLATION_DEPTH
 
diff --git a/Lib/test/test_cfgparser.py b/Lib/test/test_cfgparser.py
index 03e400df29f..299f37a107d 100644
--- a/Lib/test/test_cfgparser.py
+++ b/Lib/test/test_cfgparser.py
@@ -1316,7 +1316,7 @@ class FakeFile:
 def readline_generator(f):
     """As advised in Doc/library/configparser.rst."""
     line = f.readline()
-    while line != '':
+    while line:
         yield line
         line = f.readline()
 
@@ -1327,8 +1327,8 @@ class ReadFileTestCase(unittest.TestCase):
         parser = configparser.ConfigParser()
         with open(file_path) as f:
             parser.read_file(f)
-        self.assertTrue("Foo Bar" in parser)
-        self.assertTrue("foo" in parser["Foo Bar"])
+        self.assertIn("Foo Bar", parser)
+        self.assertIn("foo", parser["Foo Bar"])
         self.assertEqual(parser["Foo Bar"]["foo"], "newbar")
 
     def test_iterable(self):
@@ -1337,8 +1337,8 @@ class ReadFileTestCase(unittest.TestCase):
         foo=newbar""").strip().split('\n')
         parser = configparser.ConfigParser()
         parser.read_file(lines)
-        self.assertTrue("Foo Bar" in parser)
-        self.assertTrue("foo" in parser["Foo Bar"])
+        self.assertIn("Foo Bar", parser)
+        self.assertIn("foo", parser["Foo Bar"])
         self.assertEqual(parser["Foo Bar"]["foo"], "newbar")
 
     def test_readline_generator(self):
@@ -1347,8 +1347,8 @@ class ReadFileTestCase(unittest.TestCase):
         with self.assertRaises(TypeError):
             parser.read_file(FakeFile())
         parser.read_file(readline_generator(FakeFile()))
-        self.assertTrue("Foo Bar" in parser)
-        self.assertTrue("foo" in parser["Foo Bar"])
+        self.assertIn("Foo Bar", parser)
+        self.assertIn("foo", parser["Foo Bar"])
         self.assertEqual(parser["Foo Bar"]["foo"], "newbar")
 
 
-- 
2.30.9