sogo/Tests/test-maildav.py
C Robert 2738e102d5 Removed useless variable
Monotone-Parent: aaff100260149e4a5e6eec5c546d0f957293c6a9
Monotone-Revision: 1408266cca94d58c7a555af2e7697e3db2b49cf0

Monotone-Author: crobert@inverse.ca
Monotone-Date: 2009-09-28T20:51:19
Monotone-Branch: ca.inverse.sogo
2009-09-28 20:51:19 +00:00

112 lines
4 KiB
Python
Executable file

#!/usr/bin/python
from config import hostname, port, username, password, subscriber_username, subscriber_password
import sys
import unittest
import webdavlib
import time
def fetchUserEmail(login):
client = webdavlib.WebDAVClient(hostname, port,
username, password)
resource = '/SOGo/dav/%s/' % login
propfind = webdavlib.WebDAVPROPFIND(resource,
["{urn:ietf:params:xml:ns:caldav}calendar-user-address-set"],
0)
propfind.xpath_namespace = { "D": "DAV:",
"C": "urn:ietf:params:xml:ns:caldav" }
client.execute(propfind)
nodes = propfind.xpath_evaluate('/D:multistatus/D:response/D:propstat/D:prop/C:calendar-user-address-set/D:href',
None)
return nodes[0].childNodes[0].nodeValue
class DAVMailTest(unittest.TestCase):
resource = None
def setUp(self):
self.client = webdavlib.WebDAVClient(hostname, port,
username, password)
#delete = webdavlib.WebDAVDELETE(self.davResource)
#self.client.execute(delete)
#mkcol = webdavlib.WebDAVMKCOL(self.resource)
#self.client.execute(mkcol)
#self.assertEquals(mkcol.response["status"], 201,
# "preparation: failure creating collection"
# "(code = %d)" % mkcol.response["status"])
#self.subscriber_client = webdavlib.WebDAVClient(hostname, port,
# subscriber_username,
# subscriber_password)
# def tearDown(self):
#delete = webdavlib.WebDAVDELETE(self.davResource)
#self.client.execute(delete)
class DAVMailCollectionTest(DAVMailTest):
resource = '/SOGo/dav/%s/Mail/' % username
user_email = None
def setUp(self):
if self.user_email is None:
self.user_email = fetchUserEmail(username)
if self.user_email.startswith ("mailto:"):
self.user_email = self.user_email[7:]
self.resource = '/SOGo/dav/%s/Mail/%s/' \
% (username, self.user_email)
DAVMailTest.setUp(self)
def testGeneric(self):
"""Test folder creation / listing"""
self._makeCollection ("test-dav-mail-%40-abc")
self._deleteCollection ("test-dav-mail-%40-abc")
self._makeCollection ("test-dav-mail-@-def")
self._deleteCollection ("test-dav-mail-@-def")
self._makeCollection ("test-dav-mail-%20-ghi")
self._deleteCollection ("test-dav-mail-%20-ghi")
self._makeCollection ("test-dav-mail-%25-jkl", 500)
# self._makeCollection ("test-dav-mail-movable")
# url = "%sfolder%s" % (self.resource, "test-dav-mail-movable")
# move = webdavlib.WebDAVMOVE (url)
# move.destination = "http://cyril.dev%s%s2" % (self.resource, "test-dav-mail-movable")
# move.host = "cyril.dev"
# self.client.execute (move)
# self.assertEquals(move.response["status"], 204,
# "failure creating collection"
# "(code = %d)" % move.response["status"])
def _makeCollection (self, name, status = 201):
url = "%s%s" % (self.resource, name)
mkcol = webdavlib.WebDAVMKCOL(url)
self.client.execute(mkcol)
self.assertEquals(mkcol.response["status"], status,
"failure creating collection"
"(code = %d)" % mkcol.response["status"])
def _deleteCollection (self, name, status = 204):
url = "%sfolder%s" % (self.resource, name)
delete = webdavlib.WebDAVDELETE(url)
self.client.execute(delete)
self.assertEquals(delete.response["status"], status,
"failure deleting collection"
"(code = %d)" % delete.response["status"])
def _putMessage(self, client, filename,
exp_status = 201):
url = "%s%s" % (self.resource, filename)
put = webdavlib.HTTPPUT(url, message)
put.content_type = "text/plain; charset=utf-8"
client.execute(put)
self.assertEquals(put.response["status"], exp_status,
"%s: event creation/modification:"
" expected status code '%d' (received '%d')"
% (filename, exp_status, put.response["status"]))
if __name__ == "__main__":
unittest.main()