summaryrefslogtreecommitdiff
path: root/morphlib
diff options
context:
space:
mode:
authorLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-06-20 15:21:47 +0100
committerLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-06-22 11:39:52 +0100
commitb44537d279a8d5e49c2f67f08840b6dee120e695 (patch)
treef1685422deba856a61b3bfe18cd0f7a640d18e01 /morphlib
parent1133dcef64ae71845bbec741a7b061858e7fa731 (diff)
downloadmorph-b44537d279a8d5e49c2f67f08840b6dee120e695.tar.gz
Handle only the urllib2.URLError exceptions
Handling all exceptions in a way that assumes they're all related to the URL fetching hides unrelated errors, such as missing imports, or bad types, or such. Also, add more logging for debugging.
Diffstat (limited to 'morphlib')
-rw-r--r--morphlib/remoteartifactcache.py10
-rw-r--r--morphlib/remoteartifactcache_tests.py3
2 files changed, 9 insertions, 4 deletions
diff --git a/morphlib/remoteartifactcache.py b/morphlib/remoteartifactcache.py
index 649ff49e..aaab4a3c 100644
--- a/morphlib/remoteartifactcache.py
+++ b/morphlib/remoteartifactcache.py
@@ -15,6 +15,7 @@
import cliapp
+import logging
import urllib2
import urlparse
@@ -69,24 +70,27 @@ class RemoteArtifactCache(object):
def get(self, artifact):
try:
return self._get_file(artifact.basename())
- except:
+ except urllib2.URLError, e:
+ logging.error(str(e))
raise GetError(self, artifact)
def get_artifact_metadata(self, artifact, name):
try:
return self._get_file(artifact.metadata_basename(name))
- except:
+ except urllib2.URLError, e:
+ logging.error(str(e))
raise GetArtifactMetadataError(self, artifact, name)
def get_source_metadata(self, source, cachekey, name):
filename = '%s.%s' % (cachekey, name)
try:
return self._get_file(filename)
- except:
+ except urllib2.URLError:
raise GetSourceMetadataError(self, source, cachekey, name)
def _has_file(self, filename): # pragma: no cover
url = self._request_url(filename)
+ logging.debug('RemoteArtifactCache._has_file: url=%s' % url)
request = HeadRequest(url)
try:
urllib2.urlopen(request)
diff --git a/morphlib/remoteartifactcache_tests.py b/morphlib/remoteartifactcache_tests.py
index b7f10450..201cfc50 100644
--- a/morphlib/remoteartifactcache_tests.py
+++ b/morphlib/remoteartifactcache_tests.py
@@ -16,6 +16,7 @@
import StringIO
import unittest
+import urllib2
import morphlib
@@ -76,7 +77,7 @@ class RemoteArtifactCacheTests(unittest.TestCase):
if filename in self.existing_files:
return StringIO.StringIO('%s' % filename)
else:
- raise Exception('foo')
+ raise urllib2.URLError('foo')
def test_sets_server_url(self):
self.assertEqual(self.cache.server_url, self.server_url)