Disable client.check by default.

This commit is contained in:
dzhuang 2019-10-02 23:25:33 +08:00 committed by Evgeny Ezhov
parent c90ee856fd
commit 64bbd967bc
4 changed files with 16 additions and 3 deletions

View file

@ -42,6 +42,11 @@ class Test(TestCommand):
errno = pytest.main(self.pytest_args) errno = pytest.main(self.pytest_args)
sys.exit(errno) sys.exit(errno)
try:
long_description = open('README.rst', encoding="utf-8").read()
except TypeError:
long_description = open('README.rst').read()
setup( setup(
name='webdavclient3', name='webdavclient3',
version=version, version=version,
@ -54,7 +59,7 @@ setup(
cmdclass={'install': Install, 'test': Test}, cmdclass={'install': Install, 'test': Test},
description='WebDAV client, based on original package https://github.com/designerror/webdav-client-python but ' description='WebDAV client, based on original package https://github.com/designerror/webdav-client-python but '
'uses requests instead of PyCURL', 'uses requests instead of PyCURL',
long_description=open('README.rst').read(), long_description=long_description,
author='Evgeny Ezhov', author='Evgeny Ezhov',
author_email='ezhov.evgeny@gmail.com', author_email='ezhov.evgeny@gmail.com',
url='https://github.com/ezhov-evgeny/webdav-client-python-3', url='https://github.com/ezhov-evgeny/webdav-client-python-3',

View file

@ -172,6 +172,10 @@ class Client(object):
) )
if response.status_code == 507: if response.status_code == 507:
raise NotEnoughSpace() raise NotEnoughSpace()
if response.status_code == 404:
raise RemoteResourceNotFound(path=path)
if response.status_code == 405:
raise MethodNotSupported(name=action, server=hostname)
if response.status_code >= 400: if response.status_code >= 400:
raise ResponseErrorCode(url=self.get_url(path), code=response.status_code, message=response.content) raise ResponseErrorCode(url=self.get_url(path), code=response.status_code, message=response.content)
return response return response
@ -269,6 +273,9 @@ class Client(object):
:param remote_path: (optional) path to resource on WebDAV server. Defaults is root directory of WebDAV. :param remote_path: (optional) path to resource on WebDAV server. Defaults is root directory of WebDAV.
:return: True if resource is exist or False otherwise :return: True if resource is exist or False otherwise
""" """
if not self.webdav.do_check:
return True
urn = Urn(remote_path) urn = Urn(remote_path)
try: try:
response = self.execute_request(action='check', path=urn.quote()) response = self.execute_request(action='check', path=urn.quote())

View file

@ -22,7 +22,7 @@ class WebDAVSettings(ConnectionSettings):
ns = "webdav:" ns = "webdav:"
prefix = "webdav_" prefix = "webdav_"
keys = {'hostname', 'login', 'password', 'token', 'root', 'cert_path', 'key_path', 'recv_speed', 'send_speed', keys = {'hostname', 'login', 'password', 'token', 'root', 'cert_path', 'key_path', 'recv_speed', 'send_speed',
'verbose'} 'verbose', 'do_check'}
hostname = None hostname = None
login = None login = None
@ -34,6 +34,7 @@ class WebDAVSettings(ConnectionSettings):
recv_speed = None recv_speed = None
send_speed = None send_speed = None
verbose = None verbose = None
do_check = False
def __init__(self, options): def __init__(self, options):

View file

@ -55,7 +55,7 @@ class MethodNotSupported(WebDavException):
self.server = server self.server = server
def __str__(self): def __str__(self):
return "Method {name} not supported for {server}".format(name=self.name, server=self.server) return "Method '{name}' not supported for {server}".format(name=self.name, server=self.server)
class ConnectionException(WebDavException): class ConnectionException(WebDavException):