diff options
Diffstat (limited to 'morphlib')
-rw-r--r-- | morphlib/remoterepocache.py | 8 | ||||
-rw-r--r-- | morphlib/remoterepocache_tests.py | 9 |
2 files changed, 12 insertions, 5 deletions
diff --git a/morphlib/remoterepocache.py b/morphlib/remoterepocache.py index b1544b03..004ba86e 100644 --- a/morphlib/remoterepocache.py +++ b/morphlib/remoterepocache.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2013 Codethink Limited +# Copyright (C) 2012-2014 Codethink Limited # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -63,9 +63,11 @@ class RemoteRepoCache(object): repo_url = self._resolver.pull_url(repo_name) try: return self._cat_file_for_repo_url(repo_url, ref, filename) - except BaseException, e: + except urllib2.HTTPError as e: logging.error('Caught exception: %s' % str(e)) - raise CatFileError(repo_name, ref, filename) + if e.code == 404: + raise CatFileError(repo_name, ref, filename) + raise # pragma: no cover def ls_tree(self, repo_name, ref): repo_url = self._resolver.pull_url(repo_name) diff --git a/morphlib/remoterepocache_tests.py b/morphlib/remoterepocache_tests.py index 0b1a183b..ef81506f 100644 --- a/morphlib/remoterepocache_tests.py +++ b/morphlib/remoterepocache_tests.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2013 Codethink Limited +# Copyright (C) 2012-2014 Codethink Limited # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,6 +16,7 @@ import json import unittest +import urllib2 import morphlib @@ -26,7 +27,11 @@ class RemoteRepoCacheTests(unittest.TestCase): return self.sha1s[repo_url][ref] def _cat_file_for_repo_url(self, repo_url, sha1, filename): - return self.files[repo_url][sha1][filename] + try: + return self.files[repo_url][sha1][filename] + except KeyError: + raise urllib2.HTTPError(url='', code=404, msg='Not found', + hdrs={}, fp=None) def _ls_tree_for_repo_url(self, repo_url, sha1): return json.dumps({ |