/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
4070.4.1 by Andrea Bolognani
New GNU Changelog log format
1
# Copyright (C) 2005, 2006, 2009 Canonical Ltd
2052.3.1 by John Arbash Meinel
Add tests to cleanup the copyright of all source files
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
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
16
17
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
18
"""Black-box tests for default log_formats/log_formatters
19
"""
20
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
21
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
22
import os
23
4070.4.4 by Martin Pool
Add dodgy smoketest for gnu changelogs
24
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
25
from bzrlib.branch import Branch
26
from bzrlib.tests import TestCaseInTempDir
1551.2.48 by abentley
Used ensure_config_dir exists instead of makedirs
27
from bzrlib.config import (ensure_config_dir_exists, config_filename)
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
28
29
30
class TestLogFormats(TestCaseInTempDir):
31
32
    def test_log_default_format(self):
1773.4.1 by Martin Pool
Add pyflakes makefile target; fix many warnings
33
        self.setup_config()
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
34
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
35
        self.run_bzr('init')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
36
        open('a', 'wb').write('foo\n')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
37
        self.run_bzr('add a')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
38
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
39
        self.run_bzr('commit -m 1')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
40
        open('a', 'wb').write('baz\n')
41
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
42
        self.run_bzr('commit -m 2')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
43
44
        # only the lines formatter is this short
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
45
        self.assertEquals(3, len(self.run_bzr('log')[0].split('\n')))
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
46
47
    def test_log_format_arg(self):
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
48
        self.run_bzr('init')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
49
        open('a', 'wb').write('foo\n')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
50
        self.run_bzr('add a')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
51
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
52
        self.run_bzr('commit -m 1')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
53
        open('a', 'wb').write('baz\n')
54
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
55
        self.run_bzr('commit -m 2')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
56
57
        # only the lines formatter is this short
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
58
        self.assertEquals(7,
59
            len(self.run_bzr('log --log-format short')[0].split('\n')))
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
60
61
    def test_missing_default_format(self):
1773.4.1 by Martin Pool
Add pyflakes makefile target; fix many warnings
62
        self.setup_config()
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
63
64
        os.mkdir('a')
65
        os.chdir('a')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
66
        self.run_bzr('init')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
67
68
        open('a', 'wb').write('foo\n')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
69
        self.run_bzr('add a')
70
        self.run_bzr('commit -m 1')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
71
72
        os.chdir('..')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
73
        self.run_bzr('branch a b')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
74
        os.chdir('a')
75
76
        open('a', 'wb').write('bar\n')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
77
        self.run_bzr('commit -m 2')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
78
79
        open('a', 'wb').write('baz\n')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
80
        self.run_bzr('commit -m 3')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
81
82
        os.chdir('../b')
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
83
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
84
        self.assertEquals(5,
85
            len(self.run_bzr('missing', retcode=1)[0].split('\n')))
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
86
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
87
        os.chdir('..')
88
89
    def test_missing_format_arg(self):
1773.4.1 by Martin Pool
Add pyflakes makefile target; fix many warnings
90
        self.setup_config()
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
91
92
        os.mkdir('a')
93
        os.chdir('a')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
94
        self.run_bzr('init')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
95
96
        open('a', 'wb').write('foo\n')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
97
        self.run_bzr('add a')
98
        self.run_bzr('commit -m 1')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
99
100
        os.chdir('..')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
101
        self.run_bzr('branch a b')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
102
        os.chdir('a')
103
104
        open('a', 'wb').write('bar\n')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
105
        self.run_bzr('commit -m 2')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
106
107
        open('a', 'wb').write('baz\n')
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
108
        self.run_bzr('commit -m 3')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
109
110
        os.chdir('../b')
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
111
4070.4.2 by Martin Pool
Remove obsolete run_bzr wrapper from test_logformats
112
        self.assertEquals(9,
113
            len(self.run_bzr('missing --log-format short',
114
                retcode=1)[0].split('\n')))
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
115
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
116
        os.chdir('..')
117
4070.4.4 by Martin Pool
Add dodgy smoketest for gnu changelogs
118
    def test_logformat_gnu_changelog(self):
119
        # from http://launchpad.net/bugs/29582/
120
        self.setup_config()
121
        repo_url = self.make_trivial_history()
122
123
        out, err = self.run_bzr(
4070.4.8 by Martin Pool
Rename format to gnu-changelog
124
            ['log', self.get_url('repo/a'),
125
             '--log-format=gnu-changelog',
126
             '--timezone=utc'])
4070.4.4 by Martin Pool
Add dodgy smoketest for gnu changelogs
127
        self.assertEquals(err, '')
128
        self.assertEqualDiff(out,
129
"""2009-03-03  Joe Foo  <joe@foo.com>
130
4070.4.10 by Martin Pool
Change literal tab character to \t
131
\tcommit 1
4070.4.4 by Martin Pool
Add dodgy smoketest for gnu changelogs
132
133
""")
134
135
    def make_trivial_history(self):
136
        """Make a one-commit history and return the URL of the branch"""
137
        repo = self.make_repository('repo', shared=True, format='1.6')
138
        bb = self.make_branch_builder('repo/a')
139
        bb.start_series()
140
        bb.build_snapshot('rev-1', None,
4070.4.6 by Martin Pool
Force timestamp in tests for changelog format
141
            [('add', ('', 'root-id', 'directory', ''))],
142
            timestamp=1236045060)
4070.4.4 by Martin Pool
Add dodgy smoketest for gnu changelogs
143
        bb.finish_series()
144
        return self.get_url('repo/a')
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
145
1773.4.1 by Martin Pool
Add pyflakes makefile target; fix many warnings
146
    def setup_config(self):
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
147
        if os.path.isfile(config_filename()):
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
148
                # Something is wrong in environment,
149
                # we risk overwriting users config
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
150
                self.assert_(config_filename() + "exists, abort")
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
151
1551.2.48 by abentley
Used ensure_config_dir exists instead of makedirs
152
        ensure_config_dir_exists()
1553.2.11 by Erik Bågfors
blackbox tests for default log format and log-format arguments
153
        CONFIG=("[DEFAULT]\n"
154
                "email=Joe Foo <joe@foo.com>\n"
155
                "log_format=line\n")
156
157
        open(config_filename(),'wb').write(CONFIG)