Add support for oauth2client 4.0.0
diff --git a/googleapiclient/discovery_cache/file_cache.py b/googleapiclient/discovery_cache/file_cache.py
index 31434db..e88e7dc 100644
--- a/googleapiclient/discovery_cache/file_cache.py
+++ b/googleapiclient/discovery_cache/file_cache.py
@@ -33,7 +33,12 @@
from oauth2client.contrib.locked_file import LockedFile
except ImportError:
# oauth2client < 2.0.0
- from oauth2client.locked_file import LockedFile
+ try:
+ from oauth2client.locked_file import LockedFile
+ except ImportError:
+ # oauth2client > 4.0.0
+ raise ImportError(
+ 'file_cache is unavailable when using oauth2client >= 4.0.0')
from . import base
from ..discovery_cache import DISCOVERY_DOC_MAX_AGE
diff --git a/tests/__init__.py b/tests/__init__.py
index c4022b7..8f6d06b 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -15,8 +15,15 @@
__author__ = 'afshar@google.com (Ali Afshar)'
-import oauth2client.util
+
+# Oauth2client < 3 has the positional helper in 'util', >= 3 has it
+# in '_helpers'.
+try:
+ from oauth2client import util
+except ImportError:
+ from oauth2client import _helpers as util
+
def setup_package():
"""Run on testing package."""
- oauth2client.util.positional_parameters_enforcement = 'EXCEPTION'
+ util.positional_parameters_enforcement = 'EXCEPTION'
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index dac581f..c43d9e4 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -70,16 +70,18 @@
from googleapiclient.http import MediaUploadProgress
from googleapiclient.http import tunnel_patch
from oauth2client import GOOGLE_TOKEN_URI
-from oauth2client import util
from oauth2client.client import OAuth2Credentials
+try:
+ from oauth2client import util
+except ImportError:
+ from oauth2client import _helpers as util
+
import uritemplate
DATA_DIR = os.path.join(os.path.dirname(__file__), 'data')
-util.positional_parameters_enforcement = util.POSITIONAL_EXCEPTION
-
def assertUrisEqual(testcase, expected, actual):
"""Test that URIs are the same, up to reordering of query parameters."""
@@ -501,8 +503,8 @@
class DiscoveryFromFileCache(unittest.TestCase):
def test_file_based_cache(self):
cache = mock.Mock(wraps=DictCache())
- with mock.patch('googleapiclient.discovery_cache.file_cache.cache',
- new=cache):
+ with mock.patch('googleapiclient.discovery_cache.autodetect',
+ return_value=cache):
self.http = HttpMock(datafile('plus.json'), {'status': '200'})
plus = build('plus', 'v1', http=self.http)
diff --git a/tests/test_discovery_cache.py b/tests/test_discovery_cache.py
index a26a65b..1786406 100644
--- a/tests/test_discovery_cache.py
+++ b/tests/test_discovery_cache.py
@@ -24,9 +24,14 @@
from googleapiclient.discovery_cache import DISCOVERY_DOC_MAX_AGE
from googleapiclient.discovery_cache.base import Cache
-from googleapiclient.discovery_cache.file_cache import Cache as FileCache
+
+try:
+ from googleapiclient.discovery_cache.file_cache import Cache as FileCache
+except ImportError:
+ FileCache = None
+@unittest.skipIf(FileCache is None, 'FileCache unavailable.')
class FileCacheTest(unittest.TestCase):
@mock.patch('googleapiclient.discovery_cache.file_cache.FILENAME',
new='google-api-python-client-discovery-doc-tests.cache')
diff --git a/tox.ini b/tox.ini
index a87dad3..dcd0243 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,11 +1,12 @@
[tox]
-envlist = py{26,27,33,34}-oauth2client{1,2,3}
+envlist = py{26,27,33,34}-oauth2client{1,2,3,4}
[testenv]
deps =
- oauth2client1: oauth2client<2
- oauth2client2: oauth2client>=2,<=3
- oauth2client3: oauth2client>=3,<=4
+ oauth2client1: oauth2client<2dev
+ oauth2client2: oauth2client>=2,<=3dev
+ oauth2client3: oauth2client>=3,<=4dev
+ oauth2client4: oauth2client>=4,<=5dev
keyring
mox
pyopenssl