Merge lp:~pr0gg3d/loggerhead/annotate_zero_size_820065 into lp:loggerhead

Proposed by Francesco Del Degan
Status: Superseded
Proposed branch: lp:~pr0gg3d/loggerhead/annotate_zero_size_820065
Merge into: lp:loggerhead
Diff against target: 35 lines (+15/-0)
2 files modified
loggerhead/controllers/annotate_ui.py (+4/-0)
loggerhead/tests/test_controllers.py (+11/-0)
To merge this branch: bzr merge lp:~pr0gg3d/loggerhead/annotate_zero_size_820065
Reviewer Review Type Date Requested Status
Loggerhead Reviewers Pending
Review via email: mp+70789@code.launchpad.net

This proposal has been superseded by a proposal from 2011-08-09.

Description of the change

This fixes #820065

The bug occurs when trying to annotate a zero-sized file.
The last_lineno is None, and an exception is raised at the end of method.

To post a comment you must log in.
Revision history for this message
John A Meinel (jameinel) wrote :

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 8/8/2011 11:09 PM, Francesco Del Degan wrote:
> Francesco Del Degan has proposed merging
> lp:~pr0gg3d/loggerhead/annotate_zero_size_820065 into lp:loggerhead.
>
> Requested reviews: Loggerhead Reviewers (loggerhead-reviewers)
> Related bugs: Bug #820065 in loggerhead: "TypeError: unsupported
> operand type(s) for -: 'int' and 'NoneType'"
> https://bugs.launchpad.net/loggerhead/+bug/820065
>
> For more details, see:
> https://code.launchpad.net/~pr0gg3d/loggerhead/annotate_zero_size_820065/+merge/70789
>
> This fixes #820065
>
> The bug occurs when trying to annotate a zero-sized file. The
> last_lineno is None, and an exception is raised at the end of
> method.
>
>

Good change, but again, it would be nice to have a simple test for this.

John
=:->

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk5BBXsACgkQJdeBCYSNAAPa1gCgsUeNvuKXWegQldo8I3bNUGGD
iz8AoMPb5kLkd+99xuxXSZRboFZ0rWJA
=wL8n
-----END PGP SIGNATURE-----

454. By Francesco Del Degan

Added test against zero-sized files

455. By Francesco Del Degan

Merged from lp:~pr0gg3d/loggerhead/annotate_comment_notpresent_812583

456. By Francesco Del Degan

Test fixture

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'loggerhead/controllers/annotate_ui.py'
2--- loggerhead/controllers/annotate_ui.py 2011-04-22 17:22:26 +0000
3+++ loggerhead/controllers/annotate_ui.py 2011-08-09 11:06:35 +0000
4@@ -58,6 +58,10 @@
5 last_lineno = lineno
6 last_line_revid = line_revid
7
8+ # Zero-size file. Return empty revisions.
9+ if last_lineno is None:
10+ return revisions
11+
12 # We never set a revspan for the last revision during the loop above, so set it here.
13 revisions[last_lineno].revspan = lineno - last_lineno + 1
14
15
16=== modified file 'loggerhead/tests/test_controllers.py'
17--- loggerhead/tests/test_controllers.py 2011-06-28 16:06:12 +0000
18+++ loggerhead/tests/test_controllers.py 2011-08-09 11:06:35 +0000
19@@ -138,6 +138,17 @@
20 self.assertEqual('2', annotated[1].change.revno)
21 self.assertEqual('1', annotated[2].change.revno)
22
23+ def test_annotate_file_zero_sized(self):
24+ # Test against a zero-sized file. No annotation must be present.
25+ history = [('rev1', '')]
26+ ann_ui = self.make_annotate_ui_for_file_history('file_id', history)
27+ # A lot of this state is set up by __call__, but we'll do it directly
28+ # here.
29+ ann_ui.args = ['rev1']
30+ annotate_info = ann_ui.get_values('filename',
31+ kwargs={'file_id': 'file_id'}, headers={})
32+ annotated = annotate_info['annotated']
33+ self.assertEqual(0, len(annotated))
34
35 class TestFileDiffUI(BasicTests):
36

Subscribers

People subscribed via source and target branches