diff --git a/tests/storage/dav/__init__.py b/tests/storage/dav/__init__.py index e218388..9a61eb7 100644 --- a/tests/storage/dav/__init__.py +++ b/tests/storage/dav/__init__.py @@ -17,6 +17,8 @@ import tempfile import shutil import sys import os +import urlparse +import mock from werkzeug.test import Client from werkzeug.wrappers import BaseResponse as WerkzeugResponse @@ -74,6 +76,7 @@ class DavStorageTests(StorageTests): tmpdir = None storage_class = None radicale_path = None + patcher = None def _get_storage(self, **kwargs): self.tmpdir = tempfile.mkdtemp() @@ -86,19 +89,26 @@ class DavStorageTests(StorageTests): server = 'http://127.0.0.1' full_url = server + self.radicale_path - def x(method, path, data=None, headers=None): - path = path or self.radicale_path + def x(session, method, url, data=None, headers=None, **kw): + path = urlparse.urlparse(url).path or self.radicale_path assert isinstance(data, bytes) or data is None r = c.open(path=path, method=method, data=data, headers=headers) r = Response(r) return r - return self.storage_class(url=full_url, _request_func=x, **kwargs) + + self.patcher = p = mock.patch('requests.Session.request', new=x) + p.start() + + return self.storage_class(url=full_url, **kwargs) def teardown_method(self, method): self.app = None if self.tmpdir is not None: shutil.rmtree(self.tmpdir) self.tmpdir = None + if self.patcher is not None: + self.patcher.stop() + self.patcher = None def test_dav_broken_item(self): item = Item(u'UID:1') diff --git a/vdirsyncer/storage/dav/base.py b/vdirsyncer/storage/dav/base.py index 731018d..ddc5be7 100644 --- a/vdirsyncer/storage/dav/base.py +++ b/vdirsyncer/storage/dav/base.py @@ -27,8 +27,7 @@ class DavStorage(Storage): _repr_attributes = ('url', 'username') def __init__(self, url, username='', password='', collection=None, - verify=True, auth='basic', useragent='vdirsyncer', - _request_func=None, **kwargs): + verify=True, auth='basic', useragent='vdirsyncer', **kwargs): ''' :param url: Direct URL for the CalDAV collection. No autodiscovery. :param username: Username for authentication. @@ -37,11 +36,8 @@ class DavStorage(Storage): :param auth: Authentication method, from {'basic', 'digest'}, default 'basic'. :param useragent: Default 'vdirsyncer'. - :param _request_func: Function to use for network calls. Same API as - requests.request. Useful for tests. ''' super(DavStorage, self).__init__(**kwargs) - self._request = _request_func or self._request self._settings = {'verify': verify} if auth == 'basic':