~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/tree_implementations/test_walkdirs.py

  • Committer: Robert Collins
  • Date: 2006-07-31 07:18:54 UTC
  • mto: (1852.14.2 status-benchmarks)
  • mto: This revision was merged to the branch mainline in revision 2322.
  • Revision ID: robertc@robertcollins.net-20060731071854-d1fe7dd1ee353097
Tweak the Tree.walkdirs interface more to be more useful.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 
22
22
class TestWalkdirs(TestCaseWithTree):
23
23
 
 
24
    def get_all_subdirs_expected(self, tree):
 
25
        return [
 
26
            (('', tree.inventory.root.file_id),
 
27
            [
 
28
             ('0file', '0file', 'file', None, '2file', 'file'),
 
29
             ('1top-dir', '1top-dir', 'directory', None, '1top-dir', 'directory'),
 
30
             (u'2utf\u1234file', u'2utf\u1234file', 'file', None, u'0utf\u1234file', 'file'),
 
31
             ('symlink', 'symlink', 'symlink', None, 'symlink', 'symlink')
 
32
            ]),
 
33
            (('1top-dir', '1top-dir'),
 
34
            [('1top-dir/0file-in-1topdir', '0file-in-1topdir', 'file', None, '1file-in-1topdir', 'file'),
 
35
             ('1top-dir/1dir-in-1topdir', '1dir-in-1topdir', 'directory', None, '0dir-in-1topdir', 'directory'),
 
36
            ]),
 
37
            (('1top-dir/1dir-in-1topdir', '0dir-in-1topdir'),
 
38
            [
 
39
            ]),
 
40
            ]
 
41
 
24
42
    def test_walkdir_root(self):
25
43
        tree = self.get_tree_with_subdirs_and_all_content_types()
26
 
        expected_dirblocks = [
27
 
            (('', '', tree.inventory.root.file_id),
28
 
            [
29
 
             ('0file', '0file', 'file', None, '0file', '2file', 'file'),
30
 
             ('1top-dir', '1top-dir', 'directory', None, '1top-dir', '1top-dir', 'directory'),
31
 
             (u'2utf\u1234file', u'2utf\u1234file', 'file', None, u'2utf\u1234file', u'0utf\u1234file', 'file'),
32
 
             ('symlink', 'symlink', 'symlink', None, 'symlink', 'symlink', 'symlink')
33
 
            ]),
34
 
            (('1top-dir', '1top-dir', '1top-dir'),
35
 
            [('1top-dir/0file-in-1topdir', '0file-in-1topdir', 'file', None, '1top-dir/0file-in-1topdir', '1file-in-1topdir', 'file'),
36
 
             ('1top-dir/1dir-in-1topdir', '1dir-in-1topdir', 'directory', None, '1top-dir/1dir-in-1topdir', '0dir-in-1topdir', 'directory'),
37
 
            ]),
38
 
            (('1top-dir/1dir-in-1topdir', '1top-dir/1dir-in-1topdir', '0dir-in-1topdir'),
39
 
            [
40
 
            ]),
41
 
        ]
 
44
        expected_dirblocks = self.get_all_subdirs_expected(tree)
42
45
        # test that its iterable by iterating
43
46
        result = []
44
47
        for dirinfo, block in tree.walkdirs():
52
55
        # check each return value for debugging ease.
53
56
        for pos, item in enumerate(expected_dirblocks):
54
57
            self.assertEqual(item, result[pos])
 
58
            
 
59
    def test_walkdir_subtree(self):
 
60
        tree = self.get_tree_with_subdirs_and_all_content_types()
 
61
        expected_dirblocks = self.get_all_subdirs_expected(tree)[1:]
 
62
        # test that its iterable by iterating
 
63
        result = []
 
64
        for dirinfo, block in tree.walkdirs('1top-dir'):
 
65
            newblock = []
 
66
            for row in block:
 
67
                if row[4] is not None:
 
68
                    newblock.append(row[0:3] + (None,) + row[4:])
 
69
                else:
 
70
                    newblock.append(row)
 
71
            result.append((dirinfo, newblock))
 
72
        # check each return value for debugging ease.
 
73
        for pos, item in enumerate(expected_dirblocks):
 
74
            self.assertEqual(item, result[pos])