Fixing and refactoring of set/get property methods
This commit is contained in:
parent
6c2aecd277
commit
735a649d57
4 changed files with 274 additions and 132 deletions
|
|
@ -11,7 +11,7 @@ class ClientTestCase(TestCase):
|
|||
remote_path_file = 'test_dir/test.txt'
|
||||
remote_path_dir = 'test_dir'
|
||||
local_path_file = 'test.txt'
|
||||
local_path_dir = u'res/test_dir'
|
||||
local_path_dir = 'res/test_dir'
|
||||
|
||||
def setUp(self):
|
||||
options = {
|
||||
|
|
@ -42,7 +42,7 @@ class ClientTestCase(TestCase):
|
|||
|
||||
def test_download_to(self):
|
||||
buff = BytesIO()
|
||||
self.client.download_to(buff=buff, remote_path=self.remote_path_file)
|
||||
self.client.download_from(buff=buff, remote_path=self.remote_path_file)
|
||||
self.assertEquals(buff.getvalue(), 'test content for testing of webdav client')
|
||||
|
||||
def test_download(self):
|
||||
|
|
@ -90,7 +90,7 @@ class ClientTestCase(TestCase):
|
|||
def test_upload_from(self):
|
||||
self._prepare_for_uploading()
|
||||
buff = StringIO(u'test content for testing of webdav client')
|
||||
self.client.upload_from(buff=buff, remote_path=self.remote_path_file)
|
||||
self.client.upload_to(buff=buff, remote_path=self.remote_path_file)
|
||||
self.assertTrue(self.client.check(self.remote_path_file), 'Expected the file is uploaded.')
|
||||
self.test_download_to()
|
||||
|
||||
|
|
@ -123,6 +123,22 @@ class ClientTestCase(TestCase):
|
|||
|
||||
self.client.upload(remote_path=self.remote_path_file, local_path=self.local_path_dir)
|
||||
|
||||
def test_get_property(self):
|
||||
self._prepare_for_downloading()
|
||||
result = self.client.get_property(remote_path=self.remote_path_file, option={'name': 'aProperty'})
|
||||
self.assertEquals(result, None)
|
||||
|
||||
def test_set_property(self):
|
||||
self._prepare_for_downloading()
|
||||
self.client.set_property(remote_path=self.remote_path_file, option={
|
||||
'namespace': 'test',
|
||||
'name': 'aProperty',
|
||||
'value': 'aValue'
|
||||
})
|
||||
result = self.client.get_property(remote_path=self.remote_path_file,
|
||||
option={'namespace': 'test', 'name': 'aProperty'})
|
||||
self.assertEquals(result, "aValue")
|
||||
|
||||
def _prepare_for_downloading(self):
|
||||
if not self.client.check(remote_path=self.remote_path_dir):
|
||||
self.client.mkdir(remote_path=self.remote_path_dir)
|
||||
81
tests/test_client_unit.py
Normal file
81
tests/test_client_unit.py
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
from unittest import TestCase
|
||||
|
||||
from lxml.etree import ElementTree, Element
|
||||
|
||||
from webdav3.client import WebDavXmlUtils as utils
|
||||
|
||||
|
||||
class ClientTestCase(TestCase):
|
||||
def test_parse_get_list_response(self):
|
||||
content = '<?xml version="1.0" encoding="utf-8"?><d:multistatus xmlns:d="DAV:"><d:response><d:href>/test_dir/' \
|
||||
'</d:href><d:propstat><d:status>HTTP/1.1 200 OK</d:status><d:prop><d:resourcetype><d:collection/>' \
|
||||
'</d:resourcetype><d:getlastmodified>Mon, 16 Oct 2017 04:18:00 GMT</d:getlastmodified>' \
|
||||
'<d:displayname>test_dir</d:displayname><d:creationdate>2017-10-16T04:18:00Z</d:creationdate>' \
|
||||
'</d:prop></d:propstat></d:response><d:response><d:href>/test_dir/test.txt/</d:href><d:propstat>' \
|
||||
'<d:status>HTTP/1.1 200 OK</d:status><d:prop><d:resourcetype><d:collection/></d:resourcetype>' \
|
||||
'<d:getlastmodified>Mon, 16 Oct 2017 04:18:18 GMT</d:getlastmodified><d:displayname>test.txt' \
|
||||
'</d:displayname><d:creationdate>2017-10-16T04:18:18Z</d:creationdate></d:prop></d:propstat>' \
|
||||
'</d:response></d:multistatus>'
|
||||
result = utils.parse_get_list_response(content)
|
||||
self.assertEquals(result.__len__(), 2)
|
||||
|
||||
def test_create_free_space_request_content(self):
|
||||
result = utils.create_free_space_request_content()
|
||||
self.assertEquals(result, '<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<propfind xmlns="DAV:"><prop>'
|
||||
'<quota-available-bytes/><quota-used-bytes/></prop></propfind>')
|
||||
|
||||
def test_parse_free_space_response(self):
|
||||
content = '<?xml version="1.0" encoding="utf-8"?><d:multistatus xmlns:d="DAV:"><d:response><d:href>/</d:href>' \
|
||||
'<d:propstat><d:status>HTTP/1.1 200 OK</d:status><d:prop><d:quota-used-bytes>697' \
|
||||
'</d:quota-used-bytes><d:quota-available-bytes>10737417543</d:quota-available-bytes></d:prop>' \
|
||||
'</d:propstat></d:response></d:multistatus>'
|
||||
result = utils.parse_free_space_response(content)
|
||||
self.assertEquals(result, 10737417543)
|
||||
|
||||
def test_create_get_property_request_content(self):
|
||||
option = {
|
||||
'namespace': 'test',
|
||||
'name': 'aProperty'
|
||||
}
|
||||
result = utils.create_get_property_request_content(option=option)
|
||||
self.assertEquals(result, '<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<propfind xmlns="DAV:"><prop>'
|
||||
'<aProperty xmlns="test"/></prop></propfind>')
|
||||
|
||||
def test_create_get_property_request_content_name_only(self):
|
||||
option = {
|
||||
'name': 'aProperty'
|
||||
}
|
||||
result = utils.create_get_property_request_content(option=option)
|
||||
self.assertEquals(result, '<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<propfind xmlns="DAV:"><prop>'
|
||||
'<aProperty xmlns=""/></prop></propfind>')
|
||||
|
||||
def test_parse_get_property_response(self):
|
||||
content = '<?xml version="1.0" encoding="utf-8"?><d:multistatus xmlns:d="DAV:"><d:response>' \
|
||||
'<d:href>/test_dir/test.txt</d:href><d:propstat><d:status>HTTP/1.1 200 OK</d:status><d:prop>' \
|
||||
'<aProperty xmlns="test">aValue</aProperty></d:prop></d:propstat></d:response></d:multistatus>'
|
||||
|
||||
result = utils.parse_get_property_response(content=content, name='aProperty')
|
||||
self.assertEquals(result, 'aValue')
|
||||
|
||||
def test_create_set_property_request_content(self):
|
||||
option = {
|
||||
'namespace': 'test',
|
||||
'name': 'aProperty',
|
||||
'value': 'aValue'
|
||||
}
|
||||
result = utils.create_set_property_request_content(option=option)
|
||||
self.assertEquals(result, '<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<propertyupdate xmlns="DAV:"><set><prop>'
|
||||
'<aProperty xmlns="test">aValue</aProperty></prop></set></propertyupdate>')
|
||||
|
||||
def test_create_set_property_request_content_name_only(self):
|
||||
option = {
|
||||
'name': 'aProperty'
|
||||
}
|
||||
result = utils.create_set_property_request_content(option=option)
|
||||
self.assertEquals(result, '<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<propertyupdate xmlns="DAV:"><set><prop>'
|
||||
'<aProperty xmlns=""></aProperty></prop></set></propertyupdate>')
|
||||
|
||||
def test_etree_to_string(self):
|
||||
tree = ElementTree(Element('test'))
|
||||
result = utils.etree_to_string(tree)
|
||||
self.assertEquals(result, '<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<test/>')
|
||||
Loading…
Add table
Add a link
Reference in a new issue