~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Ian Clatworthy
  • Date: 2007-11-15 07:44:38 UTC
  • mfrom: (2978.6.2 bzr.kg)
  • mto: This revision was merged to the branch mainline in revision 2997.
  • Revision ID: ian.clatworthy@internode.on.net-20071115074438-33inxrb538wffpow
Use normalize_log to more accurately test blackbox log output (Kent Gibson)

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
import bzrlib
24
24
from bzrlib.tests.blackbox import ExternalBase
25
25
from bzrlib.tests import TestCaseInTempDir, TestCaseWithTransport
 
26
from bzrlib.tests.test_log import (
 
27
    normalize_log,
 
28
    )
26
29
 
27
30
 
28
31
class TestLog(ExternalBase):
188
191
    def test_merges_are_indented_by_level(self):
189
192
        self._prepare()
190
193
        out,err = self.run_bzr('log')
191
 
        # the log will look something like:
192
 
#        self.assertEqual("""\
193
 
#------------------------------------------------------------
194
 
#revno: 2
195
 
#committer: Robert Collins <foo@example.com>
196
 
#branch nick: parent
197
 
#timestamp: Tue 2006-03-28 22:31:40 +1100
198
 
#message:
199
 
#  merge branch 1
200
 
#    ------------------------------------------------------------
201
 
#    revno: 1.1.2  
202
 
#    committer: Robert Collins <foo@example.com>
203
 
#    branch nick: child
204
 
#    timestamp: Tue 2006-03-28 22:31:40 +1100
205
 
#    message:
206
 
#      merge branch 2
207
 
#        ------------------------------------------------------------
208
 
#        revno: 1.1.1.1
209
 
#        committer: Robert Collins <foo@example.com>
210
 
#        branch nick: smallerchild
211
 
#        timestamp: Tue 2006-03-28 22:31:40 +1100
212
 
#        message:
213
 
#          branch 2
214
 
#    ------------------------------------------------------------
215
 
#    revno: 1.1.1
216
 
#    committer: Robert Collins <foo@example.com>
217
 
#    branch nick: child
218
 
#    timestamp: Tue 2006-03-28 22:31:40 +1100
219
 
#    message:
220
 
#      branch 1
221
 
#------------------------------------------------------------
222
 
#revno: 1
223
 
#committer: Robert Collins <foo@example.com>
224
 
#branch nick: parent
225
 
#timestamp: Tue 2006-03-28 22:31:39 +1100
226
 
#message:
227
 
#  first post
228
 
#""", out)
229
 
        # but we dont have a nice pattern matcher hooked up yet, so:
230
 
        # we check for the indenting of the commit message and the 
231
 
        # revision numbers 
232
 
        self.assertTrue('revno: 2' in out)
233
 
        self.assertTrue('  merge branch 1' in out)
234
 
        self.assertTrue('    revno: 1.1.2' in out)
235
 
        self.assertTrue('      merge branch 2' in out)
236
 
        self.assertTrue('        revno: 1.1.1.1' in out)
237
 
        self.assertTrue('          branch 2' in out)
238
 
        self.assertTrue('    revno: 1.1.1' in out)
239
 
        self.assertTrue('      branch 1' in out)
240
 
        self.assertTrue('revno: 1\n' in out)
241
 
        self.assertTrue('  first post' in out)
242
194
        self.assertEqual('', err)
 
195
        log = normalize_log(out)
 
196
        self.assertEqualDiff(log, """\
 
197
------------------------------------------------------------
 
198
revno: 2
 
199
committer: Lorem Ipsum <test@example.com>
 
200
branch nick: parent
 
201
timestamp: Just now
 
202
message:
 
203
  merge branch 1
 
204
    ------------------------------------------------------------
 
205
    revno: 1.1.2
 
206
    committer: Lorem Ipsum <test@example.com>
 
207
    branch nick: child
 
208
    timestamp: Just now
 
209
    message:
 
210
      merge branch 2
 
211
        ------------------------------------------------------------
 
212
        revno: 1.1.1.1.1
 
213
        committer: Lorem Ipsum <test@example.com>
 
214
        branch nick: smallerchild
 
215
        timestamp: Just now
 
216
        message:
 
217
          branch 2
 
218
    ------------------------------------------------------------
 
219
    revno: 1.1.1
 
220
    committer: Lorem Ipsum <test@example.com>
 
221
    branch nick: child
 
222
    timestamp: Just now
 
223
    message:
 
224
      branch 1
 
225
------------------------------------------------------------
 
226
revno: 1
 
227
committer: Lorem Ipsum <test@example.com>
 
228
branch nick: parent
 
229
timestamp: Just now
 
230
message:
 
231
  first post
 
232
""")
243
233
 
244
234
    def test_merges_single_merge_rev(self):
245
235
        self._prepare()
246
236
        out,err = self.run_bzr('log -r1.1.2')
247
 
        # the log will look something like:
248
 
#        self.assertEqual("""\
249
 
#------------------------------------------------------------
250
 
#revno: 1.1.2  
251
 
#committer: Robert Collins <foo@example.com>
252
 
#branch nick: child
253
 
#timestamp: Tue 2006-03-28 22:31:40 +1100
254
 
#message:
255
 
#  merge branch 2
256
 
#    ------------------------------------------------------------
257
 
#    revno: 1.1.1.1
258
 
#    committer: Robert Collins <foo@example.com>
259
 
#    branch nick: smallerchild
260
 
#    timestamp: Tue 2006-03-28 22:31:40 +1100
261
 
#    message:
262
 
#      branch 2
263
 
#""", out)
264
 
        # but we dont have a nice pattern matcher hooked up yet, so:
265
 
        # we check for the indenting of the commit message and the 
266
 
        # revision numbers 
267
 
        self.assertTrue('revno: 2' not in out)
268
 
        self.assertTrue('  merge branch 1' not in out)
269
 
        self.assertTrue('revno: 1.1.2' in out)
270
 
        self.assertTrue('  merge branch 2' in out)
271
 
        self.assertTrue('    revno: 1.1.1.1' in out)
272
 
        self.assertTrue('      branch 2' in out)
273
 
        self.assertTrue('revno: 1.1.1\n' not in out)
274
 
        self.assertTrue('  branch 1' not in out)
275
 
        self.assertTrue('revno: 1\n' not in out)
276
 
        self.assertTrue('  first post' not in out)
277
237
        self.assertEqual('', err)
 
238
        log = normalize_log(out)
 
239
        self.assertEqualDiff(log, """\
 
240
------------------------------------------------------------
 
241
revno: 1.1.2
 
242
committer: Lorem Ipsum <test@example.com>
 
243
branch nick: child
 
244
timestamp: Just now
 
245
message:
 
246
  merge branch 2
 
247
    ------------------------------------------------------------
 
248
    revno: 1.1.1.1.1
 
249
    committer: Lorem Ipsum <test@example.com>
 
250
    branch nick: smallerchild
 
251
    timestamp: Just now
 
252
    message:
 
253
      branch 2
 
254
""")
278
255
 
279
256
    def test_merges_partial_range(self):
280
257
        self._prepare()
281
258
        out,err = self.run_bzr('log -r1.1.1..1.1.2')
282
 
        # the log will look something like:
283
 
#        self.assertEqual("""\
284
 
#------------------------------------------------------------
285
 
#revno: 1.1.2  
286
 
#committer: Robert Collins <foo@example.com>
287
 
#branch nick: child
288
 
#timestamp: Tue 2006-03-28 22:31:40 +1100
289
 
#message:
290
 
#  merge branch 2
291
 
#    ------------------------------------------------------------
292
 
#    revno: 1.1.1.1
293
 
#    committer: Robert Collins <foo@example.com>
294
 
#    branch nick: smallerchild
295
 
#    timestamp: Tue 2006-03-28 22:31:40 +1100
296
 
#    message:
297
 
#      branch 2
298
 
#------------------------------------------------------------
299
 
#revno: 1.1.1
300
 
#committer: Robert Collins <foo@example.com>
301
 
#branch nick: child
302
 
#timestamp: Tue 2006-03-28 22:31:40 +1100
303
 
#message:
304
 
#  branch 1
305
 
#""", out)
306
 
        # but we dont have a nice pattern matcher hooked up yet, so:
307
 
        # we check for the indenting of the commit message and the 
308
 
        # revision numbers 
309
 
        self.assertTrue('revno: 2' not in out)
310
 
        self.assertTrue('  merge branch 1' not in out)
311
 
        self.assertTrue('revno: 1.1.2' in out)
312
 
        self.assertTrue('  merge branch 2' in out)
313
 
        self.assertTrue('    revno: 1.1.1.1' in out)
314
 
        self.assertTrue('      branch 2' in out)
315
 
        self.assertTrue('revno: 1.1.1' in out)
316
 
        self.assertTrue('  branch 1' in out)
317
 
        self.assertTrue('revno: 1\n' not in out)
318
 
        self.assertTrue('  first post' not in out)
319
259
        self.assertEqual('', err)
 
260
        log = normalize_log(out)
 
261
        self.assertEqualDiff(log, """\
 
262
------------------------------------------------------------
 
263
revno: 1.1.2
 
264
committer: Lorem Ipsum <test@example.com>
 
265
branch nick: child
 
266
timestamp: Just now
 
267
message:
 
268
  merge branch 2
 
269
    ------------------------------------------------------------
 
270
    revno: 1.1.1.1.1
 
271
    committer: Lorem Ipsum <test@example.com>
 
272
    branch nick: smallerchild
 
273
    timestamp: Just now
 
274
    message:
 
275
      branch 2
 
276
------------------------------------------------------------
 
277
revno: 1.1.1
 
278
committer: Lorem Ipsum <test@example.com>
 
279
branch nick: child
 
280
timestamp: Just now
 
281
message:
 
282
  branch 1
 
283
""")
320
284
 
321
285
    def test_merges_nonsupporting_formatter(self):
322
286
        self._prepare()