~bzr-pqm/bzr/bzr.dev

2255.2.71 by John Arbash Meinel
Add a test for list_files, and implement it for DirStateRevisionTree
1
# Copyright (C) 2007 Canonical Ltd
2
#
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2255.2.71 by John Arbash Meinel
Add a test for list_files, and implement it for DirStateRevisionTree
16
17
"""Test that all trees support Tree.list_files()"""
18
19
from bzrlib.tests.tree_implementations import TestCaseWithTree
20
21
22
class TestListFiles(TestCaseWithTree):
23
24
    def test_list_files_with_root(self):
25
        work_tree = self.make_branch_and_tree('wt')
26
        tree = self.get_tree_no_parents_abc_content(work_tree)
27
        expected = [('', 'V', 'directory', 'root-id'),
28
                    ('a', 'V', 'file', 'a-id'),
29
                    ('b', 'V', 'directory', 'b-id'),
30
                    ('b/c', 'V', 'file', 'c-id'),
31
                   ]
32
        tree.lock_read()
33
        try:
34
            actual = [(path, status, kind, file_id)
35
                      for path, status, kind, file_id, ie in
36
                          tree.list_files(include_root=True)]
37
        finally:
38
            tree.unlock()
39
        self.assertEqual(expected, actual)
40
41
    def test_list_files_no_root(self):
42
        work_tree = self.make_branch_and_tree('wt')
43
        tree = self.get_tree_no_parents_abc_content(work_tree)
44
        expected = [('a', 'V', 'file', 'a-id'),
45
                    ('b', 'V', 'directory', 'b-id'),
46
                    ('b/c', 'V', 'file', 'c-id'),
47
                   ]
48
        tree.lock_read()
49
        try:
50
            actual = [(path, status, kind, file_id)
51
                      for path, status, kind, file_id, ie in
52
                          tree.list_files(include_root=False)]
53
        finally:
54
            tree.unlock()
55
        self.assertEqual(expected, actual)