Fixed issue #40 - error during coping and moving files with cyrillic names
This commit is contained in:
parent
eced3b5fe5
commit
f64efedd96
6 changed files with 33 additions and 5 deletions
|
@ -298,6 +298,9 @@ res1.write_async(local_path="~/Downloads/file1", callback)
|
||||||
|
|
||||||
Release Notes
|
Release Notes
|
||||||
-------------
|
-------------
|
||||||
|
**Version 3.14.1**
|
||||||
|
* Fixed issue during coping and moving files with cyrillic names
|
||||||
|
|
||||||
**Version 3.14**
|
**Version 3.14**
|
||||||
* Override methods for customizing communication with WebDAV servers
|
* Override methods for customizing communication with WebDAV servers
|
||||||
* Support multiple clients simultaneously
|
* Support multiple clients simultaneously
|
||||||
|
|
|
@ -13,6 +13,7 @@ class BaseClientTestCase(unittest.TestCase):
|
||||||
remote_path_dir = 'test_dir'
|
remote_path_dir = 'test_dir'
|
||||||
remote_path_dir2 = 'test_dir2'
|
remote_path_dir2 = 'test_dir2'
|
||||||
remote_inner_path_dir = 'test_dir/inner'
|
remote_inner_path_dir = 'test_dir/inner'
|
||||||
|
inner_dir_name = 'inner'
|
||||||
local_base_dir = 'tests/'
|
local_base_dir = 'tests/'
|
||||||
local_file = 'test.txt'
|
local_file = 'test.txt'
|
||||||
local_file_path = local_base_dir + 'test.txt'
|
local_file_path = local_base_dir + 'test.txt'
|
||||||
|
|
|
@ -208,10 +208,10 @@ class ClientTestCase(BaseClientTestCase):
|
||||||
self._prepare_for_downloading(True)
|
self._prepare_for_downloading(True)
|
||||||
self.client.pull(self.remote_path_dir, self.local_path_dir)
|
self.client.pull(self.remote_path_dir, self.local_path_dir)
|
||||||
self.assertTrue(path.exists(self.local_path_dir), 'Expected the directory is downloaded.')
|
self.assertTrue(path.exists(self.local_path_dir), 'Expected the directory is downloaded.')
|
||||||
self.assertTrue(path.exists(self.local_path_dir + os.path.sep + 'inner'), 'Expected the directory is downloaded.')
|
self.assertTrue(path.exists(self.local_path_dir + os.path.sep + self.inner_dir_name), 'Expected the directory is downloaded.')
|
||||||
self.assertTrue(path.exists(self.local_path_dir + os.path.sep + 'inner'), 'Expected the directory is downloaded.')
|
self.assertTrue(path.exists(self.local_path_dir + os.path.sep + self.inner_dir_name), 'Expected the directory is downloaded.')
|
||||||
self.assertTrue(path.isdir(self.local_path_dir), 'Expected this is a directory.')
|
self.assertTrue(path.isdir(self.local_path_dir), 'Expected this is a directory.')
|
||||||
self.assertTrue(path.isdir(self.local_path_dir + os.path.sep + 'inner'), 'Expected this is a directory.')
|
self.assertTrue(path.isdir(self.local_path_dir + os.path.sep + self.inner_dir_name), 'Expected this is a directory.')
|
||||||
self.assertTrue(path.exists(self.local_path_dir + os.path.sep + self.local_file),
|
self.assertTrue(path.exists(self.local_path_dir + os.path.sep + self.local_file),
|
||||||
'Expected the file is downloaded')
|
'Expected the file is downloaded')
|
||||||
self.assertTrue(path.isfile(self.local_path_dir + os.path.sep + self.local_file),
|
self.assertTrue(path.isfile(self.local_path_dir + os.path.sep + self.local_file),
|
||||||
|
|
23
tests/test_cyrilic_client_it.py
Normal file
23
tests/test_cyrilic_client_it.py
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
import os
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from tests.test_client_it import ClientTestCase
|
||||||
|
|
||||||
|
|
||||||
|
class MultiClientTestCase(ClientTestCase):
|
||||||
|
remote_path_file = 'директория/тестовый.txt'
|
||||||
|
remote_path_file2 = 'директория/тестовый2.txt'
|
||||||
|
remote_inner_path_file = 'директория/вложенная/тестовый.txt'
|
||||||
|
remote_path_dir = 'директория'
|
||||||
|
remote_path_dir2 = 'директория2'
|
||||||
|
remote_inner_path_dir = 'директория/вложенная'
|
||||||
|
inner_dir_name = 'вложенная'
|
||||||
|
local_base_dir = 'tests/'
|
||||||
|
local_file = 'тестовый.txt'
|
||||||
|
local_file_path = local_base_dir + 'тестовый.txt'
|
||||||
|
local_path_dir = local_base_dir + 'res/директория'
|
||||||
|
pulled_file = local_path_dir + os.sep + local_file
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
1
tests/тестовый.txt
Normal file
1
tests/тестовый.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
test content for testing of webdav client
|
|
@ -535,7 +535,7 @@ class Client(object):
|
||||||
raise RemoteParentNotFound(urn_to.path())
|
raise RemoteParentNotFound(urn_to.path())
|
||||||
|
|
||||||
headers = [
|
headers = [
|
||||||
"Destination: {url}".format(url=self.get_url(urn_to))
|
"Destination: {url}".format(url=self.get_url(urn_to.quote()))
|
||||||
]
|
]
|
||||||
if self.is_dir(urn_from.path()):
|
if self.is_dir(urn_from.path()):
|
||||||
headers.append("Depth: {depth}".format(depth=depth))
|
headers.append("Depth: {depth}".format(depth=depth))
|
||||||
|
@ -558,7 +558,7 @@ class Client(object):
|
||||||
if not self.check(urn_to.parent()):
|
if not self.check(urn_to.parent()):
|
||||||
raise RemoteParentNotFound(urn_to.path())
|
raise RemoteParentNotFound(urn_to.path())
|
||||||
|
|
||||||
header_destination = "Destination: {path}".format(path=self.get_url(urn_to))
|
header_destination = "Destination: {path}".format(path=self.get_url(urn_to.quote()))
|
||||||
header_overwrite = "Overwrite: {flag}".format(flag="T" if overwrite else "F")
|
header_overwrite = "Overwrite: {flag}".format(flag="T" if overwrite else "F")
|
||||||
self.execute_request(action='move', path=urn_from.quote(), headers_ext=[header_destination, header_overwrite])
|
self.execute_request(action='move', path=urn_from.quote(), headers_ext=[header_destination, header_overwrite])
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue