~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: 2009-01-15 22:51:27 UTC
  • mfrom: (3940.1.5 bzr.log-short-file-fix)
  • mto: This revision was merged to the branch mainline in revision 3943.
  • Revision ID: ian.clatworthy@canonical.com-20090115225127-hbl4j2cgoy7zu2oz
Fix log --short/--line FILE (Ian Clatworthy)

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
"""Black-box tests for bzr log."""
20
20
 
21
 
import os
 
21
import os, re
22
22
 
23
23
from bzrlib import osutils
24
24
from bzrlib.tests.blackbox import ExternalBase
515
515
        tree.bzrdir.destroy_workingtree()
516
516
        self.run_bzr('log tree/file')
517
517
 
518
 
    def test_log_file(self):
519
 
        """The log for a particular file should only list revs for that file"""
 
518
    def prepare_tree(self):
520
519
        tree = self.make_branch_and_tree('parent')
521
520
        self.build_tree(['parent/file1', 'parent/file2', 'parent/file3'])
522
521
        tree.add('file1')
531
530
        tree.merge_from_branch(child_tree.branch)
532
531
        tree.commit(message='merge child branch')
533
532
        os.chdir('parent')
 
533
 
 
534
    def test_log_file(self):
 
535
        """The log for a particular file should only list revs for that file"""
 
536
        self.prepare_tree()
534
537
        log = self.run_bzr('log file1')[0]
535
538
        self.assertContainsRe(log, 'revno: 1\n')
536
539
        self.assertNotContainsRe(log, 'revno: 2\n')
573
576
        self.assertNotContainsRe(log, 'revno: 3\n')
574
577
        self.assertNotContainsRe(log, 'revno: 3.1.1\n')
575
578
        self.assertNotContainsRe(log, 'revno: 4\n')
 
579
 
 
580
    def test_line_log_file(self):
 
581
        """The line log for a file should only list relevant mainline revs"""
 
582
        # Note: this also implicitly  covers the short logging case.
 
583
        # We test using --line in preference to --short because matching
 
584
        # revnos in the output of --line is more reliable.
 
585
        self.prepare_tree()
 
586
 
 
587
        # full history of file1
 
588
        log = self.run_bzr('log --line file1')[0]
 
589
        self.assertContainsRe(log, '^1:', re.MULTILINE)
 
590
        self.assertNotContainsRe(log, '^2:', re.MULTILINE)
 
591
        self.assertNotContainsRe(log, '^3:', re.MULTILINE)
 
592
        self.assertNotContainsRe(log, '^3.1.1:', re.MULTILINE)
 
593
        self.assertNotContainsRe(log, '^4:', re.MULTILINE)
 
594
 
 
595
        # full history of file2
 
596
        log = self.run_bzr('log --line file2')[0]
 
597
        self.assertNotContainsRe(log, '^1:', re.MULTILINE)
 
598
        self.assertContainsRe(log, '^2:', re.MULTILINE)
 
599
        self.assertNotContainsRe(log, '^3:', re.MULTILINE)
 
600
        self.assertNotContainsRe(log, '^3.1.1:', re.MULTILINE)
 
601
        self.assertContainsRe(log, '^4:', re.MULTILINE)
 
602
 
 
603
        # full history of file3
 
604
        log = self.run_bzr('log --line file3')[0]
 
605
        self.assertNotContainsRe(log, '^1:', re.MULTILINE)
 
606
        self.assertNotContainsRe(log, '^2:', re.MULTILINE)
 
607
        self.assertContainsRe(log, '^3:', re.MULTILINE)
 
608
        self.assertNotContainsRe(log, '^3.1.1:', re.MULTILINE)
 
609
        self.assertNotContainsRe(log, '^4:', re.MULTILINE)
 
610
 
 
611
        # file in a merge revision
 
612
        log = self.run_bzr('log --line -r3.1.1 file2')[0]
 
613
        self.assertNotContainsRe(log, '^1:', re.MULTILINE)
 
614
        self.assertNotContainsRe(log, '^2:', re.MULTILINE)
 
615
        self.assertNotContainsRe(log, '^3:', re.MULTILINE)
 
616
        self.assertContainsRe(log, '^3.1.1:', re.MULTILINE)
 
617
        self.assertNotContainsRe(log, '^4:', re.MULTILINE)
 
618
 
 
619
        # file in a mainline revision
 
620
        log = self.run_bzr('log --line -r4 file2')[0]
 
621
        self.assertNotContainsRe(log, '^1:', re.MULTILINE)
 
622
        self.assertNotContainsRe(log, '^2:', re.MULTILINE)
 
623
        self.assertNotContainsRe(log, '^3:', re.MULTILINE)
 
624
        self.assertNotContainsRe(log, '^3.1.1:', re.MULTILINE)
 
625
        self.assertContainsRe(log, '^4:', re.MULTILINE)
 
626
 
 
627
        # file since a revision
 
628
        log = self.run_bzr('log --line -r3.. file2')[0]
 
629
        self.assertNotContainsRe(log, '^1:', re.MULTILINE)
 
630
        self.assertNotContainsRe(log, '^2:', re.MULTILINE)
 
631
        self.assertNotContainsRe(log, '^3:', re.MULTILINE)
 
632
        self.assertNotContainsRe(log, '^3.1.1:', re.MULTILINE)
 
633
        self.assertContainsRe(log, '^4:', re.MULTILINE)
 
634
 
 
635
        # file up to a revision
 
636
        log = self.run_bzr('log --line -r..3 file2')[0]
 
637
        self.assertNotContainsRe(log, '^1:', re.MULTILINE)
 
638
        self.assertContainsRe(log, '^2:', re.MULTILINE)
 
639
        self.assertNotContainsRe(log, '^3:', re.MULTILINE)
 
640
        self.assertNotContainsRe(log, '^3.1.1:', re.MULTILINE)
 
641
        self.assertNotContainsRe(log, '^4:', re.MULTILINE)