~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (C) 2005, 2006 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
"""Blackbox tests for version_info"""
 
18
 
 
19
import os
 
20
 
 
21
from bzrlib.tests import TestCaseWithTransport
 
22
 
 
23
 
 
24
class TestVersionInfo(TestCaseWithTransport):
 
25
 
 
26
    def test_invalid_format(self):
 
27
        self.run_bzr('version-info', '--format', 'quijibo', retcode=3)
 
28
 
 
29
    def create_branch(self):
 
30
        wt = self.make_branch_and_tree('branch')
 
31
 
 
32
        self.build_tree(['branch/a'])
 
33
        wt.add('a')
 
34
        wt.commit('adding a', rev_id='r1')
 
35
 
 
36
        self.build_tree(['branch/b'])
 
37
        wt.add('b')
 
38
        wt.commit('adding b', rev_id='r2')
 
39
 
 
40
        self.revisions = wt.branch.revision_history()
 
41
 
 
42
    def test_basic(self):
 
43
        self.create_branch()
 
44
 
 
45
        txt = self.run_bzr('version-info', 'branch')[0]
 
46
        self.assertContainsRe(txt, 'date:')
 
47
        self.assertContainsRe(txt, 'build-date:')
 
48
        self.assertContainsRe(txt, 'revno: 2')
 
49
        self.assertContainsRe(txt, 'revision-id: ' + self.revisions[-1])
 
50
 
 
51
    def test_all(self):
 
52
        """'--all' includes clean, revision history, and file revisions"""
 
53
        self.create_branch()
 
54
        txt = self.run_bzr('version-info', 'branch',
 
55
                           '--all')[0]
 
56
        self.assertContainsRe(txt, 'date:')
 
57
        self.assertContainsRe(txt, 'revno: 2')
 
58
        self.assertContainsRe(txt, 'revision-id: ' + self.revisions[-1])
 
59
        self.assertContainsRe(txt, 'clean: True')
 
60
        self.assertContainsRe(txt, 'revisions:')
 
61
        for rev_id in self.revisions:
 
62
            self.assertContainsRe(txt, 'id: ' + rev_id)
 
63
        self.assertContainsRe(txt, 'message: adding a')
 
64
        self.assertContainsRe(txt, 'message: adding b')
 
65
        self.assertContainsRe(txt, 'file-revisions:')
 
66
        self.assertContainsRe(txt, 'path: a')
 
67
        self.assertContainsRe(txt, 'path: b')
 
68
 
 
69
    def test_clean(self):
 
70
        """Test that --check-clean includes the right info"""
 
71
        self.create_branch()
 
72
 
 
73
        txt = self.run_bzr('version-info', 'branch',
 
74
                           '--check-clean')[0]
 
75
        self.assertContainsRe(txt, 'clean: True')
 
76
 
 
77
        self.build_tree_contents([('branch/c', 'now unclean\n')])
 
78
        txt = self.run_bzr('version-info', 'branch',
 
79
                           '--check-clean')[0]
 
80
        self.assertContainsRe(txt, 'clean: False')
 
81
 
 
82
        txt = self.run_bzr('version-info', 'branch',
 
83
                           '--check-clean', '--include-file-revisions')[0]
 
84
        self.assertContainsRe(txt, 'revision: unversioned')
 
85
 
 
86
        os.remove('branch/c')
 
87
 
 
88
    def test_no_branch(self):
 
89
        """Test that bzr defaults to the local working directory"""
 
90
        self.create_branch()
 
91
 
 
92
        txt1 = self.run_bzr('version-info', 'branch')[0]
 
93
 
 
94
        os.chdir('branch')
 
95
        txt2 = self.run_bzr('version-info')[0]
 
96
        self.assertEqual(txt1, txt2)
 
97
 
 
98
    def test_rio(self):
 
99
        """Test that we can pass --format=rio"""
 
100
        self.create_branch()
 
101
 
 
102
        txt = self.run_bzr('version-info', 'branch')[0]
 
103
        txt1 = self.run_bzr('version-info', '--format', 'rio', 'branch')[0]
 
104
        txt2 = self.run_bzr('version-info', '--format=rio', 'branch')[0]
 
105
        self.assertEqual(txt, txt1)
 
106
        self.assertEqual(txt, txt2)
 
107
 
 
108
    def test_python(self):
 
109
        """Test that we can do --format=python"""
 
110
        self.create_branch()
 
111
 
 
112
        txt = self.run_bzr('version-info', '--format', 'python', 'branch')[0]
 
113
 
 
114
        self.assertContainsRe(txt, 'version_info = {')