bernhard: utils/testing test-send-invitations-timezone.py,NONE,1.1

cvs at kolab.org cvs at kolab.org
Thu Feb 24 13:03:40 CET 2011


Author: bernhard

Update of /kolabrepository/utils/testing
In directory doto:/tmp/cvs-serv8183

Added Files:
	test-send-invitations-timezone.py 
Log Message:
Added one more test script sending several invitations for testing timezone handling.


--- NEW FILE: test-send-invitations-timezone.py ---
#!/usr/bin/env python
"""Send emails with iTIP invitation to test timezone TZID behaviour.

Usage $progname <recipientemailaddress> [smtpserver]

This script is Free Software under the GNU General Public License >=v2.
bernhard at intevation.de (initial 20110224)
    Tested with Python 2.5.2
"""

import sys

import datetime
import itertools
import smtplib
import string

msg1 = """To: %(toaddr)s
From: %(fromaddr)s
Subject: test1 broken invitation tzid=Europe/Berlin:20110211T155900 no vtimezone
Date: Wed, 23 Feb 2011 14:54:43 +0200
MIME-Version: 1.0
Content-Type: text/calendar;
  method=request;
  charset="utf-8";
  name="cal.ics"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

BEGIN:VCALENDAR
PRODID:-//K Desktop Environment//NONSGML libkcal 4.3//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
CREATED:20110211T150218Z
ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:%(toaddr)s
ORGANIZER:MAILTO:%(fromaddr)s
DTSTAMP:20110211T145948Z
UID:libkcal-18913.122
LAST-MODIFIED:20110211T145948Z
SUMMARY:Test appointment TZID=3DEurope/Berlin:20110211T155900 no VTIMEZONE
DESCRIPTION:%(desc)s
DTSTART;TZID=3DEurope/Berlin:20110211T155900
DTEND;TZID=3DEurope/Berlin:20110211T175900
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
"""

vtimezone1="""BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19810329T020000
RRULE:FREQ=3DYEARLY;BYDAY=3D-1SU;BYMONTH=3D3
END:DAYLIGHT
BEGIN:DAYLIGHT
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19160501T220000
RDATE;VALUE=3DDATE-TIME:19160501T220000
RDATE;VALUE=3DDATE-TIME:19170416T010000
RDATE;VALUE=3DDATE-TIME:19180415T010000
RDATE;VALUE=3DDATE-TIME:19400401T010000
RDATE;VALUE=3DDATE-TIME:19430329T010000
RDATE;VALUE=3DDATE-TIME:19440403T010000
RDATE;VALUE=3DDATE-TIME:19450402T010000
RDATE;VALUE=3DDATE-TIME:19460414T010000
RDATE;VALUE=3DDATE-TIME:19470407T020000
RDATE;VALUE=3DDATE-TIME:19480418T010000
RDATE;VALUE=3DDATE-TIME:19490410T010000
RDATE;VALUE=3DDATE-TIME:19800406T020000
END:DAYLIGHT
BEGIN:STANDARD
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19800928T030000
RRULE:FREQ=3DYEARLY;COUNT=3D16;BYDAY=3D-1SU;BYMONTH=3D9
END:STANDARD
BEGIN:STANDARD
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19961027T030000
RRULE:FREQ=3DYEARLY;BYDAY=3D-1SU;BYMONTH=3D10
END:STANDARD
BEGIN:STANDARD
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19161001T230000
RDATE;VALUE=3DDATE-TIME:19161001T230000
RDATE;VALUE=3DDATE-TIME:19170917T020000
RDATE;VALUE=3DDATE-TIME:19180916T020000
RDATE;VALUE=3DDATE-TIME:19421102T020000
RDATE;VALUE=3DDATE-TIME:19431004T020000
RDATE;VALUE=3DDATE-TIME:19441002T020000
RDATE;VALUE=3DDATE-TIME:19451118T020000
RDATE;VALUE=3DDATE-TIME:19461007T020000
RDATE;VALUE=3DDATE-TIME:19471005T020000
RDATE;VALUE=3DDATE-TIME:19481003T020000
RDATE;VALUE=3DDATE-TIME:19491002T020000
END:STANDARD
BEGIN:DAYLIGHT
TZNAME:CEMT
TZOFFSETFROM:+0200
TZOFFSETTO:+0300
DTSTART:19450525T000000
RDATE;VALUE=3DDATE-TIME:19450525T000000
RDATE;VALUE=3DDATE-TIME:19470511T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZNAME:CEST
TZOFFSETFROM:+0300
TZOFFSETTO:+0200
DTSTART:19450925T000000
RDATE;VALUE=3DDATE-TIME:19450925T000000
RDATE;VALUE=3DDATE-TIME:19470630T000000
END:DAYLIGHT
END:VTIMEZONE
"""

msg2 = """To: %(toaddr)s
From: %(fromaddr)s
Subject: test2 =?iso-8859-1?q?=F6=E4=FC=DF=DF=DF_TZID=3DEurope/Berlin=3A20110219T182500?=
 =?iso-8859-1?q?_with_correct?= VTIMEZONE
Date: Wed, 23 Feb 2011 14:54:43 +0200
MIME-Version: 1.0
Content-Type: text/calendar;
  method=request;
  charset="utf-8";
  name="cal.ics"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

BEGIN:VCALENDAR
PRODID:-//K Desktop Environment//NONSGML libkcal 4.3//EN
VERSION:2.0
METHOD:REQUEST
%(vtimezone)s
BEGIN:VEVENT
CREATED:20110217T162132Z
ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:%(toaddr)s
ORGANIZER:MAILTO:%(fromaddr)s
DTSTAMP:20110217T161735Z
UID:libkcal-438780882.185
LAST-MODIFIED:20110217T161735Z
SUMMARY: test2 =C3=B6=C3=A4=C3=BC=C3=9F=C3=9F=C3=9F TZID=3DEurope/Berlin:20110219T182500 with correct VTIMEZONE
DESCRIPTION:%(desc)s
DTSTART;TZID=3DEurope/Berlin:20110219T182500
DTEND;TZID=3DEurope/Berlin:20110219T212500
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
"""

msg3 = """To: %(toaddr)s
From: %(fromaddr)s
Subject: test3 one repetition over sommertime TZID=Europe/Berlin:20110310T122200
Date: Wed, 23 Feb 2011 16:54:43 +0200
MIME-Version: 1.0
Content-Type: text/calendar;
  method=request;
  charset="utf-8";
  name="cal.ics"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

BEGIN:VCALENDAR
PRODID:-//K Desktop Environment//NONSGML libkcal 4.3//EN
VERSION:2.0
METHOD:REQUEST
%(vtimezone)s
BEGIN:VEVENT
CREATED:20110224T113155Z
DTSTAMP:20110224T112236Z
UID:libkcal-1408002134.644
LAST-MODIFIED:20110224T112236Z
ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:%(toaddr)s
ORGANIZER:MAILTO:%(fromaddr)s
DESCRIPTION:%(desc)s
SUMMARY: test3 one repetition over sommertime TZID=3DEurope/Berlin:20110310T122200
RRULE:FREQ=3DMONTHLY;COUNT=3D2;BYMONTHDAY=3D10
DTSTART;TZID=3DEurope/Berlin:20110310T122200
DTEND;TZID=3DEurope/Berlin:20110310T142200
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
"""


toaddr = sys.argv[1]
if len(sys.argv)>1:
    smtpserver=sys.argv[2]
else: 
    smtpserver='localhost'
# if you set a loginname, a connection via TLS and authentification is tried
loginname = None
password  = None

fromaddr="nobody at example.org"

server=smtplib.SMTP(smtpserver)
#server.set_debuglevel(1)

if loginname != None and password != None:
    server.starttls()
    server.login(loginname,password)

paramsbase = {'toaddr': toaddr,
              'fromaddr': fromaddr,
              'vtimezone': vtimezone1,
              'desc': """(Default description. Note that 
 this is directly taken as encoded VEVENT DESCRPITION value, if you want to=0D
 continue lines, you must prepent a space char or so and more.)"""
    }

params1 = paramsbase.copy()
params1['desc'] = """Uses a non-absolute TZID without a corresponding=0D
 VTIMEZONE  which is an invalid iTIP according to rfc5545. As it has
 no "Z" at the end of the time and no valid TZID."""

params2 = paramsbase.copy()
params2['desc'] = """Uses a non-absolute TZID _with_ VTIMEZONE.=0D
 Also has umlauts oeaeueszszsz in the subject and summary"""

params3 = paramsbase.copy()
params3['desc'] = """Uses a non-absolute TZID _with_ VTIMEZONE.
 Repeats one before and after the sommertime change."""

server.sendmail(fromaddr, [toaddr], msg1 % params1)
server.sendmail(fromaddr, [toaddr], msg2 % params2)
server.sendmail(fromaddr, [toaddr], msg3 % params3)

server.quit()





More information about the commits mailing list