/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
2052.3.2 by John Arbash Meinel
Change Copyright .. by Canonical to Copyright ... Canonical
1
# Copyright (C) 2005 Canonical Ltd
1417.1.6 by Robert Collins
introduce transactions for grouping actions done to and with branches
2
#   Authors: Robert Collins <robert.collins@canonical.com>
3
#
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; either version 2 of the License, or
7
# (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1417.1.6 by Robert Collins
introduce transactions for grouping actions done to and with branches
17
18
"""Tests for the IdentityMap class."""
19
20
# import system imports here
21
6622.1.34 by Jelmer Vernooij
Rename brzlib => breezy.
22
#import breezy specific imports here
23
import breezy.errors as errors
24
from breezy.tests import TestCase
25
import breezy.identitymap as identitymap
1417.1.6 by Robert Collins
introduce transactions for grouping actions done to and with branches
26
27
28
class TestIdentityMap(TestCase):
29
30
    def test_symbols(self):
6622.1.34 by Jelmer Vernooij
Rename brzlib => breezy.
31
        from breezy.identitymap import IdentityMap
1417.1.6 by Robert Collins
introduce transactions for grouping actions done to and with branches
32
33
    def test_construct(self):
34
        identitymap.IdentityMap()
35
36
    def test_add_weave(self):
37
        map = identitymap.IdentityMap()
38
        weave = "foo"
39
        map.add_weave("id", weave)
40
        self.assertEqual(weave, map.find_weave("id"))
41
42
    def test_double_add_weave(self):
43
        map = identitymap.IdentityMap()
44
        weave = "foo"
45
        map.add_weave("id", weave)
46
        self.assertRaises(errors.BzrError, map.add_weave, "id", weave)
47
        self.assertEqual(weave, map.find_weave("id"))
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
48
1417.1.10 by Robert Collins
add a cache bound to Transactions, and a precious facility, so that we keep inventory.weave in memory, but can discard weaves for other such files.
49
    def test_remove_object(self):
50
        map = identitymap.IdentityMap()
51
        weave = "foo"
52
        map.add_weave("id", weave)
53
        map.remove_object(weave)
54
        map.add_weave("id", weave)
55
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
56
1417.1.6 by Robert Collins
introduce transactions for grouping actions done to and with branches
57
class TestNullIdentityMap(TestCase):
58
59
    def test_symbols(self):
6622.1.34 by Jelmer Vernooij
Rename brzlib => breezy.
60
        from breezy.identitymap import NullIdentityMap
1417.1.6 by Robert Collins
introduce transactions for grouping actions done to and with branches
61
62
    def test_construct(self):
63
        identitymap.NullIdentityMap()
64
65
    def test_add_weave(self):
66
        map = identitymap.NullIdentityMap()
67
        weave = "foo"
68
        map.add_weave("id", weave)
69
        self.assertEqual(None, map.find_weave("id"))
70
71
    def test_double_add_weave(self):
72
        map = identitymap.NullIdentityMap()
73
        weave = "foo"
74
        map.add_weave("id", weave)
75
        map.add_weave("id", weave)
76
        self.assertEqual(None, map.find_weave("id"))
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
77
1417.1.11 by Robert Collins
null identity maps never have objects in them, so someone calling remove_object would be silly - check we do not have a remove_object method
78
    def test_null_identity_map_has_no_remove(self):
79
        map = identitymap.NullIdentityMap()
80
        self.assertEqual(None, getattr(map, 'remove_object', None))
81