Skip to content

Commit 381e4fa

Browse files
committed
Add CommitLogError exception
1 parent 9e7c8aa commit 381e4fa

7 files changed

Lines changed: 44 additions & 24 deletions

File tree

codespeed/commits/exceptions.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import absolute_import, unicode_literals
3+
4+
class CommitLogError(Exception):
5+
"""An error when trying to display commit log messages"""

codespeed/commits/git.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from django.conf import settings
77

8+
from .exceptions import CommitLogError
89

910
logger = logging.getLogger(__name__)
1011

@@ -19,8 +20,8 @@ def updaterepo(project, update=True):
1920

2021
stdout, stderr = p.communicate()
2122
if p.returncode != 0:
22-
raise RuntimeError("git pull returned %s: %s" % (p.returncode,
23-
stderr))
23+
raise CommitLogError("git pull returned %s: %s" % (p.returncode,
24+
stderr))
2425
else:
2526
return [{'error': False}]
2627
else:
@@ -32,7 +33,7 @@ def updaterepo(project, update=True):
3233
stdout, stderr = p.communicate()
3334

3435
if p.returncode != 0:
35-
raise RuntimeError("%s returned %s: %s" % (
36+
raise CommitLogError("%s returned %s: %s" % (
3637
" ".join(cmd), p.returncode, stderr))
3738
else:
3839
return [{'error': False}]
@@ -58,8 +59,8 @@ def getlogs(endrev, startrev):
5859
stdout, stderr = p.communicate()
5960

6061
if p.returncode != 0:
61-
raise RuntimeError("%s returned %s: %s" % (
62-
" ".join(cmd), p.returncode, stderr))
62+
raise CommitLogError("%s returned %s: %s" % (
63+
" ".join(cmd), p.returncode, stderr))
6364
logs = []
6465
for log in filter(None, stdout.split("\x1e")):
6566
(short_commit_id, commit_id, date_t, author_name, author_email,

codespeed/commits/github.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
Among other things, this means that the codespeed server doesn't need to have
66
git installed, the ability to write files, etc.
77
"""
8+
from __future__ import absolute_import
9+
810
import logging
911
import urllib
1012
import re
@@ -13,6 +15,8 @@
1315
import isodate
1416
from django.core.cache import cache
1517

18+
from .exceptions import CommitLogError
19+
1620
logger = logging.getLogger(__name__)
1721

1822
GITHUB_URL_RE = re.compile(
@@ -52,7 +56,7 @@ def retrieve_revision(commit_id, username, project, revision=None):
5256
cache.set(commit_url, commit_json, 86400 * 30)
5357

5458
if commit_json["message"] in ("Not Found", "Server Error",):
55-
raise RuntimeError("Unable to load %s: %s" % (commit_url, commit_json["message"]))
59+
raise CommitLogError("Unable to load %s: %s" % (commit_url, commit_json["message"]))
5660

5761
date = isodate.parse_datetime(commit_json['committer']['date'])
5862

codespeed/commits/mercurial.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import absolute_import
3+
14
import os
25
import datetime
36
from subprocess import Popen, PIPE
47
import logging
58

69
from django.conf import settings
710

11+
from .exceptions import CommitLogError
812

913
logger = logging.getLogger(__name__)
1014

@@ -19,8 +23,8 @@ def updaterepo(project, update=True):
1923
stdout, stderr = p.communicate()
2024

2125
if p.returncode != 0 or stderr:
22-
raise RuntimeError("hg pull returned %s: %s" % (p.returncode,
23-
stderr))
26+
raise CommitLogError("hg pull returned %s: %s" % (p.returncode,
27+
stderr))
2428
else:
2529
return [{'error': False}]
2630
else:
@@ -34,9 +38,9 @@ def updaterepo(project, update=True):
3438
stdout, stderr = p.communicate()
3539

3640
if p.returncode != 0:
37-
raise RuntimeError("%s returned %s: %s" % (" ".join(cmd),
38-
p.returncode,
39-
stderr))
41+
raise CommitLogError("%s returned %s: %s" % (" ".join(cmd),
42+
p.returncode,
43+
stderr))
4044
else:
4145
return [{'error': False}]
4246

@@ -53,7 +57,7 @@ def getlogs(endrev, startrev):
5357
stdout, stderr = p.communicate()
5458

5559
if p.returncode != 0:
56-
raise RuntimeError(str(stderr))
60+
raise CommitLogError(str(stderr))
5761
else:
5862
stdout = stdout.rstrip('\n') # Remove last newline
5963
logs = []

codespeed/commits/subversion.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
# -*- coding: utf-8 -*-
2-
'''Subversion commit logs support'''
2+
"""Subversion commit logs support"""
3+
# -*- coding: utf-8 -*-
4+
from __future__ import absolute_import
5+
36
from datetime import datetime
47

8+
from .exceptions import CommitLogError
9+
510

611
def updaterepo(project):
712
"""Not needed for a remote subversion repo"""
@@ -34,9 +39,9 @@ def get_login(realm, username, may_save):
3439
)
3540
)
3641
except pysvn.ClientError as e:
37-
raise RuntimeError(e.args)
42+
raise CommitLogError(e.args)
3843
except ValueError:
39-
raise RuntimeError(
44+
raise CommitLogError(
4045
"'%s' is an invalid subversion revision number" % newrev.commitid)
4146
log_messages.reverse()
4247
s = len(log_messages)

codespeed/results.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def save_result(data):
8888
if p.repo_type not in ("N", ""):
8989
try:
9090
commit_logs = commits.get_logs(rev, rev, update=True)
91-
except RuntimeError as e:
91+
except CommitLogError as e:
9292
logger.warning("unable to save revision %s info: %s", rev, e,
9393
exc_info=True)
9494
else:

codespeed/views.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -634,12 +634,11 @@ def displaylogs(request):
634634
pass # no errors
635635
logs = remotelogs
636636
else:
637-
error = 'no logs found'
638-
except (StandardError, RuntimeError) as e:
639-
logger.error(
640-
"Unhandled exception displaying logs for %s: %s",
641-
rev, e, exc_info=True)
642-
error = repr(e)
637+
error = 'No logs found'
638+
except commits.exceptions.CommitLogError as e:
639+
logger.error('Unhandled exception displaying logs for %s: %s',
640+
rev, e, exc_info=True)
641+
error = str(e)
643642

644643
# Add commit browsing url to logs
645644
project = rev.branch.project
@@ -648,8 +647,10 @@ def displaylogs(request):
648647

649648
return render_to_response(
650649
'codespeed/changes_logs.html',
651-
{'error': error, 'logs': logs,
652-
'show_email_address': settings.SHOW_AUTHOR_EMAIL_ADDRESS},
650+
{
651+
'error': error, 'logs': logs,
652+
'show_email_address': settings.SHOW_AUTHOR_EMAIL_ADDRESS
653+
},
653654
context_instance=RequestContext(request))
654655

655656

0 commit comments

Comments
 (0)