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