Commits

Giampaolo Rodola committed 153bd8f

#11072- applying http://bugs.python.org/review/11072/show suggestions

  • Participants
  • Parent commits 5cde01c

Comments (0)

Files changed (2)

Doc/library/ftplib.rst

 .. method:: FTP.mlsd(path="", facts=[])
 
    List a directory in a standardized format by using MLSD command
-   (:rfc:`3659`). If *path* is omitted the current directory is assumed.
+   (:rfc:`3659`).  If *path* is omitted the current directory is assumed.
    *facts* is a list of strings representing the type of information desired
-   (e.g. *["type", "size", "perm"]*).  Return a generator object yielding a
-   tuple of two elements for every file found in path. First element is the
-   file name, the second one is a dictionary including a variable number of
-   "facts" depending on the server and whether *facts* argument has been
-   provided.
+   (e.g. ``["type", "size", "perm"]``).  Return a generator object yielding a
+   tuple of two elements for every file found in path.  First element is the
+   file name, the second one is a dictionary containing facts about the file
+   name.  Content of this dictionary might be limited by the *facts* argument
+   but server is not guaranteed to return all requested facts.
 
    .. versionadded:: 3.3
 
    directory).  Multiple arguments can be used to pass non-standard options to
    the ``NLST`` command.
 
-   .. deprecated:: 3.3 use :meth:`mlsd` instead
+   .. deprecated:: 3.3 use :meth:`mlsd` instead.
 
 
 .. method:: FTP.dir(argument[, ...])
    as a *callback* function as for :meth:`retrlines`; the default prints to
    ``sys.stdout``.  This method returns ``None``.
 
-   .. deprecated:: 3.3 use :meth:`mlsd` instead
+   .. deprecated:: 3.3 use :meth:`mlsd` instead.
 
 
 .. method:: FTP.rename(fromname, toname)

Lib/test/test_ftplib.py

 
         ls = list(self.client.mlsd())
         for name, facts in ls:
+            self.assertIsInstance(name, str)
+            self.assertIsInstance(facts, dict)
             self.assertTrue(name)
-            self.assertTrue('type' in facts)
-            self.assertTrue('perm' in facts)
-            self.assertTrue('unique' in facts)
+            self.assertIn('type', facts)
+            self.assertIn('perm', facts)
+            self.assertIn('unique', facts)
 
         def set_data(data):
             self.server.handler_instance.next_data = data
         # case sensitiveness
         set_data('Type=type;TyPe=perm;UNIQUE=unique; name\r\n')
         _name, facts = next(self.client.mlsd())
-        [self.assertTrue(x.islower()) for x in facts.keys()]
+        for x in facts:
+            self.assertTrue(x.islower())
         # no data (directory empty)
         set_data('')
         self.assertRaises(StopIteration, next, self.client.mlsd())