Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_filecmp.py @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| parents | bfd53dcb02ff |
| children |
| rev | line source |
|---|---|
|
59615
b93cfafcdcad
Merged revisions 78093 via svnmerge from
Georg Brandl <georg@python.org>
parents:
55593
diff
changeset
|
1 import os, filecmp, shutil, tempfile |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
2 import unittest |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
42188
diff
changeset
|
3 from test import support |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
4 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
5 class FileCompareTestCase(unittest.TestCase): |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
6 def setUp(self): |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
42188
diff
changeset
|
7 self.name = support.TESTFN |
|
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
42188
diff
changeset
|
8 self.name_same = support.TESTFN + '-same' |
|
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
42188
diff
changeset
|
9 self.name_diff = support.TESTFN + '-diff' |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
10 data = 'Contents of file go here.\n' |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
11 for name in [self.name, self.name_same, self.name_diff]: |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
12 output = open(name, 'w') |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
13 output.write(data) |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
14 output.close() |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
15 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
16 output = open(self.name_diff, 'a+') |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
17 output.write('An extra line.\n') |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
18 output.close() |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
19 self.dir = tempfile.gettempdir() |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
20 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
21 def tearDown(self): |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
22 os.unlink(self.name) |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
23 os.unlink(self.name_same) |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
24 os.unlink(self.name_diff) |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
25 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
26 def test_matching(self): |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
27 self.assertTrue(filecmp.cmp(self.name, self.name_same), |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
28 "Comparing file to itself fails") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
29 self.assertTrue(filecmp.cmp(self.name, self.name_same, shallow=False), |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
30 "Comparing file to itself fails") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
31 self.assertTrue(filecmp.cmp(self.name, self.name, shallow=False), |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
32 "Comparing file to identical file fails") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
33 self.assertTrue(filecmp.cmp(self.name, self.name), |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
34 "Comparing file to identical file fails") |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
35 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
36 def test_different(self): |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
37 self.assertFalse(filecmp.cmp(self.name, self.name_diff), |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
38 "Mismatched files compare as equal") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
39 self.assertFalse(filecmp.cmp(self.name, self.dir), |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
40 "File and directory compare as equal") |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
41 |
|
84124
bfd53dcb02ff
Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache.
Ned Deily <nad@acm.org>
parents:
81449
diff
changeset
|
42 def test_cache_clear(self): |
|
bfd53dcb02ff
Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache.
Ned Deily <nad@acm.org>
parents:
81449
diff
changeset
|
43 first_compare = filecmp.cmp(self.name, self.name_same, shallow=False) |
|
bfd53dcb02ff
Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache.
Ned Deily <nad@acm.org>
parents:
81449
diff
changeset
|
44 second_compare = filecmp.cmp(self.name, self.name_diff, shallow=False) |
|
bfd53dcb02ff
Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache.
Ned Deily <nad@acm.org>
parents:
81449
diff
changeset
|
45 filecmp.clear_cache() |
|
bfd53dcb02ff
Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache.
Ned Deily <nad@acm.org>
parents:
81449
diff
changeset
|
46 self.assertTrue(len(filecmp._cache) == 0, |
|
bfd53dcb02ff
Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache.
Ned Deily <nad@acm.org>
parents:
81449
diff
changeset
|
47 "Cache not cleared after calling clear_cache") |
|
bfd53dcb02ff
Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache.
Ned Deily <nad@acm.org>
parents:
81449
diff
changeset
|
48 |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
49 class DirCompareTestCase(unittest.TestCase): |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
50 def setUp(self): |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
51 tmpdir = tempfile.gettempdir() |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
52 self.dir = os.path.join(tmpdir, 'dir') |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
53 self.dir_same = os.path.join(tmpdir, 'dir-same') |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
54 self.dir_diff = os.path.join(tmpdir, 'dir-diff') |
|
81449
a1efab48d8f8
Close #15442: Expand the list of default directories ignored by filecmp.dircmp and expose it as a module attribute
Eli Bendersky <eliben@gmail.com>
parents:
78580
diff
changeset
|
55 |
|
a1efab48d8f8
Close #15442: Expand the list of default directories ignored by filecmp.dircmp and expose it as a module attribute
Eli Bendersky <eliben@gmail.com>
parents:
78580
diff
changeset
|
56 # Another dir is created under dir_same, but it has a name from the |
|
a1efab48d8f8
Close #15442: Expand the list of default directories ignored by filecmp.dircmp and expose it as a module attribute
Eli Bendersky <eliben@gmail.com>
parents:
78580
diff
changeset
|
57 # ignored list so it should not affect testing results. |
|
a1efab48d8f8
Close #15442: Expand the list of default directories ignored by filecmp.dircmp and expose it as a module attribute
Eli Bendersky <eliben@gmail.com>
parents:
78580
diff
changeset
|
58 self.dir_ignored = os.path.join(self.dir_same, '.hg') |
|
a1efab48d8f8
Close #15442: Expand the list of default directories ignored by filecmp.dircmp and expose it as a module attribute
Eli Bendersky <eliben@gmail.com>
parents:
78580
diff
changeset
|
59 |
|
30288
1d6d6fb7f10b
Only apply case-insensitivity test on appropriate platforms.' test_filecmp.py
Raymond Hettinger <python@rcn.com>
parents:
30286
diff
changeset
|
60 self.caseinsensitive = os.path.normcase('A') == os.path.normcase('a') |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
61 data = 'Contents of file go here.\n' |
|
81449
a1efab48d8f8
Close #15442: Expand the list of default directories ignored by filecmp.dircmp and expose it as a module attribute
Eli Bendersky <eliben@gmail.com>
parents:
78580
diff
changeset
|
62 for dir in (self.dir, self.dir_same, self.dir_diff, self.dir_ignored): |
|
39136
ee6ab3317581
Don't fail if the directory already exists
Neal Norwitz <nnorwitz@gmail.com>
parents:
30288
diff
changeset
|
63 shutil.rmtree(dir, True) |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
64 os.mkdir(dir) |
|
30288
1d6d6fb7f10b
Only apply case-insensitivity test on appropriate platforms.' test_filecmp.py
Raymond Hettinger <python@rcn.com>
parents:
30286
diff
changeset
|
65 if self.caseinsensitive and dir is self.dir_same: |
|
30286
22502f795b49
SF bug #453515: filecmp.dircmp case sensitivity bug
Raymond Hettinger <python@rcn.com>
parents:
28917
diff
changeset
|
66 fn = 'FiLe' # Verify case-insensitive comparison |
|
22502f795b49
SF bug #453515: filecmp.dircmp case sensitivity bug
Raymond Hettinger <python@rcn.com>
parents:
28917
diff
changeset
|
67 else: |
|
22502f795b49
SF bug #453515: filecmp.dircmp case sensitivity bug
Raymond Hettinger <python@rcn.com>
parents:
28917
diff
changeset
|
68 fn = 'file' |
|
22502f795b49
SF bug #453515: filecmp.dircmp case sensitivity bug
Raymond Hettinger <python@rcn.com>
parents:
28917
diff
changeset
|
69 output = open(os.path.join(dir, fn), 'w') |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
70 output.write(data) |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
71 output.close() |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
72 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
73 output = open(os.path.join(self.dir_diff, 'file2'), 'w') |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
74 output.write('An extra file.\n') |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
75 output.close() |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
76 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
77 def tearDown(self): |
|
81449
a1efab48d8f8
Close #15442: Expand the list of default directories ignored by filecmp.dircmp and expose it as a module attribute
Eli Bendersky <eliben@gmail.com>
parents:
78580
diff
changeset
|
78 for dir in (self.dir, self.dir_same, self.dir_diff): |
|
a1efab48d8f8
Close #15442: Expand the list of default directories ignored by filecmp.dircmp and expose it as a module attribute
Eli Bendersky <eliben@gmail.com>
parents:
78580
diff
changeset
|
79 shutil.rmtree(dir) |
|
a1efab48d8f8
Close #15442: Expand the list of default directories ignored by filecmp.dircmp and expose it as a module attribute
Eli Bendersky <eliben@gmail.com>
parents:
78580
diff
changeset
|
80 |
|
a1efab48d8f8
Close #15442: Expand the list of default directories ignored by filecmp.dircmp and expose it as a module attribute
Eli Bendersky <eliben@gmail.com>
parents:
78580
diff
changeset
|
81 def test_default_ignores(self): |
|
a1efab48d8f8
Close #15442: Expand the list of default directories ignored by filecmp.dircmp and expose it as a module attribute
Eli Bendersky <eliben@gmail.com>
parents:
78580
diff
changeset
|
82 self.assertIn('.hg', filecmp.DEFAULT_IGNORES) |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
83 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
84 def test_cmpfiles(self): |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
85 self.assertTrue(filecmp.cmpfiles(self.dir, self.dir, ['file']) == |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
86 (['file'], [], []), |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
87 "Comparing directory to itself fails") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
88 self.assertTrue(filecmp.cmpfiles(self.dir, self.dir_same, ['file']) == |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
89 (['file'], [], []), |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
90 "Comparing directory to same fails") |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
91 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
92 # Try it with shallow=False |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
93 self.assertTrue(filecmp.cmpfiles(self.dir, self.dir, ['file'], |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
94 shallow=False) == |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
95 (['file'], [], []), |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
96 "Comparing directory to itself fails") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
97 self.assertTrue(filecmp.cmpfiles(self.dir, self.dir_same, ['file'], |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
98 shallow=False), |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
99 "Comparing directory to same fails") |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
100 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
101 # Add different file2 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
102 output = open(os.path.join(self.dir, 'file2'), 'w') |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
103 output.write('Different contents.\n') |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
104 output.close() |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
105 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
106 self.assertFalse(filecmp.cmpfiles(self.dir, self.dir_same, |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
107 ['file', 'file2']) == |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
108 (['file'], ['file2'], []), |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
109 "Comparing mismatched directories fails") |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
110 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
111 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
112 def test_dircmp(self): |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
113 # Check attributes for comparison of two identical directories |
|
78580
7590dec388a7
#15269: document dircmp.left and right, and add tests for them.
R David Murray <rdmurray@bitdance.com>
parents:
59615
diff
changeset
|
114 left_dir, right_dir = self.dir, self.dir_same |
|
7590dec388a7
#15269: document dircmp.left and right, and add tests for them.
R David Murray <rdmurray@bitdance.com>
parents:
59615
diff
changeset
|
115 d = filecmp.dircmp(left_dir, right_dir) |
|
7590dec388a7
#15269: document dircmp.left and right, and add tests for them.
R David Murray <rdmurray@bitdance.com>
parents:
59615
diff
changeset
|
116 self.assertEqual(d.left, left_dir) |
|
7590dec388a7
#15269: document dircmp.left and right, and add tests for them.
R David Murray <rdmurray@bitdance.com>
parents:
59615
diff
changeset
|
117 self.assertEqual(d.right, right_dir) |
|
30288
1d6d6fb7f10b
Only apply case-insensitivity test on appropriate platforms.' test_filecmp.py
Raymond Hettinger <python@rcn.com>
parents:
30286
diff
changeset
|
118 if self.caseinsensitive: |
|
1d6d6fb7f10b
Only apply case-insensitivity test on appropriate platforms.' test_filecmp.py
Raymond Hettinger <python@rcn.com>
parents:
30286
diff
changeset
|
119 self.assertEqual([d.left_list, d.right_list],[['file'], ['FiLe']]) |
|
1d6d6fb7f10b
Only apply case-insensitivity test on appropriate platforms.' test_filecmp.py
Raymond Hettinger <python@rcn.com>
parents:
30286
diff
changeset
|
120 else: |
|
1d6d6fb7f10b
Only apply case-insensitivity test on appropriate platforms.' test_filecmp.py
Raymond Hettinger <python@rcn.com>
parents:
30286
diff
changeset
|
121 self.assertEqual([d.left_list, d.right_list],[['file'], ['file']]) |
|
42188
81930eaae715
Patch by Christian Heimes to change self.assert_(x == y) into
Guido van Rossum <guido@python.org>
parents:
39136
diff
changeset
|
122 self.assertEqual(d.common, ['file']) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
123 self.assertTrue(d.left_only == d.right_only == []) |
|
42188
81930eaae715
Patch by Christian Heimes to change self.assert_(x == y) into
Guido van Rossum <guido@python.org>
parents:
39136
diff
changeset
|
124 self.assertEqual(d.same_files, ['file']) |
|
81930eaae715
Patch by Christian Heimes to change self.assert_(x == y) into
Guido van Rossum <guido@python.org>
parents:
39136
diff
changeset
|
125 self.assertEqual(d.diff_files, []) |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
126 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
127 # Check attributes for comparison of two different directories |
|
78580
7590dec388a7
#15269: document dircmp.left and right, and add tests for them.
R David Murray <rdmurray@bitdance.com>
parents:
59615
diff
changeset
|
128 left_dir, right_dir = self.dir, self.dir_diff |
|
7590dec388a7
#15269: document dircmp.left and right, and add tests for them.
R David Murray <rdmurray@bitdance.com>
parents:
59615
diff
changeset
|
129 d = filecmp.dircmp(left_dir, right_dir) |
|
7590dec388a7
#15269: document dircmp.left and right, and add tests for them.
R David Murray <rdmurray@bitdance.com>
parents:
59615
diff
changeset
|
130 self.assertEqual(d.left, left_dir) |
|
7590dec388a7
#15269: document dircmp.left and right, and add tests for them.
R David Murray <rdmurray@bitdance.com>
parents:
59615
diff
changeset
|
131 self.assertEqual(d.right, right_dir) |
|
42188
81930eaae715
Patch by Christian Heimes to change self.assert_(x == y) into
Guido van Rossum <guido@python.org>
parents:
39136
diff
changeset
|
132 self.assertEqual(d.left_list, ['file']) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
133 self.assertTrue(d.right_list == ['file', 'file2']) |
|
42188
81930eaae715
Patch by Christian Heimes to change self.assert_(x == y) into
Guido van Rossum <guido@python.org>
parents:
39136
diff
changeset
|
134 self.assertEqual(d.common, ['file']) |
|
81930eaae715
Patch by Christian Heimes to change self.assert_(x == y) into
Guido van Rossum <guido@python.org>
parents:
39136
diff
changeset
|
135 self.assertEqual(d.left_only, []) |
|
81930eaae715
Patch by Christian Heimes to change self.assert_(x == y) into
Guido van Rossum <guido@python.org>
parents:
39136
diff
changeset
|
136 self.assertEqual(d.right_only, ['file2']) |
|
81930eaae715
Patch by Christian Heimes to change self.assert_(x == y) into
Guido van Rossum <guido@python.org>
parents:
39136
diff
changeset
|
137 self.assertEqual(d.same_files, ['file']) |
|
81930eaae715
Patch by Christian Heimes to change self.assert_(x == y) into
Guido van Rossum <guido@python.org>
parents:
39136
diff
changeset
|
138 self.assertEqual(d.diff_files, []) |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
139 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
140 # Add different file2 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
141 output = open(os.path.join(self.dir, 'file2'), 'w') |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
142 output.write('Different contents.\n') |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
143 output.close() |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
144 d = filecmp.dircmp(self.dir, self.dir_diff) |
|
42188
81930eaae715
Patch by Christian Heimes to change self.assert_(x == y) into
Guido van Rossum <guido@python.org>
parents:
39136
diff
changeset
|
145 self.assertEqual(d.same_files, ['file']) |
|
81930eaae715
Patch by Christian Heimes to change self.assert_(x == y) into
Guido van Rossum <guido@python.org>
parents:
39136
diff
changeset
|
146 self.assertEqual(d.diff_files, ['file2']) |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
147 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
148 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
149 def test_main(): |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
42188
diff
changeset
|
150 support.run_unittest(FileCompareTestCase, DirCompareTestCase) |
|
27723
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
151 |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
152 if __name__ == "__main__": |
|
7267214f0785
Add test suite for filecmp.py, after some discussion on bug #680494.
Andrew M. Kuchling <amk@amk.ca>
parents:
diff
changeset
|
153 test_main() |
