~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-05-28 00:25:32 UTC
  • mfrom: (5264.1.2 command-help-bug-177500)
  • Revision ID: pqm@pqm.ubuntu.com-20100528002532-9bzj1fajyxckd1rg
(lifeless) Stop raising at runtime when a command has no help,
 instead have a test in the test suite that checks all known command objects.
 (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 
20
20
from itertools import izip
21
21
import os
 
22
import re
22
23
 
23
24
from bzrlib import (
24
25
    branchbuilder,
28
29
    tests,
29
30
    )
30
31
from bzrlib.tests import (
 
32
    script,
31
33
    test_log,
32
 
    features,
33
34
    )
34
35
 
35
36
 
76
77
                self.log_catcher = test_log.LogCatcher(*args, **kwargs)
77
78
                # Always return our own log formatter
78
79
                return self.log_catcher
79
 
        # Break cycle with closure over self on cleanup by removing method
80
 
        self.addCleanup(setattr, MyLogFormatter, "__new__", None)
81
80
 
82
81
        def getme(branch):
83
82
                # Always return our own log formatter class hijacking the
159
158
        self.make_linear_branch()
160
159
        self.assertLogRevnos(['-c1'], ['1'])
161
160
 
162
 
    def test_branch_revspec(self):
163
 
        foo = self.make_branch_and_tree('foo')
164
 
        bar = self.make_branch_and_tree('bar')
165
 
        self.build_tree(['foo/foo.txt', 'bar/bar.txt'])
166
 
        foo.add('foo.txt')
167
 
        bar.add('bar.txt')
168
 
        foo.commit(message='foo')
169
 
        bar.commit(message='bar')
170
 
        self.run_bzr('log -r branch:../bar', working_dir='foo')
171
 
        self.assertEqual([bar.branch.get_rev_id(1)],
172
 
                         [r.rev.revision_id
173
 
                          for r in self.get_captured_revisions()])
174
 
 
175
 
 
176
 
class TestLogExcludeCommonAncestry(TestLogWithLogCatcher):
177
 
 
178
 
    def test_exclude_common_ancestry_simple_revnos(self):
179
 
        self.make_linear_branch()
180
 
        self.assertLogRevnos(['-r1..3', '--exclude-common-ancestry'],
181
 
                             ['3', '2'])
182
 
 
183
161
 
184
162
class TestLogMergedLinearAncestry(TestLogWithLogCatcher):
185
163
 
189
167
        # stop calling run_bzr, there is no point) --vila 100118.
190
168
        builder = branchbuilder.BranchBuilder(self.get_transport())
191
169
        builder.start_series()
192
 
        # 1
193
 
        # | \
194
 
        # 2  1.1.1
195
 
        # | / |
196
 
        # 3  1.1.2
197
 
        # |   |
198
 
        # |  1.1.3
199
 
        # | / |
200
 
        # 4  1.1.4
201
 
        # | /
202
 
        # 5
203
 
 
204
170
        # mainline
205
171
        builder.build_snapshot('1', None, [
206
172
            ('add', ('', 'root-id', 'directory', ''))])
382
348
 
383
349
    def test_log_bad_message_re(self):
384
350
        """Bad --message argument gives a sensible message
385
 
 
 
351
        
386
352
        See https://bugs.launchpad.net/bzr/+bug/251352
387
353
        """
388
354
        self.make_minimal_branch()
389
355
        out, err = self.run_bzr(['log', '-m', '*'], retcode=3)
390
 
        self.assertContainsRe(err, "ERROR.*Invalid pattern.*nothing to repeat")
391
 
        self.assertNotContainsRe(err, "Unprintable exception")
392
 
        self.assertEqual(out, '')
 
356
        self.assertEqual("bzr: ERROR: Invalid regular expression"
 
357
            " in log message filter"
 
358
            ": '*'"
 
359
            ": nothing to repeat\n", err)
 
360
        self.assertEqual('', out)
393
361
 
394
362
    def test_log_unsupported_timezone(self):
395
363
        self.make_linear_branch()
443
411
        self.assertContainsRe(log, r'tags: tag1')
444
412
 
445
413
 
446
 
class TestLogSignatures(TestLog):
447
 
 
448
 
    def test_log_with_signatures(self):
449
 
        self.requireFeature(features.gpgme)
450
 
 
451
 
        tree = self.make_linear_branch(format='dirstate-tags')
452
 
 
453
 
        log = self.run_bzr("log --signatures")[0]
454
 
        self.assertTrue('signature: no signature' in log)
455
 
 
456
 
    def test_log_without_signatures(self):
457
 
        self.requireFeature(features.gpgme)
458
 
 
459
 
        tree = self.make_linear_branch(format='dirstate-tags')
460
 
 
461
 
        log = self.run_bzr("log")[0]
462
 
        self.assertFalse('signature: no signature' in log)
463
 
 
464
 
 
465
414
class TestLogVerbose(TestLog):
466
415
 
467
416
    def setUp(self):
483
432
    def test_log_short_verbose(self):
484
433
        self.assertUseShortDeltaFormat(['log', '--short', '-v'])
485
434
 
486
 
    def test_log_s_verbose(self):
487
 
        self.assertUseShortDeltaFormat(['log', '-S', '-v'])
488
 
 
489
435
    def test_log_short_verbose_verbose(self):
490
436
        self.assertUseLongDeltaFormat(['log', '--short', '-vv'])
491
437
 
947
893
        self.prepare_tree()
948
894
        os.chdir("dir1")
949
895
        self.assertLogRevnos(['dir2', 'file5'], ['5', '3'])
950
 
 
951
 
 
952
 
class MainlineGhostTests(TestLogWithLogCatcher):
953
 
 
954
 
    def setUp(self):
955
 
        super(MainlineGhostTests, self).setUp()
956
 
        tree = self.make_branch_and_tree('')
957
 
        tree.set_parent_ids(["spooky"], allow_leftmost_as_ghost=True)
958
 
        tree.add('')
959
 
        tree.commit('msg1', rev_id='rev1')
960
 
        tree.commit('msg2', rev_id='rev2')
961
 
 
962
 
    def test_log_range(self):
963
 
        self.assertLogRevnos(["-r1..2"], ["2", "1"])
964
 
 
965
 
    def test_log_norange(self):
966
 
        self.assertLogRevnos([], ["2", "1"])
967
 
 
968
 
    def test_log_range_open_begin(self):
969
 
        raise tests.KnownFailure("log with ghosts fails. bug #726466")
970
 
        (stdout, stderr) = self.run_bzr(['log', '-r..2'], retcode=3)
971
 
        self.assertEqual(["2", "1"],
972
 
                         [r.revno for r in self.get_captured_revisions()])
973
 
        self.assertEquals("bzr: ERROR: Further revision history missing.", stderr)
974
 
 
975
 
    def test_log_range_open_end(self):
976
 
        self.assertLogRevnos(["-r1.."], ["2", "1"])