#15269: document dircmp.left and right, and add tests for them.
authorR David Murray <rdmurray@bitdance.com>
Wed, 15 Aug 2012 01:40:13 +0000 (21:40 -0400)
committerR David Murray <rdmurray@bitdance.com>
Wed, 15 Aug 2012 01:40:13 +0000 (21:40 -0400)
Patch by Chris Jerdonek.

Doc/library/filecmp.rst
Lib/test/test_filecmp.py

index f84cfa9a2da076085dcb72466d448da8533fef57..de20fb134a14e99338b096439ca10a472803c888 100644 (file)
@@ -106,6 +106,16 @@ The :class:`dircmp` class
    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*.
@@ -169,3 +179,18 @@ The :class:`dircmp` class
       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)
+
index 9b5725d02319cac2ce50033caa963c77e456896d..09599794ad9d178f33ad44f8fd87f514cba4aefe 100644 (file)
@@ -98,7 +98,10 @@ class DirCompareTestCase(unittest.TestCase):
 
     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 @@ class DirCompareTestCase(unittest.TestCase):
         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'])