~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-09-21 20:21:36 UTC
  • mto: (2027.1.2 revert-subpath-56549)
  • mto: This revision was merged to the branch mainline in revision 2031.
  • Revision ID: abentley@panoramicfeedback.com-20060921202136-e5a8deaadfa00021
Added test for preserving file mode

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright (C) 2005 by 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.tests 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(u'.')
 
43
        wt = self.make_branch_and_tree('.')
 
44
        b = wt.branch
45
45
        self.build_tree_contents([('hello.txt', 'my helicopter\n'),
46
46
                                  ('nomail.txt', 'nomail\n')])
47
 
        b.working_tree().add(['hello.txt'])
48
 
        b.working_tree().commit('add hello', 
49
 
                                committer='test@user')
50
 
        b.working_tree().add(['nomail.txt'])
51
 
        b.working_tree().commit('add nomail', committer='no mail')
 
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')
52
53
 
53
54
    def test_help_annotate(self):
54
55
        """Annotate command exists"""
59
60
        self.assertEquals(err, '')
60
61
        self.assertEqualDiff(out, '''\
61
62
    1 test@us | my helicopter
 
63
    3 user@te | your helicopter
62
64
''')
63
65
 
64
66
    def test_no_mail(self):
67
69
        self.assertEqualDiff(out, '''\
68
70
    2 no mail | nomail
69
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')