435
435
self.assertEqual(['a', 'b'], os.listdir('target'))
436
436
self.assertEqual(['c'], os.listdir('target/b'))
438
def test_copy_tree_symlinks(self):
439
if not osutils.has_symlinks():
441
self.build_tree(['source/'])
442
os.symlink('a/generic/path', 'source/lnk')
443
osutils.copy_tree('source', 'target')
444
self.assertEqual(['lnk'], os.listdir('target'))
445
self.assertEqual('a/generic/path', os.readlink('target/lnk'))
447
def test_copy_tree_handlers(self):
450
def file_handler(from_path, to_path):
451
processed_files.append(('f', from_path, to_path))
452
def dir_handler(from_path, to_path):
453
processed_files.append(('d', from_path, to_path))
454
def link_handler(from_path, to_path):
455
processed_links.append((from_path, to_path))
456
handlers = {'file':file_handler,
457
'directory':dir_handler,
458
'symlink':link_handler,
461
self.build_tree(['source/', 'source/a', 'source/b/', 'source/b/c'])
462
if osutils.has_symlinks():
463
os.symlink('a/generic/path', 'source/lnk')
464
osutils.copy_tree('source', 'target', handlers=handlers)
466
self.assertEqual([('d', 'source', 'target'),
467
('f', 'source/a', 'target/a'),
468
('d', 'source/b', 'target/b'),
469
('f', 'source/b/c', 'target/b/c'),
471
self.failIfExists('target')
472
if osutils.has_symlinks():
473
self.assertEqual([('source/lnk', 'target/lnk')], processed_links)
439
476
class TestTerminalEncoding(TestCase):
440
477
"""Test the auto-detection of proper terminal encoding."""