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 _deleteCard(self, client, filename, exp_status): url = "%s%s" % (self.resource, filename) delete = webdavlib.WebDAVDELETE(url) client.execute(delete) self.assertEquals( delete.response["status"], exp_status, "%s: card deletion:" " expected status code '%d' (received '%d')" % (filename, exp_status, delete.response["status"]))
def setUp(self): delete = webdavlib.WebDAVDELETE(self.resource) 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"])
def setUp(self): self.resource = '/SOGo/dav/%s/Calendar/test-dav-put/' % username delete = webdavlib.WebDAVDELETE(self.resource) 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"])
def testSUAccess(self): """create, read, modify, delete for superuser""" event = event_template % { "class": "PUBLIC", "filename": self.filename, "organizer_line": "", "attendee_line": "" } # 1. Create put = webdavlib.HTTPPUT(self.url, event) put.content_type = "text/calendar; charset=utf-8" self.client.execute(put) self.assertEquals( put.response["status"], 201, "%s: event creation/modification:" " expected status code '201' (received '%d')" % (self.filename, put.response["status"])) # 2. Read readEvent = self._getEvent() self.assertEquals(readEvent, event, "GET: returned event does not match") readEvent = self._propfindEvent() self.assertEquals(readEvent, event, "PROPFIND: returned event does not match") readEvent = self._multigetEvent() self.assertEquals(readEvent, event, "MULTIGET: returned event does not match") readEvent = self._webdavSyncEvent() self.assertEquals(readEvent, event, "WEBDAV-SYNC: returned event does not match") # 3. Modify for eventClass in ["CONFIDENTIAL", "PRIVATE", "PUBLIC"]: event = event_template % { "class": eventClass, "filename": self.filename, "organizer_line": "", "attendee_line": "" } put = webdavlib.HTTPPUT(self.url, event) put.content_type = "text/calendar; charset=utf-8" self.client.execute(put) self.assertEquals( put.response["status"], 204, "%s: event modification failed" " expected status code '204' (received '%d')" % (self.filename, put.response["status"])) # 4. Delete delete = webdavlib.WebDAVDELETE(self.url) self.client.execute(delete) self.assertEquals( delete.response["status"], 204, "%s: event deletion failed" " expected status code '204' (received '%d')" % (self.filename, put.response["status"]))
def setUp(self): delete = webdavlib.WebDAVDELETE(self.resource) 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(resource) self.client.execute(delete)
def tearDown(self): delete = webdavlib.WebDAVDELETE(self.test_calendar) self.client.execute(delete)
def _deleteEvent(self, client, filename, exp_status=204): delete = webdavlib.WebDAVDELETE(filename) client.execute(delete) if exp_status is not None: self.assertEquals(delete.response["status"], exp_status)
def tearDown(self): if self.createdRsrc is not None: delete = webdavlib.WebDAVDELETE(self.createdRsrc) self.superuser_client.execute(delete)
def testCalendarProxy2(self): """calendar-proxy as used from SOGo""" client = webdavlib.WebDAVClient(hostname, port, superuser, superuser_password) client.user_agent = "DAVKit/4.0.1 (730); CalendarStore/4.0.1 (973); iCal/4.0.1 (1374); Mac OS X/10.6.2 (10C540)" personal_resource = "/SOGo/dav/%s/Calendar/personal/" % username dav_utility = utilities.TestCalendarACLUtility(self, client, personal_resource) dav_utility.setupRights(subscriber_username, {}) dav_utility.subscribe([subscriber_username]) other_resource = ("/SOGo/dav/%s/Calendar/test-calendar-proxy2/" % username) delete = webdavlib.WebDAVDELETE(other_resource) client.execute(delete) mkcol = webdavlib.WebDAVMKCOL(other_resource) client.execute(mkcol) dav_utility = utilities.TestCalendarACLUtility(self, client, other_resource) dav_utility.setupRights(subscriber_username, {}) dav_utility.subscribe([subscriber_username]) ## we test the rights mapping # write: write on 'personal', none on 'test-calendar-proxy2' self._testMapping(client, "write", personal_resource, { "c": True, "d": False, "pu": "v" }) self._testMapping(client, "write", personal_resource, { "c": False, "d": True, "pu": "v" }) self._testMapping(client, "write", personal_resource, { "c": False, "d": False, "pu": "m" }) self._testMapping(client, "write", personal_resource, { "c": False, "d": False, "pu": "r" }) # read: read on 'personal', none on 'test-calendar-proxy2' self._testMapping(client, "read", personal_resource, { "c": False, "d": False, "pu": "d" }) self._testMapping(client, "read", personal_resource, { "c": False, "d": False, "pu": "v" }) # write: read on 'personal', write on 'test-calendar-proxy2' self._testMapping(client, "write", other_resource, { "c": False, "d": False, "pu": "r" }) ## we test the unsubscription # unsubscribed from personal, subscribed to 'test-calendar-proxy2' dav_utility = utilities.TestCalendarACLUtility(self, client, personal_resource) dav_utility.unsubscribe([subscriber_username]) membership = self._getMembership(subscriber_username) self.assertEquals(['/SOGo/dav/%s/calendar-proxy-write/' % username], membership, "'%s' must have write access to %s's calendars" % (subscriber_username, username)) # unsubscribed from personal, unsubscribed from 'test-calendar-proxy2' dav_utility = utilities.TestCalendarACLUtility(self, client, other_resource) dav_utility.unsubscribe([subscriber_username]) membership = self._getMembership(subscriber_username) self.assertEquals([], membership, "'%s' must have no access to %s's calendars" % (subscriber_username, username)) delete = webdavlib.WebDAVDELETE(other_resource) client.execute(delete)