~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/testlog.py

  • Committer: Aaron Bentley
  • Date: 2005-09-19 02:52:24 UTC
  • mto: (1185.1.29)
  • mto: This revision was merged to the branch mainline in revision 1390.
  • Revision ID: aaron.bentley@utoronto.ca-20050919025224-1cc3c70640086e09
TODO re tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
import os
18
18
from cStringIO import StringIO
19
19
 
20
 
from bzrlib.tests import BzrTestBase, TestCaseInTempDir
21
 
from bzrlib.log import LogFormatter, show_log, LongLogFormatter, ShortLogFormatter
 
20
from bzrlib.selftest import BzrTestBase, TestCaseInTempDir
 
21
from bzrlib.log import LogFormatter, show_log, LongLogFormatter
22
22
from bzrlib.branch import Branch
23
23
from bzrlib.errors import InvalidRevisionNumber
24
24
 
57
57
            expected = kw.get(n, [])
58
58
 
59
59
            # tests are written with unix paths; fix them up for windows
60
 
            #if os.sep != '/':
61
 
            #    expected = [x.replace('/', os.sep) for x in expected]
 
60
            if os.sep != '/':
 
61
                expected = [x.replace('/', os.sep) for x in expected]
62
62
 
63
63
            # strip out only the path components
64
64
            got = [x[0] for x in getattr(delta, n)]
65
65
            self.assertEquals(expected, got)
66
66
 
67
67
    def test_cur_revno(self):
68
 
        b = Branch(u'.', init=True)
 
68
        b = Branch('.', init=True)
69
69
 
70
70
        lf = LogCatcher()
71
 
        b.working_tree().commit('empty commit')
 
71
        b.commit('empty commit')
72
72
        show_log(b, lf, verbose=True, start_revision=1, end_revision=1)
73
73
        self.assertRaises(InvalidRevisionNumber, show_log, b, lf,
74
74
                          start_revision=2, end_revision=1) 
84
84
                          start_revision=1, end_revision=-1) 
85
85
 
86
86
    def test_cur_revno(self):
87
 
        b = Branch.initialize(u'.')
 
87
        b = Branch.initialize('.')
88
88
 
89
89
        lf = LogCatcher()
90
 
        b.working_tree().commit('empty commit')
 
90
        b.commit('empty commit')
91
91
        show_log(b, lf, verbose=True, start_revision=1, end_revision=1)
92
92
        self.assertRaises(InvalidRevisionNumber, show_log, b, lf,
93
93
                          start_revision=2, end_revision=1) 
105
105
    def test_simple_log(self):
106
106
        eq = self.assertEquals
107
107
        
108
 
        b = Branch.initialize(u'.')
 
108
        b = Branch.initialize('.')
109
109
 
110
110
        lf = LogCatcher()
111
111
        show_log(b, lf)
112
112
        # no entries yet
113
113
        eq(lf.logs, [])
114
114
 
115
 
        b.working_tree().commit('empty commit')
 
115
 
 
116
        b.commit('empty commit')
116
117
        lf = LogCatcher()
117
118
        show_log(b, lf, verbose=True)
118
119
        eq(len(lf.logs), 1)
122
123
        self.log('log delta: %r' % d)
123
124
        self.checkDelta(d)
124
125
 
 
126
 
125
127
        self.build_tree(['hello'])
126
 
        b.working_tree().add('hello')
127
 
        b.working_tree().commit('add one file')
 
128
        b.add('hello')
 
129
        b.commit('add one file')
128
130
 
129
131
        lf = StringIO()
130
132
        # log using regular thing
151
153
        
152
154
        # commit a log message with control characters
153
155
        msg = "All 8-bit chars: " +  ''.join([unichr(x) for x in range(256)])
154
 
        self.log("original commit message: %r", msg)
155
 
        b.working_tree().commit(msg)
 
156
        b.commit(msg)
156
157
        lf = LogCatcher()
157
158
        show_log(b, lf, verbose=True)
158
159
        committed_msg = lf.logs[0].rev.message
159
160
        self.log("escaped commit message: %r", committed_msg)
160
161
        self.assert_(msg != committed_msg)
161
162
        self.assert_(len(committed_msg) > len(msg))
162
 
 
163
 
        # Check that log message with only XML-valid characters isn't
164
 
        # escaped.  As ElementTree apparently does some kind of
165
 
        # newline conversion, neither LF (\x0A) nor CR (\x0D) are
166
 
        # included in the test commit message, even though they are
167
 
        # valid XML 1.0 characters.
168
 
        msg = "\x09" + ''.join([unichr(x) for x in range(0x20, 256)])
169
 
        self.log("original commit message: %r", msg)
170
 
        b.working_tree().commit(msg)
171
 
        lf = LogCatcher()
172
 
        show_log(b, lf, verbose=True)
173
 
        committed_msg = lf.logs[0].rev.message
174
 
        self.log("escaped commit message: %r", committed_msg)
175
 
        self.assert_(msg == committed_msg)
176
 
 
177
 
    def test_trailing_newlines(self):
178
 
        b = Branch.initialize(u'.')
179
 
        b.nick='test'
180
 
        wt = b.working_tree()
181
 
        open('a', 'wb').write('hello moto\n')
182
 
        wt.add('a')
183
 
        wt.commit('simple log message', rev_id='a1'
184
 
                , timestamp=1132586655.459960938, timezone=-6*3600
185
 
                , committer='Joe Foo <joe@foo.com>')
186
 
        open('b', 'wb').write('goodbye\n')
187
 
        wt.add('b')
188
 
        wt.commit('multiline\nlog\nmessage\n', rev_id='a2'
189
 
                , timestamp=1132586842.411175966, timezone=-6*3600
190
 
                , committer='Joe Foo <joe@foo.com>')
191
 
 
192
 
        open('c', 'wb').write('just another manic monday\n')
193
 
        wt.add('c')
194
 
        wt.commit('single line with trailing newline\n', rev_id='a3'
195
 
                , timestamp=1132587176.835228920, timezone=-6*3600
196
 
                , committer = 'Joe Foo <joe@foo.com>')
197
 
 
198
 
        sio = StringIO()
199
 
        lf = ShortLogFormatter(to_file=sio)
200
 
        show_log(b, lf)
201
 
        self.assertEquals(sio.getvalue(), """\
202
 
    3 Joe Foo\t2005-11-21
203
 
      single line with trailing newline
204
 
 
205
 
    2 Joe Foo\t2005-11-21
206
 
      multiline
207
 
      log
208
 
      message
209
 
 
210
 
    1 Joe Foo\t2005-11-21
211
 
      simple log message
212
 
 
213
 
""")
214
 
 
215
 
        sio = StringIO()
216
 
        lf = LongLogFormatter(to_file=sio)
217
 
        show_log(b, lf)
218
 
        self.assertEquals(sio.getvalue(), """\
219
 
------------------------------------------------------------
220
 
revno: 3
221
 
committer: Joe Foo <joe@foo.com>
222
 
branch nick: test
223
 
timestamp: Mon 2005-11-21 09:32:56 -0600
224
 
message:
225
 
  single line with trailing newline
226
 
------------------------------------------------------------
227
 
revno: 2
228
 
committer: Joe Foo <joe@foo.com>
229
 
branch nick: test
230
 
timestamp: Mon 2005-11-21 09:27:22 -0600
231
 
message:
232
 
  multiline
233
 
  log
234
 
  message
235
 
------------------------------------------------------------
236
 
revno: 1
237
 
committer: Joe Foo <joe@foo.com>
238
 
branch nick: test
239
 
timestamp: Mon 2005-11-21 09:24:15 -0600
240
 
message:
241
 
  simple log message
242
 
""")
243
 
        
244
 
    def test_verbose_log(self):
245
 
        """Verbose log includes changed files
246
 
        
247
 
        bug #4676
248
 
        """
249
 
        b = Branch.initialize(u'.')
250
 
        self.build_tree(['a'])
251
 
        wt = b.working_tree()
252
 
        wt.add('a')
253
 
        # XXX: why does a longer nick show up?
254
 
        b.nick = 'test_verbose_log'
255
 
        wt.commit(message='add a', 
256
 
                  timestamp=1132711707, 
257
 
                  timezone=36000,
258
 
                  committer='Lorem Ipsum <test@example.com>')
259
 
        logfile = file('out.tmp', 'w+')
260
 
        formatter = LongLogFormatter(to_file=logfile)
261
 
        show_log(b, formatter, verbose=True)
262
 
        logfile.flush()
263
 
        logfile.seek(0)
264
 
        log_contents = logfile.read()
265
 
        self.assertEqualDiff(log_contents, '''\
266
 
------------------------------------------------------------
267
 
revno: 1
268
 
committer: Lorem Ipsum <test@example.com>
269
 
branch nick: test_verbose_log
270
 
timestamp: Wed 2005-11-23 12:08:27 +1000
271
 
message:
272
 
  add a
273
 
added:
274
 
  a
275
 
''')