/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.436.17 by Jelmer Vernooij
Move maptree code to separate files.
1
# Copyright (C) 2006-2007 by Jelmer Vernooij
0.436.177 by Jelmer Vernooij
Remove trailing whitespace.
2
#
0.436.17 by Jelmer Vernooij
Move maptree code to separate files.
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
0.436.131 by Jelmer Vernooij
Change license back to GPLv2+
5
# the Free Software Foundation; either version 2 of the License, or
0.436.17 by Jelmer Vernooij
Move maptree code to separate files.
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
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
"""Tests for the maptree code."""
17
0.436.178 by Jelmer Vernooij
Finish rename to 'bzr-rewrite'.
18
from bzrlib.tests import (
19
    TestCase,
20
    TestCaseWithTransport,
21
    )
22
from bzrlib.treebuilder import (
23
    TreeBuilder,
24
    )
0.436.17 by Jelmer Vernooij
Move maptree code to separate files.
25
0.436.178 by Jelmer Vernooij
Finish rename to 'bzr-rewrite'.
26
from bzrlib.plugins.rewrite.maptree import (
0.436.157 by Jelmer Vernooij
use absolute imports everywhere.
27
    MapTree,
28
    map_file_ids,
29
    )
0.436.17 by Jelmer Vernooij
Move maptree code to separate files.
30
31
0.436.18 by Jelmer Vernooij
More tests, extend MapTree a bit.
32
class EmptyMapTreeTests(TestCaseWithTransport):
0.436.178 by Jelmer Vernooij
Finish rename to 'bzr-rewrite'.
33
0.436.17 by Jelmer Vernooij
Move maptree code to separate files.
34
    def setUp(self):
0.436.18 by Jelmer Vernooij
More tests, extend MapTree a bit.
35
        super(EmptyMapTreeTests, self).setUp()
0.436.177 by Jelmer Vernooij
Remove trailing whitespace.
36
        tree = self.make_branch_and_tree('branch')
0.436.18 by Jelmer Vernooij
More tests, extend MapTree a bit.
37
        self.oldtree = tree
38
39
    def test_has_filename(self):
40
        self.oldtree.lock_write()
41
        builder = TreeBuilder()
42
        builder.start_tree(self.oldtree)
43
        builder.build(['foo'])
44
        builder.finish_tree()
45
        self.maptree = MapTree(self.oldtree, {})
46
        self.oldtree.unlock()
47
        self.assertTrue(self.maptree.has_filename('foo'))
48
        self.assertTrue(self.oldtree.has_filename('foo'))
49
        self.assertFalse(self.maptree.has_filename('bar'))
50
51
    def test_inventory_len(self):
52
        self.oldtree.lock_write()
53
        builder = TreeBuilder()
54
        builder.start_tree(self.oldtree)
55
        builder.build(['foo'])
56
        builder.build(['bar'])
57
        builder.build(['bla'])
58
        builder.finish_tree()
59
        self.maptree = MapTree(self.oldtree, {})
60
        self.oldtree.unlock()
61
        self.oldtree.lock_read()
62
        self.assertEquals(4, len(self.oldtree.inventory))
63
        self.oldtree.unlock()
64
        self.assertEquals(4, len(self.maptree.inventory))
65
66
    def test_path2id(self):
67
        self.oldtree.lock_write()
0.441.3 by Robert Collins
Update rebase to 1.6b3 API changes.
68
        self.addCleanup(self.oldtree.unlock)
0.436.18 by Jelmer Vernooij
More tests, extend MapTree a bit.
69
        builder = TreeBuilder()
70
        builder.start_tree(self.oldtree)
71
        builder.build(['foo'])
72
        builder.build(['bar'])
73
        builder.build(['bla'])
74
        builder.finish_tree()
75
        self.maptree = MapTree(self.oldtree, {})
76
        self.assertEquals(self.oldtree.inventory.path2id("foo"),
77
                          self.maptree.inventory.path2id("foo"))
78
79
    def test_id2path(self):
80
        self.oldtree.lock_write()
0.441.3 by Robert Collins
Update rebase to 1.6b3 API changes.
81
        self.addCleanup(self.oldtree.unlock)
0.436.18 by Jelmer Vernooij
More tests, extend MapTree a bit.
82
        builder = TreeBuilder()
83
        builder.start_tree(self.oldtree)
84
        builder.build(['foo'])
85
        builder.build(['bar'])
86
        builder.build(['bla'])
87
        builder.finish_tree()
88
        self.maptree = MapTree(self.oldtree, {})
89
        self.assertEquals("foo",
90
                          self.maptree.inventory.id2path(
91
                              self.maptree.inventory.path2id("foo")))
92
93
    def test_has_id(self):
94
        self.oldtree.lock_write()
0.441.3 by Robert Collins
Update rebase to 1.6b3 API changes.
95
        self.addCleanup(self.oldtree.unlock)
0.436.18 by Jelmer Vernooij
More tests, extend MapTree a bit.
96
        builder = TreeBuilder()
97
        builder.start_tree(self.oldtree)
98
        builder.build(['foo'])
99
        builder.build(['bar'])
100
        builder.build(['bla'])
101
        builder.finish_tree()
102
        self.maptree = MapTree(self.oldtree, {})
103
        self.assertTrue(self.maptree.inventory.has_id(
104
                              self.maptree.inventory.path2id("foo")))
105
        self.assertFalse(self.maptree.inventory.has_id("bar"))
106
0.436.21 by Jelmer Vernooij
Tests.
107
108
class MapFileIdTests(TestCase):
0.441.3 by Robert Collins
Update rebase to 1.6b3 API changes.
109
0.436.21 by Jelmer Vernooij
Tests.
110
    def test_empty(self):
111
        self.assertEquals({}, map_file_ids(None, [], []))