Rev 3844: Reproduce bug #300055. in lp:~vila/bzr/300055-log-forward
Vincent Ladeuil
v.ladeuil+lp at free.fr
Thu Nov 20 10:53:38 GMT 2008
At lp:~vila/bzr/300055-log-forward
------------------------------------------------------------
revno: 3844
revision-id: v.ladeuil+lp at free.fr-20081120105333-fgitmj50y2ceuchr
parent: v.ladeuil+lp at free.fr-20081120095527-imjiaptw3w5m2vbv
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: 300055-log-forward
timestamp: Thu 2008-11-20 11:53:33 +0100
message:
Reproduce bug #300055.
* bzrlib/tests/test_log.py:
(TestGetViewRevisions.test_get_view_revisions_forward,
TestGetViewRevisions.test_get_view_revisions_reverse,
TestGetViewRevisions.test_get_view_revisions_merge,
TestGetViewRevisions.test_get_view_revisions_merge_reverse,
TestGetViewRevisions.test_get_view_revisions_merge2): More
cosmetic changes.
(TestReverseByDepth): New tests to reprpduce bug #300055.
-------------- next part --------------
=== modified file 'bzrlib/tests/test_log.py'
--- a/bzrlib/tests/test_log.py 2008-11-20 09:55:27 +0000
+++ b/bzrlib/tests/test_log.py 2008-11-20 10:53:33 +0000
@@ -796,9 +796,10 @@
revisions = list(log.get_view_revisions(
mainline_revs, rev_nos, wt.branch, 'forward'))
self.assertEqual([('1', '1', 0), ('2', '2', 0), ('3', '3', 0)],
- revisions)
- revisions2 = list(log.get_view_revisions(mainline_revs, rev_nos, wt.branch,
- 'forward', include_merges=False))
+ revisions)
+ revisions2 = list(log.get_view_revisions(
+ mainline_revs, rev_nos, wt.branch, 'forward',
+ include_merges=False))
self.assertEqual(revisions, revisions2)
def test_get_view_revisions_reverse(self):
@@ -809,7 +810,7 @@
revisions = list(log.get_view_revisions(
mainline_revs, rev_nos, wt.branch, 'reverse'))
self.assertEqual([('3', '3', 0), ('2', '2', 0), ('1', '1', 0), ],
- revisions)
+ revisions)
revisions2 = list(log.get_view_revisions(
mainline_revs, rev_nos, wt.branch, 'reverse',
include_merges=False))
@@ -823,14 +824,14 @@
revisions = list(log.get_view_revisions(
mainline_revs, rev_nos, wt.branch, 'forward'))
self.assertEqual([('1', '1', 0), ('2', '2', 0), ('3', '3', 0),
- ('4b', '4', 0), ('4a', '3.1.1', 1)],
- revisions)
+ ('4b', '4', 0), ('4a', '3.1.1', 1)],
+ revisions)
revisions = list(log.get_view_revisions(
mainline_revs, rev_nos, wt.branch, 'forward',
include_merges=False))
self.assertEqual([('1', '1', 0), ('2', '2', 0), ('3', '3', 0),
- ('4b', '4', 0)],
- revisions)
+ ('4b', '4', 0)],
+ revisions)
def test_get_view_revisions_merge_reverse(self):
"""Test get_view_revisions in reverse when there are merges"""
@@ -840,14 +841,14 @@
revisions = list(log.get_view_revisions(
mainline_revs, rev_nos, wt.branch, 'reverse'))
self.assertEqual([('4b', '4', 0), ('4a', '3.1.1', 1),
- ('3', '3', 0), ('2', '2', 0), ('1', '1', 0)],
- revisions)
+ ('3', '3', 0), ('2', '2', 0), ('1', '1', 0)],
+ revisions)
revisions = list(log.get_view_revisions(
mainline_revs, rev_nos, wt.branch, 'reverse',
include_merges=False))
self.assertEqual([('4b', '4', 0), ('3', '3', 0), ('2', '2', 0),
- ('1', '1', 0)],
- revisions)
+ ('1', '1', 0)],
+ revisions)
def test_get_view_revisions_merge2(self):
"""Test get_view_revisions when there are merges"""
@@ -857,15 +858,15 @@
revisions = list(log.get_view_revisions(
mainline_revs, rev_nos, wt.branch, 'forward'))
expected = [('1', '1', 0), ('2', '2', 0), ('3c', '3', 0),
- ('3a', '2.1.1', 1), ('3b', '2.2.1', 1), ('4b', '4', 0),
- ('4a', '2.2.2', 1)]
+ ('3a', '2.1.1', 1), ('3b', '2.2.1', 1), ('4b', '4', 0),
+ ('4a', '2.2.2', 1)]
self.assertEqual(expected, revisions)
revisions = list(log.get_view_revisions(
mainline_revs, rev_nos, wt.branch, 'forward',
include_merges=False))
self.assertEqual([('1', '1', 0), ('2', '2', 0), ('3c', '3', 0),
- ('4b', '4', 0)],
- revisions)
+ ('4b', '4', 0)],
+ revisions)
class TestGetRevisionsTouchingFileID(tests.TestCaseWithTransport):
@@ -1062,3 +1063,44 @@
self.assertEqual('jsmith at example.com', lf.short_author(rev))
rev.properties['author'] = 'John Smith jsmith at example.com'
self.assertEqual('John Smith', lf.short_author(rev))
+
+
+class TestReverseByDepth(tests.TestCase):
+ """Test reverse_by_depth behavior.
+
+ This is used to present revisions in forward (oldest first) order in a nice
+ layout.
+
+ The tests use lighter revision description to ease reading.
+ """
+
+ def assertReversed(self, forward, backward):
+ # Transform the descriptions to suit the API: tests use (revno, depth),
+ # while the API expects (revid, revno, depth)
+ def complete_revisions(l):
+ """Transform the description to suit the API.
+
+ Tests use (revno, depth) whil the API expects (revid, revno, depth).
+ Since the revid is arbitrary, we just duplicate revno
+ """
+ return [ (r, r, d) for r, d in l]
+ forward = complete_revisions(forward)
+ backward= complete_revisions(backward)
+ self.assertEqual(forward, log.reverse_by_depth(backward))
+
+
+ def test_mainline_revisions(self):
+ self.assertReversed([( '1', 0), ('2', 0)],
+ [('2', 0), ('1', 0)])
+
+ def test_merged_revisions(self):
+ self.assertReversed([('1', 0), ('2', 0), ('1.1', 1), ('1.2', 1),],
+ [('2', 0), ('1.2', 1), ('1.1', 1), ('1', 0),])
+
+ def test_shifted_merged_revisions(self):
+ """Test irregular layout.
+
+ Requesting revisions touching a file can produce "holes" in the depths.
+ """
+ self.assertReversed([('1', 0), ('2', 0), ('1.1', 2), ('1.2', 2),],
+ [('2', 0), ('1.2', 2), ('1.1', 2), ('1', 0),])
More information about the bazaar-commits
mailing list