/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
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
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
18
from bzrlib.tests import TestCase, TestCaseWithTransport
19
from bzrlib.treebuilder import TreeBuilder
20
0.436.157 by Jelmer Vernooij
use absolute imports everywhere.
21
from bzrlib.plugins.rebase.maptree import (
22
    MapTree,
23
    map_file_ids,
24
    )
0.436.17 by Jelmer Vernooij
Move maptree code to separate files.
25
26
0.436.18 by Jelmer Vernooij
More tests, extend MapTree a bit.
27
class EmptyMapTreeTests(TestCaseWithTransport):
0.436.17 by Jelmer Vernooij
Move maptree code to separate files.
28
    def setUp(self):
0.436.18 by Jelmer Vernooij
More tests, extend MapTree a bit.
29
        super(EmptyMapTreeTests, self).setUp()
30
        tree = self.make_branch_and_tree('branch') 
31
        self.oldtree = tree
32
33
    def test_has_filename(self):
34
        self.oldtree.lock_write()
35
        builder = TreeBuilder()
36
        builder.start_tree(self.oldtree)
37
        builder.build(['foo'])
38
        builder.finish_tree()
39
        self.maptree = MapTree(self.oldtree, {})
40
        self.oldtree.unlock()
41
        self.assertTrue(self.maptree.has_filename('foo'))
42
        self.assertTrue(self.oldtree.has_filename('foo'))
43
        self.assertFalse(self.maptree.has_filename('bar'))
44
45
    def test_inventory_len(self):
46
        self.oldtree.lock_write()
47
        builder = TreeBuilder()
48
        builder.start_tree(self.oldtree)
49
        builder.build(['foo'])
50
        builder.build(['bar'])
51
        builder.build(['bla'])
52
        builder.finish_tree()
53
        self.maptree = MapTree(self.oldtree, {})
54
        self.oldtree.unlock()
55
        self.oldtree.lock_read()
56
        self.assertEquals(4, len(self.oldtree.inventory))
57
        self.oldtree.unlock()
58
        self.assertEquals(4, len(self.maptree.inventory))
59
60
    def test_path2id(self):
61
        self.oldtree.lock_write()
0.441.3 by Robert Collins
Update rebase to 1.6b3 API changes.
62
        self.addCleanup(self.oldtree.unlock)
0.436.18 by Jelmer Vernooij
More tests, extend MapTree a bit.
63
        builder = TreeBuilder()
64
        builder.start_tree(self.oldtree)
65
        builder.build(['foo'])
66
        builder.build(['bar'])
67
        builder.build(['bla'])
68
        builder.finish_tree()
69
        self.maptree = MapTree(self.oldtree, {})
70
        self.assertEquals(self.oldtree.inventory.path2id("foo"),
71
                          self.maptree.inventory.path2id("foo"))
72
73
    def test_id2path(self):
74
        self.oldtree.lock_write()
0.441.3 by Robert Collins
Update rebase to 1.6b3 API changes.
75
        self.addCleanup(self.oldtree.unlock)
0.436.18 by Jelmer Vernooij
More tests, extend MapTree a bit.
76
        builder = TreeBuilder()
77
        builder.start_tree(self.oldtree)
78
        builder.build(['foo'])
79
        builder.build(['bar'])
80
        builder.build(['bla'])
81
        builder.finish_tree()
82
        self.maptree = MapTree(self.oldtree, {})
83
        self.assertEquals("foo",
84
                          self.maptree.inventory.id2path(
85
                              self.maptree.inventory.path2id("foo")))
86
87
    def test_has_id(self):
88
        self.oldtree.lock_write()
0.441.3 by Robert Collins
Update rebase to 1.6b3 API changes.
89
        self.addCleanup(self.oldtree.unlock)
0.436.18 by Jelmer Vernooij
More tests, extend MapTree a bit.
90
        builder = TreeBuilder()
91
        builder.start_tree(self.oldtree)
92
        builder.build(['foo'])
93
        builder.build(['bar'])
94
        builder.build(['bla'])
95
        builder.finish_tree()
96
        self.maptree = MapTree(self.oldtree, {})
97
        self.assertTrue(self.maptree.inventory.has_id(
98
                              self.maptree.inventory.path2id("foo")))
99
        self.assertFalse(self.maptree.inventory.has_id("bar"))
100
0.436.21 by Jelmer Vernooij
Tests.
101
102
class MapFileIdTests(TestCase):
0.441.3 by Robert Collins
Update rebase to 1.6b3 API changes.
103
0.436.21 by Jelmer Vernooij
Tests.
104
    def test_empty(self):
105
        self.assertEquals({}, map_file_ids(None, [], []))