/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.200.262 by Jelmer Vernooij
Add tests for GitShaMap.
1
# Copyright (C) 2009 Jelmer Vernooij <jelmer@samba.org>
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
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
"""Tests for GitShaMap."""
18
0.200.475 by Jelmer Vernooij
Add Tdb database backend.
19
import os
20
21
from bzrlib.tests import (
22
    TestCase,
23
    TestCaseInTempDir,
24
    UnavailableFeature,
25
    )
0.200.262 by Jelmer Vernooij
Add tests for GitShaMap.
26
27
from bzrlib.plugins.git.shamap import (
28
    DictGitShaMap,
29
    SqliteGitShaMap,
0.200.475 by Jelmer Vernooij
Add Tdb database backend.
30
    TdbGitShaMap,
0.200.262 by Jelmer Vernooij
Add tests for GitShaMap.
31
    )
32
33
class TestGitShaMap:
34
35
    def test_commit(self):
36
        self.map.add_entry("5686645d49063c73d35436192dfc9a160c672301", 
37
            "commit", ("myrevid", "cc9462f7f8263ef5adfbeff2fb936bb36b504cba"))
38
        self.assertEquals(
39
            ("commit", ("myrevid", "cc9462f7f8263ef5adfbeff2fb936bb36b504cba")),
40
            self.map.lookup_git_sha("5686645d49063c73d35436192dfc9a160c672301"))
41
42
    def test_lookup_notfound(self):
43
        self.assertRaises(KeyError, 
44
            self.map.lookup_git_sha, "5686645d49063c73d35436192dfc9a160c672301")
45
        
46
    def test_blob(self):
0.200.477 by Jelmer Vernooij
More tests for sha maps, fix cache misses in tdb.
47
        thesha = "5686645d49063c73d35436192dfc9a160c672301"
48
        self.map.add_entry(thesha, "blob", ("myfileid", "myrevid"))
0.200.262 by Jelmer Vernooij
Add tests for GitShaMap.
49
        self.assertEquals(
50
            ("blob", ("myfileid", "myrevid")),
0.200.477 by Jelmer Vernooij
More tests for sha maps, fix cache misses in tdb.
51
            self.map.lookup_git_sha(thesha))
52
        self.assertEquals(thesha, self.map.lookup_blob("myfileid", "myrevid"))
0.200.262 by Jelmer Vernooij
Add tests for GitShaMap.
53
54
    def test_tree(self):
0.200.477 by Jelmer Vernooij
More tests for sha maps, fix cache misses in tdb.
55
        thesha = "5686645d49063c73d35436192dfc9a160c672301"
56
        self.map.add_entry(thesha, 
0.200.262 by Jelmer Vernooij
Add tests for GitShaMap.
57
            "tree", ("somepath", "myrevid"))
58
        self.assertEquals(
59
            ("tree", ("somepath", "myrevid")),
0.200.477 by Jelmer Vernooij
More tests for sha maps, fix cache misses in tdb.
60
            self.map.lookup_git_sha(thesha))
61
        self.assertEquals(thesha, self.map.lookup_tree("somepath", "myrevid"))
0.200.262 by Jelmer Vernooij
Add tests for GitShaMap.
62
63
    def test_revids(self):
64
        self.map.add_entry("5686645d49063c73d35436192dfc9a160c672301", 
65
            "commit", ("myrevid", "cc9462f7f8263ef5adfbeff2fb936bb36b504cba"))
66
        self.assertEquals(["myrevid"], list(self.map.revids()))
67
68
69
class DictGitShaMapTests(TestCase,TestGitShaMap):
70
71
    def setUp(self):
0.200.280 by Jelmer Vernooij
Support bzr.dev.
72
        TestCase.setUp(self)
0.200.262 by Jelmer Vernooij
Add tests for GitShaMap.
73
        self.map = DictGitShaMap()
74
75
76
class SqliteGitShaMapTests(TestCase,TestGitShaMap):
77
78
    def setUp(self):
0.200.280 by Jelmer Vernooij
Support bzr.dev.
79
        TestCase.setUp(self)
0.200.262 by Jelmer Vernooij
Add tests for GitShaMap.
80
        self.map = SqliteGitShaMap()
81
0.200.475 by Jelmer Vernooij
Add Tdb database backend.
82
83
class TdbGitShaMapTests(TestCaseInTempDir,TestGitShaMap):
84
85
    def setUp(self):
86
        TestCaseInTempDir.setUp(self)
87
        try:
88
            self.map = TdbGitShaMap(os.path.join(self.test_dir, 'foo.tdb'))
89
        except ImportError:
90
            raise UnavailableFeature("Missing tdb")