diff options
author | Tim Peters <tim.peters@gmail.com> | 2006-08-10 03:01:26 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2006-08-10 03:01:26 (GMT) |
commit | b2dd1a3906d6ad0cbd4a136f2c93580b48212975 (patch) | |
tree | e2141ef052e6323b4674ca3c81f73f72940787e7 | |
parent | 1fe9ca09a30ec7e81d986ebd3b1acff4d16d5947 (diff) | |
download | cpython-b2dd1a3906d6ad0cbd4a136f2c93580b48212975.zip cpython-b2dd1a3906d6ad0cbd4a136f2c93580b48212975.tar.gz cpython-b2dd1a3906d6ad0cbd4a136f2c93580b48212975.tar.bz2 |
test_copytree_simple(): This was leaving behind two new temp
directories each time it ran, at least on Windows.
Several changes: explicitly closed all files; wrapped long
lines; stopped suppressing errors when removing a file or
directory fails (removing /shouldn't/ fail!); and changed
what appeared to be incorrect usage of os.removedirs() (that
doesn't remove empty directories at and /under/ the given
path, instead it must be given an empty leaf directory and
then deletes empty directories moving /up/ the path -- could
be that the conceptually simpler shutil.rmtree() was really
actually intended here).
-rw-r--r-- | Lib/test/test_shutil.py | 52 |
1 files changed, 36 insertions, 16 deletions
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py index df35abf..da71fa8 100644 --- a/Lib/test/test_shutil.py +++ b/Lib/test/test_shutil.py @@ -74,31 +74,51 @@ class TestShutil(unittest.TestCase): except: pass - def test_copytree_simple(self): + def write_data(path, data): + f = open(path, "w") + f.write(data) + f.close() + + def read_data(path): + f = open(path) + data = f.read() + f.close() + return data + src_dir = tempfile.mkdtemp() dst_dir = os.path.join(tempfile.mkdtemp(), 'destination') - open(os.path.join(src_dir, 'test.txt'), 'w').write('123') + + write_data(os.path.join(src_dir, 'test.txt'), '123') + os.mkdir(os.path.join(src_dir, 'test_dir')) - open(os.path.join(src_dir, 'test_dir', 'test.txt'), 'w').write('456') - # + write_data(os.path.join(src_dir, 'test_dir', 'test.txt'), '456') + try: shutil.copytree(src_dir, dst_dir) self.assertTrue(os.path.isfile(os.path.join(dst_dir, 'test.txt'))) self.assertTrue(os.path.isdir(os.path.join(dst_dir, 'test_dir'))) - self.assertTrue(os.path.isfile(os.path.join(dst_dir, 'test_dir', 'test.txt'))) - self.assertEqual(open(os.path.join(dst_dir, 'test.txt')).read(), '123') - self.assertEqual(open(os.path.join(dst_dir, 'test_dir', 'test.txt')).read(), '456') + self.assertTrue(os.path.isfile(os.path.join(dst_dir, 'test_dir', + 'test.txt'))) + actual = read_data(os.path.join(dst_dir, 'test.txt')) + self.assertEqual(actual, '123') + actual = read_data(os.path.join(dst_dir, 'test_dir', 'test.txt')) + self.assertEqual(actual, '456') finally: - try: - os.remove(os.path.join(src_dir, 'test.txt')) - os.remove(os.path.join(dst_dir, 'test.txt')) - os.remove(os.path.join(src_dir, 'test_dir', 'test.txt')) - os.remove(os.path.join(dst_dir, 'test_dir', 'test.txt')) - os.removedirs(src_dir) - os.removedirs(dst_dir) - except: - pass + for path in ( + os.path.join(src_dir, 'test.txt'), + os.path.join(dst_dir, 'test.txt'), + os.path.join(src_dir, 'test_dir', 'test.txt'), + os.path.join(dst_dir, 'test_dir', 'test.txt'), + ): + if os.path.exists(path): + os.remove(path) + for path in ( + os.path.join(src_dir, 'test_dir'), + os.path.join(dst_dir, 'test_dir'), + ): + if os.path.exists(path): + os.removedirs(path) if hasattr(os, "symlink"): |