def makeCalendar(self, rurl, displayname=None, description=None):

        assert(isinstance(rurl, URL))

        # Create WebDAV MKCALENDAR
        request = MakeCalendar(self, rurl.relativeURL(), displayname, description)

        # Process it
        self.runSession(request)

        if request.getStatusCode() not in (statuscodes.OK, statuscodes.Created, statuscodes.NoContent):
            self.handleHTTPError(request)
Example #2
0
    def makeCalendar(self, rurl, displayname=None, description=None):

        assert (isinstance(rurl, URL))

        # Create WebDAV MKCALENDAR
        request = MakeCalendar(self, rurl.relativeURL(), displayname,
                               description)

        # Process it
        self.runSession(request)

        if request.getStatusCode() not in (statuscodes.OK, statuscodes.Created,
                                           statuscodes.NoContent):
            self.handleHTTPError(request)
    def test_GenerateXMLDisplayname(self):

        server = Session("www.example.com")
        request = MakeCalendar(server, "/", "home")
        os = StringIO()
        request.generateXML(os)
        self.assertEqual(os.getvalue(), """<?xml version='1.0' encoding='utf-8'?>
<ns0:mkcalendar xmlns:ns0="urn:ietf:params:xml:ns:caldav">
  <ns1:prop xmlns:ns1="DAV:">
    <ns1:displayname>home</ns1:displayname>
  </ns1:prop>
</ns0:mkcalendar>
""".replace("\n", "\r\n")
)
    def test_GenerateXMLDisplayname(self):

        server = Session("www.example.com")
        request = MakeCalendar(server, "/", "home")
        os = StringIO()
        request.generateXML(os)
        self.assertEqual(
            os.getvalue(), """<?xml version='1.0' encoding='utf-8'?>
<ns0:mkcalendar xmlns:ns0="urn:ietf:params:xml:ns:caldav">
  <ns1:set xmlns:ns1="DAV:">
    <ns1:prop>
      <ns1:displayname>home</ns1:displayname>
    </ns1:prop>
  </ns1:set>
</ns0:mkcalendar>
""".replace("\n", "\r\n"))
    def test_GenerateXMLCDATAProperty(self):

        server = Session("www.example.com")
        timezone = """BEGIN:VCALENDAR
PRODID:-//Example Corp.//CalDAV Client//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:US-Eastern
LAST-MODIFIED:19870101T000000Z
BEGIN:STANDARD
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:Eastern Standard Time (US & Canada)
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:Eastern Daylight Time (US & Canada)
END:DAYLIGHT
END:VTIMEZONE
END:VCALENDAR
""".replace("\n", "\r\n")
        request = MakeCalendar(server, "/", timezone=timezone)
        os = StringIO()
        request.generateXML(os)
        self.assertEqual(
            os.getvalue(), """<?xml version='1.0' encoding='utf-8'?>
<ns0:mkcalendar xmlns:ns0="urn:ietf:params:xml:ns:caldav">
  <ns1:set xmlns:ns1="DAV:">
    <ns1:prop>
      <ns0:calendar-timezone>%s</ns0:calendar-timezone>
    </ns1:prop>
  </ns1:set>
</ns0:mkcalendar>
""".replace("\n", "\r\n") % (timezone.replace("&", "&amp;"), ))
    def test_GenerateXMLCDATAProperty(self):

        server = Session("www.example.com")
        timezone = """BEGIN:VCALENDAR
PRODID:-//Example Corp.//CalDAV Client//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:US-Eastern
LAST-MODIFIED:19870101T000000Z
BEGIN:STANDARD
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:Eastern Standard Time (US & Canada)
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:Eastern Daylight Time (US & Canada)
END:DAYLIGHT
END:VTIMEZONE
END:VCALENDAR
""".replace("\n", "\r\n")
        request = MakeCalendar(server, "/", timezone=timezone)
        os = StringIO()
        request.generateXML(os)
        self.assertEqual(
            os.getvalue(), """<?xml version='1.0' encoding='utf-8'?>
<ns0:mkcalendar xmlns:ns0="urn:ietf:params:xml:ns:caldav">
  <ns1:prop xmlns:ns1="DAV:">
    <ns0:calendar-timezone>%s</ns0:calendar-timezone>
  </ns1:prop>
</ns0:mkcalendar>
""".replace("\n", "\r\n") % (timezone.replace("&", "&amp;"),)
        )
    def test_Method(self):

        server = Session("www.example.com")
        request = MakeCalendar(server, "/")
        self.assertEqual(request.getMethod(), "MKCALENDAR")
    def test_Method(self):

        server = Session("www.example.com")
        request = MakeCalendar(server, "/")
        self.assertEqual(request.getMethod(), "MKCALENDAR")