[Python-checkins] cpython (merge 3.2 -> default): Merge #15269: document dircmp.left and right, and add tests for them.

r.david.murray python-checkins at python.org
Wed Aug 15 03:51:25 CEST 2012


http://hg.python.org/cpython/rev/c592e5a8fa4f
changeset:   78581:c592e5a8fa4f
parent:      78579:ba9b35fb9c40
parent:      78580:7590dec388a7
user:        R David Murray <rdmurray at bitdance.com>
date:        Tue Aug 14 21:45:25 2012 -0400
summary:
  Merge #15269: document dircmp.left and right, and add tests for them.

Patch by Chris Jerdonek.

files:
  Doc/library/filecmp.rst  |  25 +++++++++++++++++++++++++
  Lib/test/test_filecmp.py |  10 ++++++++--
  2 files changed, 33 insertions(+), 2 deletions(-)


diff --git a/Doc/library/filecmp.rst b/Doc/library/filecmp.rst
--- a/Doc/library/filecmp.rst
+++ b/Doc/library/filecmp.rst
@@ -91,6 +91,16 @@
    to compute are used.
 
 
+   .. attribute:: left
+
+      The directory *a*.
+
+
+   .. attribute:: right
+
+      The directory *b*.
+
+
    .. attribute:: left_list
 
       Files and subdirectories in *a*, filtered by *hide* and *ignore*.
@@ -154,3 +164,18 @@
       A dictionary mapping names in :attr:`common_dirs` to :class:`dircmp`
       objects.
 
+
+Here is a simplified example of using the ``subdirs`` attribute to search
+recursively through two directories to show common different files::
+
+    >>> from filecmp import dircmp
+    >>> def print_diff_files(dcmp):
+    ...     for name in dcmp.diff_files:
+    ...         print("diff_file %s found in %s and %s" % (name, dcmp.left,
+    ...               dcmp.right))
+    ...     for sub_dcmp in dcmp.subdirs.values():
+    ...         print_diff_files(sub_dcmp)
+    ...
+    >>> dcmp = dircmp('dir1', 'dir2')
+    >>> print_diff_files(dcmp)
+
diff --git a/Lib/test/test_filecmp.py b/Lib/test/test_filecmp.py
--- a/Lib/test/test_filecmp.py
+++ b/Lib/test/test_filecmp.py
@@ -98,7 +98,10 @@
 
     def test_dircmp(self):
         # Check attributes for comparison of two identical directories
-        d = filecmp.dircmp(self.dir, self.dir_same)
+        left_dir, right_dir = self.dir, self.dir_same
+        d = filecmp.dircmp(left_dir, right_dir)
+        self.assertEqual(d.left, left_dir)
+        self.assertEqual(d.right, right_dir)
         if self.caseinsensitive:
             self.assertEqual([d.left_list, d.right_list],[['file'], ['FiLe']])
         else:
@@ -109,7 +112,10 @@
         self.assertEqual(d.diff_files, [])
 
         # Check attributes for comparison of two different directories
-        d = filecmp.dircmp(self.dir, self.dir_diff)
+        left_dir, right_dir = self.dir, self.dir_diff
+        d = filecmp.dircmp(left_dir, right_dir)
+        self.assertEqual(d.left, left_dir)
+        self.assertEqual(d.right, right_dir)
         self.assertEqual(d.left_list, ['file'])
         self.assertTrue(d.right_list == ['file', 'file2'])
         self.assertEqual(d.common, ['file'])

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list