~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Vincent Ladeuil
  • Date: 2009-05-05 15:31:34 UTC
  • mto: (4343.1.1 integration)
  • mto: This revision was merged to the branch mainline in revision 4344.
  • Revision ID: v.ladeuil+lp@free.fr-20090505153134-q4bp4is9gywsmzrv
Clean up test for log formats.

* bzrlib/tests/blackbox/test_logformats.py:
Update tests to actual style.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
from bzrlib import (
25
25
    config,
26
26
    tests,
 
27
    workingtree,
27
28
    )
28
29
 
29
30
 
30
 
class TestLogFormats(tests.TestCaseInTempDir):
 
31
class TestLogFormats(tests.TestCaseWithTransport):
31
32
 
32
33
    def setUp(self):
33
34
        super(TestLogFormats, self).setUp()
34
35
 
 
36
        # Create a config file with some useful variables
35
37
        conf_path = config.config_filename()
36
38
        if os.path.isfile(conf_path):
37
39
                # Something is wrong in environment,
39
41
                self.fail("%s exists" % conf_path)
40
42
 
41
43
        config.ensure_config_dir_exists()
42
 
        conf = open(conf_path,'wb')
 
44
        f = open(conf_path,'wb')
43
45
        try:
44
 
            conf.write("""[DEFAULT]
 
46
            f.write("""[DEFAULT]
45
47
email=Joe Foo <joe@foo.com>
46
48
log_format=line
47
49
""")
48
50
        finally:
49
 
            conf.close()
 
51
            f.close()
 
52
 
 
53
    def _make_simple_branch(self, relpath='.'):
 
54
        wt = self.make_branch_and_tree(relpath)
 
55
        wt.commit('first revision')
 
56
        wt.commit('second revision')
 
57
        return wt
50
58
 
51
59
    def test_log_default_format(self):
52
 
        self.run_bzr('init')
53
 
        open('a', 'wb').write('foo\n')
54
 
        self.run_bzr('add a')
55
 
 
56
 
        self.run_bzr('commit -m 1')
57
 
        open('a', 'wb').write('baz\n')
58
 
 
59
 
        self.run_bzr('commit -m 2')
60
 
 
61
 
        # only the lines formatter is this short
62
 
        self.assertEquals(3, len(self.run_bzr('log')[0].split('\n')))
 
60
        self._make_simple_branch()
 
61
        # only the lines formatter is this short, one line by revision
 
62
        log = self.run_bzr('log')[0]
 
63
        self.assertEquals(2, len(log.splitlines()))
63
64
 
64
65
    def test_log_format_arg(self):
65
 
        self.run_bzr('init')
66
 
        open('a', 'wb').write('foo\n')
67
 
        self.run_bzr('add a')
68
 
 
69
 
        self.run_bzr('commit -m 1')
70
 
        open('a', 'wb').write('baz\n')
71
 
 
72
 
        self.run_bzr('commit -m 2')
73
 
 
74
 
        self.assertEquals(7,
75
 
            len(self.run_bzr('log --log-format short')[0].split('\n')))
 
66
        self._make_simple_branch()
 
67
        log = self.run_bzr(['log', '--log-format', 'short'])[0]
76
68
 
77
69
    def test_missing_default_format(self):
78
 
        os.mkdir('a')
79
 
        os.chdir('a')
80
 
        self.run_bzr('init')
81
 
 
82
 
        open('a', 'wb').write('foo\n')
83
 
        self.run_bzr('add a')
84
 
        self.run_bzr('commit -m 1')
85
 
 
86
 
        os.chdir('..')
87
 
        self.run_bzr('branch a b')
88
 
        os.chdir('a')
89
 
 
90
 
        open('a', 'wb').write('bar\n')
91
 
        self.run_bzr('commit -m 2')
92
 
 
93
 
        open('a', 'wb').write('baz\n')
94
 
        self.run_bzr('commit -m 3')
95
 
 
96
 
        os.chdir('../b')
97
 
 
98
 
        self.assertEquals(5,
99
 
            len(self.run_bzr('missing', retcode=1)[0].split('\n')))
100
 
 
101
 
        os.chdir('..')
 
70
        wt = self._make_simple_branch('a')
 
71
        self.run_bzr(['branch', 'a', 'b'])
 
72
        wt.commit('third revision')
 
73
        wt.commit('fourth revision')
 
74
 
 
75
        missing = self.run_bzr('missing', retcode=1, working_dir='b')[0]
 
76
        # one line for 'Using save location'
 
77
        # one line for 'You are missing 2 revision(s)'
 
78
        # one line by missing revision (the line log format is used as
 
79
        # configured)
 
80
        self.assertEquals(4, len(missing.splitlines()))
102
81
 
103
82
    def test_missing_format_arg(self):
104
 
        os.mkdir('a')
105
 
        os.chdir('a')
106
 
        self.run_bzr('init')
107
 
 
108
 
        open('a', 'wb').write('foo\n')
109
 
        self.run_bzr('add a')
110
 
        self.run_bzr('commit -m 1')
111
 
 
112
 
        os.chdir('..')
113
 
        self.run_bzr('branch a b')
114
 
        os.chdir('a')
115
 
 
116
 
        open('a', 'wb').write('bar\n')
117
 
        self.run_bzr('commit -m 2')
118
 
 
119
 
        open('a', 'wb').write('baz\n')
120
 
        self.run_bzr('commit -m 3')
121
 
 
122
 
        os.chdir('../b')
123
 
 
124
 
        self.assertEquals(9,
125
 
            len(self.run_bzr('missing --log-format short',
126
 
                retcode=1)[0].split('\n')))
127
 
 
128
 
        os.chdir('..')
 
83
        wt = self._make_simple_branch('a')
 
84
        self.run_bzr(['branch', 'a', 'b'])
 
85
        wt.commit('third revision')
 
86
        wt.commit('fourth revision')
 
87
 
 
88
        missing = self.run_bzr(['missing', '--log-format', 'short'],
 
89
                               retcode=1, working_dir='b')[0]
 
90
        # one line for 'Using save location'
 
91
        # one line for 'You are missing 2 revision(s)'
 
92
        # three lines by missing revision
 
93
        self.assertEquals(8, len(missing.splitlines()))
129
94
 
130
95
    def test_logformat_gnu_changelog(self):
131
96
        # from http://launchpad.net/bugs/29582/
132
 
        repo_url = self.make_trivial_history()
133
 
 
134
 
        out, err = self.run_bzr(
135
 
            ['log', self.get_url('repo/a'),
136
 
             '--log-format=gnu-changelog',
137
 
             '--timezone=utc'])
138
 
        self.assertEquals(err, '')
139
 
        self.assertEqualDiff(out,
140
 
"""2009-03-03  Joe Foo  <joe@foo.com>
141
 
 
142
 
\tcommit 1
143
 
 
144
 
""")
145
 
 
146
 
    def make_trivial_history(self):
147
 
        """Make a one-commit history and return the URL of the branch"""
148
 
        repo = self.make_repository('repo', shared=True, format='1.6')
149
 
        bb = self.make_branch_builder('repo/a')
150
 
        bb.start_series()
151
 
        bb.build_snapshot('rev-1', None,
152
 
            [('add', ('', 'root-id', 'directory', ''))],
153
 
            timestamp=1236045060)
154
 
        bb.finish_series()
155
 
        return self.get_url('repo/a')
156
 
 
 
97
        wt = self.make_branch_and_tree('.')
 
98
        wt.commit('first revision', timestamp=1236045060,
 
99
                  timezone=0) # Aka UTC
 
100
 
 
101
        log, err = self.run_bzr(['log', '--log-format', 'gnu-changelog',
 
102
                                 '--timezone=utc'])
 
103
        self.assertEquals('', err)
 
104
        expected = """2009-03-03  Joe Foo  <joe@foo.com>
 
105
 
 
106
\tfirst revision
 
107
 
 
108
"""
 
109
        self.assertEqualDiff(expected, log)