~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_annotate.py

  • Committer: Aaron Bentley
  • Date: 2006-11-10 01:55:55 UTC
  • mto: This revision was merged to the branch mainline in revision 2127.
  • Revision ID: aaron.bentley@utoronto.ca-20061110015555-f48202744b630209
Ignore html docs (both kinds)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005 by Canonical Ltd
 
1
# Copyright (C) 2005 Canonical Ltd
2
2
# -*- coding: utf-8 -*-
3
 
 
 
3
#
4
4
# This program is free software; you can redistribute it and/or modify
5
5
# it under the terms of the GNU General Public License as published by
6
6
# the Free Software Foundation; either version 2 of the License, or
7
7
# (at your option) any later version.
8
 
 
 
8
#
9
9
# This program is distributed in the hope that it will be useful,
10
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
12
# GNU General Public License for more details.
13
 
 
 
13
#
14
14
# You should have received a copy of the GNU General Public License
15
15
# along with this program; if not, write to the Free Software
16
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
28
28
import os
29
29
import shutil
30
30
import sys
31
 
import os
32
31
 
33
32
from bzrlib.branch import Branch
34
 
from bzrlib.clone import copy_branch
35
33
from bzrlib.errors import BzrCommandError
36
34
from bzrlib.osutils import has_symlinks
37
 
from bzrlib.selftest import TestCaseInTempDir, BzrTestBase
 
35
from bzrlib.tests import TestCaseWithTransport
38
36
from bzrlib.annotate import annotate_file
39
37
 
40
38
 
41
 
class TestAnnotate(TestCaseInTempDir):
 
39
class TestAnnotate(TestCaseWithTransport):
 
40
 
42
41
    def setUp(self):
43
42
        super(TestAnnotate, self).setUp()
44
 
        b = Branch.initialize('.')
45
 
        self.build_tree_contents([('hello.txt', 'my helicopter\n')])
46
 
        b.add(['hello.txt'])
47
 
        b.commit('add hello', 
48
 
                 committer='test@user')
 
43
        wt = self.make_branch_and_tree('.')
 
44
        b = wt.branch
 
45
        self.build_tree_contents([('hello.txt', 'my helicopter\n'),
 
46
                                  ('nomail.txt', 'nomail\n')])
 
47
        wt.add(['hello.txt'])
 
48
        wt.commit('add hello', committer='test@user')
 
49
        wt.add(['nomail.txt'])
 
50
        wt.commit('add nomail', committer='no mail')
 
51
        file('hello.txt', 'ab').write('your helicopter')
 
52
        wt.commit('mod hello', committer='user@test')
49
53
 
50
54
    def test_help_annotate(self):
51
55
        """Annotate command exists"""
56
60
        self.assertEquals(err, '')
57
61
        self.assertEqualDiff(out, '''\
58
62
    1 test@us | my helicopter
59
 
''')
 
63
    3 user@te | your helicopter
 
64
''')
 
65
 
 
66
    def test_no_mail(self):
 
67
        out, err = self.run_bzr_captured(['annotate', 'nomail.txt'])
 
68
        self.assertEquals(err, '')
 
69
        self.assertEqualDiff(out, '''\
 
70
    2 no mail | nomail
 
71
''')
 
72
 
 
73
    def test_annotate_cmd_revision(self):
 
74
        out, err = self.run_bzr_captured(['annotate', 'hello.txt', '-r1'])
 
75
        self.assertEquals(err, '')
 
76
        self.assertEqualDiff(out, '''\
 
77
    1 test@us | my helicopter
 
78
''')
 
79
 
 
80
    def test_annotate_cmd_revision3(self):
 
81
        out, err = self.run_bzr_captured(['annotate', 'hello.txt', '-r3'])
 
82
        self.assertEquals(err, '')
 
83
        self.assertEqualDiff(out, '''\
 
84
    1 test@us | my helicopter
 
85
    3 user@te | your helicopter
 
86
''')
 
87
 
 
88
    def test_annotate_cmd_unknown_revision(self):
 
89
        out, err = self.run_bzr_captured(['annotate', 'hello.txt', '-r', '10'],
 
90
                                         retcode=3)
 
91
        self.assertEquals(out, '')
 
92
        self.assertContainsRe(err, 'Requested revision: \'10\' does not exist')
 
93
 
 
94
    def test_annotate_cmd_two_revisions(self):
 
95
        out, err = self.run_bzr_captured(['annotate', 'hello.txt', '-r1..2'],
 
96
                                         retcode=3)
 
97
        self.assertEquals(out, '')
 
98
        self.assertEquals(err, 'bzr: ERROR: bzr annotate --revision takes'
 
99
                               ' exactly 1 argument\n')
 
100
 
 
101
    def test_annotate_empty_file(self):
 
102
        tree = self.make_branch_and_tree('tree')
 
103
        self.build_tree_contents([('tree/empty', '')])
 
104
        tree.add('empty')
 
105
        tree.commit('add empty file')
 
106
 
 
107
        os.chdir('tree')
 
108
        out, err = self.run_bzr('annotate', 'empty')
 
109
        self.assertEqual('', out)