Fix issues and tests
This commit is contained in:
parent
85b10d53c9
commit
8c7ee2e372
3 changed files with 111 additions and 56 deletions
|
|
@ -35,29 +35,39 @@ class BaseClientTestCase(unittest.TestCase):
|
|||
|
||||
def setUp(self):
|
||||
self.client = Client(self.options)
|
||||
if path.exists(path=self.local_path_dir):
|
||||
shutil.rmtree(path=self.local_path_dir)
|
||||
self.clean_local_dir(self.local_path_dir)
|
||||
|
||||
def tearDown(self):
|
||||
if path.exists(path=self.local_path_dir):
|
||||
shutil.rmtree(path=self.local_path_dir)
|
||||
if self.client.check(remote_path=self.remote_path_dir):
|
||||
self.client.clean(remote_path=self.remote_path_dir)
|
||||
if self.client.check(remote_path=self.remote_path_dir2):
|
||||
self.client.clean(remote_path=self.remote_path_dir2)
|
||||
self.clean_local_dir(self.local_path_dir)
|
||||
self.clean_remote_dir(self.remote_path_dir)
|
||||
self.clean_remote_dir(self.remote_path_dir2)
|
||||
|
||||
def _prepare_for_downloading(self, inner_dir=False):
|
||||
if not self.client.check(remote_path=self.remote_path_dir):
|
||||
self.client.mkdir(remote_path=self.remote_path_dir)
|
||||
if not self.client.check(remote_path=self.remote_path_file):
|
||||
self.client.upload_file(remote_path=self.remote_path_file, local_path=self.local_file_path)
|
||||
def clean_remote_dir(self, remote_path_dir):
|
||||
if self.client.check(remote_path=remote_path_dir):
|
||||
self.client.clean(remote_path=remote_path_dir)
|
||||
|
||||
@staticmethod
|
||||
def clean_local_dir(local_path_dir):
|
||||
if path.exists(path=local_path_dir):
|
||||
shutil.rmtree(path=local_path_dir)
|
||||
|
||||
def _prepare_for_downloading(self, inner_dir=False, base_path=''):
|
||||
if base_path:
|
||||
self._create_remote_dir_if_needed(base_path)
|
||||
self._prepare_dir_for_downloading(base_path + self.remote_path_dir, base_path + self.remote_path_file, self.local_file_path)
|
||||
if not path.exists(self.local_path_dir):
|
||||
os.makedirs(self.local_path_dir)
|
||||
if inner_dir:
|
||||
if not self.client.check(remote_path=self.remote_inner_path_dir):
|
||||
self.client.mkdir(remote_path=self.remote_inner_path_dir)
|
||||
if not self.client.check(remote_path=self.remote_inner_path_file):
|
||||
self.client.upload_file(remote_path=self.remote_inner_path_file, local_path=self.local_file_path)
|
||||
self._prepare_dir_for_downloading(base_path + self.remote_inner_path_dir, base_path + self.remote_inner_path_file, self.local_file_path)
|
||||
|
||||
def _prepare_dir_for_downloading(self, remote_path_dir, remote_path_file, local_file_path):
|
||||
self._create_remote_dir_if_needed(remote_path_dir)
|
||||
if not self.client.check(remote_path=remote_path_file):
|
||||
self.client.upload_file(remote_path=remote_path_file, local_path=local_file_path)
|
||||
|
||||
def _create_remote_dir_if_needed(self, remote_dir):
|
||||
if not self.client.check(remote_path=remote_dir):
|
||||
self.client.mkdir(remote_path=remote_dir)
|
||||
|
||||
def _prepare_for_uploading(self):
|
||||
if not self.client.check(remote_path=self.remote_path_dir):
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import os.path
|
||||
import shutil
|
||||
import unittest
|
||||
from io import BytesIO, StringIO
|
||||
from os import path
|
||||
|
|
@ -9,6 +10,7 @@ from webdav3.exceptions import MethodNotSupported, OptionNotValid, RemoteResourc
|
|||
|
||||
|
||||
class ClientTestCase(BaseClientTestCase):
|
||||
pulled_file = BaseClientTestCase.local_path_dir + os.sep + BaseClientTestCase.local_file
|
||||
|
||||
def test_list(self):
|
||||
self._prepare_for_downloading()
|
||||
|
|
@ -227,6 +229,55 @@ class ClientTestCase(BaseClientTestCase):
|
|||
def test_check_is_overridden(self):
|
||||
self.assertEqual('GET', self.client.requests['check'])
|
||||
|
||||
def test_pull_newer(self):
|
||||
init_modification_time = int(self._prepare_local_test_file_and_get_modification_time())
|
||||
sleep(1)
|
||||
self._prepare_for_downloading(base_path='time/')
|
||||
result = self.client.pull('time/' + self.remote_path_dir, self.local_path_dir)
|
||||
update_modification_time = int(os.path.getmtime(self.pulled_file))
|
||||
self.assertTrue(result)
|
||||
self.assertGreater(update_modification_time, init_modification_time)
|
||||
self.client.clean(remote_path='time/' + self.remote_path_dir)
|
||||
|
||||
def test_pull_older(self):
|
||||
self._prepare_for_downloading(base_path='time/')
|
||||
sleep(1)
|
||||
init_modification_time = int(self._prepare_local_test_file_and_get_modification_time())
|
||||
result = self.client.pull('time/' + self.remote_path_dir, self.local_path_dir)
|
||||
update_modification_time = int(os.path.getmtime(self.pulled_file))
|
||||
self.assertFalse(result)
|
||||
self.assertEqual(update_modification_time, init_modification_time)
|
||||
self.client.clean(remote_path='time/' + self.remote_path_dir)
|
||||
|
||||
def test_push_newer(self):
|
||||
self._prepare_for_downloading(base_path='time/')
|
||||
sleep(1)
|
||||
self._prepare_for_uploading()
|
||||
init_modification_time = self.client.info('time/' + self.remote_path_file)['modified']
|
||||
result = self.client.push('time/' + self.remote_path_dir, self.local_path_dir)
|
||||
update_modification_time = self.client.info('time/' + self.remote_path_file)['modified']
|
||||
self.assertTrue(result)
|
||||
self.assertNotEqual(init_modification_time, update_modification_time)
|
||||
self.client.clean(remote_path='time/' + self.remote_path_dir)
|
||||
|
||||
def test_push_older(self):
|
||||
self._prepare_for_uploading()
|
||||
sleep(1)
|
||||
self._prepare_for_downloading(base_path='time/')
|
||||
init_modification_time = self.client.info('time/' + self.remote_path_file)['modified']
|
||||
result = self.client.push('time/' + self.remote_path_dir, self.local_path_dir)
|
||||
update_modification_time = self.client.info('time/' + self.remote_path_file)['modified']
|
||||
self.assertFalse(result)
|
||||
self.assertEqual(init_modification_time, update_modification_time)
|
||||
self.client.clean(remote_path='time/' + self.remote_path_dir)
|
||||
|
||||
def _prepare_local_test_file_and_get_modification_time(self):
|
||||
if not path.exists(path=self.local_path_dir):
|
||||
os.mkdir(self.local_path_dir)
|
||||
if not path.exists(path=self.local_path_dir + os.sep + self.local_file):
|
||||
shutil.copy(src=self.local_file_path, dst=self.pulled_file)
|
||||
return os.path.getmtime(self.pulled_file)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue