From: Itamar Turner-Trauring <itamar@futurefoundries.com>
Date: Tue, 5 Mar 2013 17:01:06 +0000 (-0500)
Subject: If oauth2client isn't present, skip Google Storage tests rather than blowing up.
X-Git-Url: https://git.rkrishnan.org/vdrive/index.html?a=commitdiff_plain;h=88c5c01081951d3caf7da04dace1aac6f4670b9f;p=tahoe-lafs%2Ftahoe-lafs.git

If oauth2client isn't present, skip Google Storage tests rather than blowing up.
---

diff --git a/src/allmydata/storage/backends/cloud/googlestorage/googlestorage_container.py b/src/allmydata/storage/backends/cloud/googlestorage/googlestorage_container.py
index af3a82a9..cf6f1537 100644
--- a/src/allmydata/storage/backends/cloud/googlestorage/googlestorage_container.py
+++ b/src/allmydata/storage/backends/cloud/googlestorage/googlestorage_container.py
@@ -18,7 +18,12 @@ from twisted.internet.defer import DeferredLock
 from twisted.internet.threads import deferToThread
 from twisted.web.http import UNAUTHORIZED
 
-from oauth2client.client import SignedJwtAssertionCredentials
+try:
+    from oauth2client.client import SignedJwtAssertionCredentials
+    oauth2client_available = True
+except ImportError:
+    oauth2client_available = False
+    SignedJwtAssertionCredentials = None
 
 from zope.interface import implements
 
diff --git a/src/allmydata/test/test_storage.py b/src/allmydata/test/test_storage.py
index 12d5a94f..d6d76f3e 100644
--- a/src/allmydata/test/test_storage.py
+++ b/src/allmydata/test/test_storage.py
@@ -642,6 +642,9 @@ class GoogleStorageAuthenticationClient(unittest.TestCase):
     unless noted otherwise.
     """
 
+    if not googlestorage_container.oauth2client_available:
+        skip = "Google Storage requires oauth2client"
+
     def test_credentials(self):
         """
         AuthenticationClient.get_authorization_header() initializes a
@@ -766,6 +769,9 @@ class GoogleStorageBackend(unittest.TestCase):
     allmydata.storage.backends.cloud.googlestorage.googlestorage_container
     unless noted otherwise.
     """
+    if not googlestorage_container.oauth2client_available:
+        skip = "Google Storage requires oauth2client"
+
     class Response(object):
         def __init__(self, code, headers={}):
             self.code = code