/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to tests/test_branch.py

  • Committer: Robert Collins
  • Date: 2007-03-25 08:59:56 UTC
  • mto: (2376.3.1 integration)
  • mto: This revision was merged to the branch mainline in revision 2401.
  • Revision ID: robertc@robertcollins.net-20070325085956-my8jv7cifqzyltyz
New SmartServer hooks facility. There are two initial hooks documented
in bzrlib.transport.smart.SmartServerHooks. The two initial hooks allow
plugins to execute code upon server startup and shutdown.
(Robert Collins).

SmartServer in standalone mode will now close its listening socket
when it stops, rather than waiting for garbage collection. This primarily
fixes test suite hangs when a test tries to connect to a shutdown server.
It may also help improve behaviour when dealing with a server running
on a specific port (rather than dynamically assigned ports).
(Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
 
19
 
from bzrlib import revision
20
 
from bzrlib.branch import Branch
21
 
 
22
 
from bzrlib.plugins.git import (
23
 
    branch,
24
 
    tests,
25
 
    )
26
 
from bzrlib.plugins.git.mapping import default_mapping
27
 
from bzrlib.plugins.git import git
28
 
 
29
 
 
30
 
 
31
 
class TestGitBranch(tests.TestCaseInTempDir):
32
 
 
33
 
    _test_needs_features = [tests.GitCommandFeature]
34
 
 
35
 
    def test_open_existing(self):
36
 
        tests.run_git('init')
37
 
 
38
 
        thebranch = Branch.open('.')
39
 
        self.assertIsInstance(thebranch, branch.GitBranch)
40
 
 
41
 
    def test_last_revision_is_null(self):
42
 
        tests.run_git('init')
43
 
 
44
 
        thebranch = Branch.open('.')
45
 
        self.assertEqual(revision.NULL_REVISION, thebranch.last_revision())
46
 
        self.assertEqual((0, revision.NULL_REVISION),
47
 
                         thebranch.last_revision_info())
48
 
 
49
 
    def simple_commit_a(self):
50
 
        tests.run_git('init')
51
 
        self.build_tree(['a'])
52
 
        tests.run_git('add', 'a')
53
 
        tests.run_git('commit', '-m', 'a')
54
 
 
55
 
    def test_last_revision_is_valid(self):
56
 
        self.simple_commit_a()
57
 
        head = tests.run_git('rev-parse', 'HEAD').strip()
58
 
 
59
 
        thebranch = Branch.open('.')
60
 
        self.assertEqual(default_mapping.revision_id_foreign_to_bzr(head),
61
 
                         thebranch.last_revision())
62
 
 
63
 
    def test_revision_history(self):
64
 
        self.simple_commit_a()
65
 
        reva = tests.run_git('rev-parse', 'HEAD').strip()
66
 
        self.build_tree(['b'])
67
 
        tests.run_git('add', 'b')
68
 
        tests.run_git('commit', '-m', 'b')
69
 
        revb = tests.run_git('rev-parse', 'HEAD').strip()
70
 
 
71
 
        thebranch = Branch.open('.')
72
 
        self.assertEqual([default_mapping.revision_id_foreign_to_bzr(r) for r in (reva, revb)],
73
 
                         thebranch.revision_history())
74
 
 
75
 
    def test_tags(self):
76
 
        self.simple_commit_a()
77
 
        reva = tests.run_git('rev-parse', 'HEAD').strip()
78
 
        
79
 
        tests.run_git('tag', '-a', '-m', 'add tag', 'foo')
80
 
        
81
 
        newid = open('.git/refs/tags/foo').read().rstrip()
82
 
 
83
 
        thebranch = Branch.open('.')
84
 
        self.assertEquals({"foo": default_mapping.revision_id_foreign_to_bzr(newid)},
85
 
                          thebranch.tags.get_tag_dict())
86
 
        
87
 
 
88
 
class TestWithGitBranch(tests.TestCaseWithTransport):
89
 
 
90
 
    def setUp(self):
91
 
        tests.TestCaseWithTransport.setUp(self)
92
 
        git.repo.Repo.create(self.test_dir)
93
 
        self.git_branch = Branch.open(self.test_dir)
94
 
 
95
 
    def test_get_parent(self):
96
 
        self.assertIs(None, self.git_branch.get_parent())
97
 
 
98
 
    def test_get_stacked_on_url(self):
99
 
        self.assertIs(None, self.git_branch.get_stacked_on_url())
100
 
 
101
 
    def test_get_physical_lock_status(self):
102
 
        self.assertFalse(self.git_branch.get_physical_lock_status())
103
 
 
104
 
 
105
 
class TestGitBranchFormat(tests.TestCase):
106
 
 
107
 
    def setUp(self):
108
 
        super(TestGitBranchFormat, self).setUp()
109
 
        self.format = branch.GitBranchFormat()
110
 
 
111
 
    def test_get_format_description(self):
112
 
        self.assertEquals("Git Branch", self.format.get_format_description())