summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2012-08-15 01:45:25 (GMT)
committerR David Murray <rdmurray@bitdance.com>2012-08-15 01:45:25 (GMT)
commit7f848337263e5a703e3e15b5f6d123d3fde2b221 (patch)
tree7c2a5a8be1751e694617ac75d90ca63662dab62a
parent488cc36123dc57bbb261f97592ec89d02e019f9a (diff)
parent2b209cd78d5a36d63b00d0a4350b78aec7bc820b (diff)
downloadcpython-7f848337263e5a703e3e15b5f6d123d3fde2b221.zip
cpython-7f848337263e5a703e3e15b5f6d123d3fde2b221.tar.gz
cpython-7f848337263e5a703e3e15b5f6d123d3fde2b221.tar.bz2
Merge #15269: document dircmp.left and right, and add tests for them.
Patch by Chris Jerdonek.
-rw-r--r--Doc/library/filecmp.rst25
-rw-r--r--Lib/test/test_filecmp.py10
2 files changed, 33 insertions, 2 deletions
diff --git a/Doc/library/filecmp.rst b/Doc/library/filecmp.rst
index 16dd100..add68a3 100644
--- a/Doc/library/filecmp.rst
+++ b/Doc/library/filecmp.rst
@@ -91,6 +91,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*.
@@ -154,3 +164,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)
+
diff --git a/Lib/test/test_filecmp.py b/Lib/test/test_filecmp.py
index 9b5725d..0959979 100644
--- a/Lib/test/test_filecmp.py
+++ b/Lib/test/test_filecmp.py
@@ -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'])