/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.200.18 by John Arbash Meinel
Start splitting up the Git{Branch,Dir,Repository} into separate modules, etc.
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
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
"""Tests for interfacing with a Git Branch"""
18
0.200.66 by Jelmer Vernooij
Implement branch.get_parent().
19
import git
0.200.18 by John Arbash Meinel
Start splitting up the Git{Branch,Dir,Repository} into separate modules, etc.
20
0.200.19 by John Arbash Meinel
More refactoring. Add some direct tests for GitModel.
21
from bzrlib import branch, revision
0.200.18 by John Arbash Meinel
Start splitting up the Git{Branch,Dir,Repository} into separate modules, etc.
22
23
from bzrlib.plugins.git import tests
0.200.27 by David Allouche
Flat is better than nested, remove the gitlib hierarchy.
24
from bzrlib.plugins.git import (
0.200.20 by John Arbash Meinel
All tests are passing again
25
    git_branch,
26
    ids,
27
    )
0.200.18 by John Arbash Meinel
Start splitting up the Git{Branch,Dir,Repository} into separate modules, etc.
28
29
30
class TestGitBranch(tests.TestCaseInTempDir):
31
32
    _test_needs_features = [tests.GitCommandFeature]
33
34
    def test_open_existing(self):
0.200.19 by John Arbash Meinel
More refactoring. Add some direct tests for GitModel.
35
        tests.run_git('init')
36
37
        thebranch = branch.Branch.open('.')
38
        self.assertIsInstance(thebranch, git_branch.GitBranch)
39
40
    def test_last_revision_is_null(self):
41
        tests.run_git('init')
42
43
        thebranch = branch.Branch.open('.')
44
        self.assertEqual(revision.NULL_REVISION, thebranch.last_revision())
45
        self.assertEqual((0, revision.NULL_REVISION),
46
                         thebranch.last_revision_info())
0.200.20 by John Arbash Meinel
All tests are passing again
47
0.200.82 by Jelmer Vernooij
Support listing tags.
48
    def simple_commit_a(self):
49
        tests.run_git('init')
50
        self.build_tree(['a'])
51
        tests.run_git('add', 'a')
52
        tests.run_git('commit', '-m', 'a')
53
0.200.20 by John Arbash Meinel
All tests are passing again
54
    def test_last_revision_is_valid(self):
0.200.82 by Jelmer Vernooij
Support listing tags.
55
        self.simple_commit_a()
0.200.20 by John Arbash Meinel
All tests are passing again
56
        head = tests.run_git('rev-parse', 'HEAD').strip()
57
58
        thebranch = branch.Branch.open('.')
59
        self.assertEqual(ids.convert_revision_id_git_to_bzr(head),
60
                         thebranch.last_revision())
0.200.58 by Jelmer Vernooij
Fix remaining tests.
61
62
    def test_revision_history(self):
0.200.82 by Jelmer Vernooij
Support listing tags.
63
        self.simple_commit_a()
0.200.59 by Jelmer Vernooij
Add more tests, fix revision history.
64
        reva = tests.run_git('rev-parse', 'HEAD').strip()
65
        self.build_tree(['b'])
66
        tests.run_git('add', 'b')
67
        tests.run_git('commit', '-m', 'b')
68
        revb = tests.run_git('rev-parse', 'HEAD').strip()
0.200.58 by Jelmer Vernooij
Fix remaining tests.
69
70
        thebranch = branch.Branch.open('.')
0.200.59 by Jelmer Vernooij
Add more tests, fix revision history.
71
        self.assertEqual([ids.convert_revision_id_git_to_bzr(r) for r in (reva, revb)],
0.200.58 by Jelmer Vernooij
Fix remaining tests.
72
                         thebranch.revision_history())
0.200.82 by Jelmer Vernooij
Support listing tags.
73
74
    def test_tags(self):
75
        self.simple_commit_a()
76
        reva = tests.run_git('rev-parse', 'HEAD').strip()
77
        
78
        tests.run_git('tag', '-a', '-m', 'add tag', 'foo')
79
        
80
        newid = open('.git/refs/tags/foo').read().rstrip()
81
82
        thebranch = branch.Branch.open('.')
83
        self.assertEquals({"foo": ids.convert_revision_id_git_to_bzr(newid)},
84
                          thebranch.tags.get_tag_dict())
0.200.58 by Jelmer Vernooij
Fix remaining tests.
85
        
0.200.66 by Jelmer Vernooij
Implement branch.get_parent().
86
87
class TestWithGitBranch(tests.TestCaseWithTransport):
88
89
    def setUp(self):
90
        tests.TestCaseWithTransport.setUp(self)
91
        git.repo.Repo.create(self.test_dir)
92
        self.git_branch = branch.Branch.open(self.test_dir)
93
94
    def test_get_parent(self):
95
        self.assertIs(None, self.git_branch.get_parent())
0.200.67 by Jelmer Vernooij
Implement Branch.get_stacked_on_url.
96
97
    def test_get_stacked_on_url(self):
98
        self.assertIs(None, self.git_branch.get_stacked_on_url())
0.200.70 by Jelmer Vernooij
Implement GitBranchFormat.get_format_description.
99
0.200.72 by Jelmer Vernooij
Implement Branch.get_physical_lock_status.
100
    def test_get_physical_lock_status(self):
101
        self.assertFalse(self.git_branch.get_physical_lock_status())
102
0.200.70 by Jelmer Vernooij
Implement GitBranchFormat.get_format_description.
103
104
class TestGitBranchFormat(tests.TestCase):
105
106
    def setUp(self):
107
        super(TestGitBranchFormat, self).setUp()
108
        self.format = git_branch.GitBranchFormat()
109
110
    def test_get_format_description(self):
111
        self.assertEquals("Git Branch", self.format.get_format_description())