/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: John Arbash Meinel
  • Date: 2006-07-18 18:57:54 UTC
  • mto: This revision was merged to the branch mainline in revision 1868.
  • Revision ID: john@arbash-meinel.com-20060718185754-4007745748e28db9
Commit timestamp restricted to 1ms precision.

The old code would restrict to 1s resolution if the timestamp was
supplied, while it preserved full resolution if the timestamp was
auto generated. Now both paths preserve only 1ms resolution.

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
 
 
28
 
import dulwich as git
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
 
        thebranch = Branch.open('.')
82
 
        self.assertEquals({"foo": default_mapping.revision_id_foreign_to_bzr(reva)},
83
 
                          thebranch.tags.get_tag_dict())
84
 
        
85
 
 
86
 
class TestWithGitBranch(tests.TestCaseWithTransport):
87
 
 
88
 
    def setUp(self):
89
 
        tests.TestCaseWithTransport.setUp(self)
90
 
        git.repo.Repo.create(self.test_dir)
91
 
        self.git_branch = Branch.open(self.test_dir)
92
 
 
93
 
    def test_get_parent(self):
94
 
        self.assertIs(None, self.git_branch.get_parent())
95
 
 
96
 
    def test_get_stacked_on_url(self):
97
 
        self.assertIs(None, self.git_branch.get_stacked_on_url())
98
 
 
99
 
    def test_get_physical_lock_status(self):
100
 
        self.assertFalse(self.git_branch.get_physical_lock_status())
101
 
 
102
 
 
103
 
class TestGitBranchFormat(tests.TestCase):
104
 
 
105
 
    def setUp(self):
106
 
        super(TestGitBranchFormat, self).setUp()
107
 
        self.format = branch.GitBranchFormat()
108
 
 
109
 
    def test_get_format_description(self):
110
 
        self.assertEquals("Git Branch", self.format.get_format_description())