[CalendarServer-changes] [9839] CalDAVTester/branches/users/gaya/invitecleanTester
source_changes at macosforge.org
source_changes at macosforge.org
Sat Sep 22 13:53:21 PDT 2012
Revision: 9839
http://trac.calendarserver.org//changeset/9839
Author: gaya at apple.com
Date: 2012-09-22 13:53:20 -0700 (Sat, 22 Sep 2012)
Log Message:
-----------
update from trunk
Modified Paths:
--------------
CalDAVTester/branches/users/gaya/invitecleanTester/odsetup.py
CalDAVTester/branches/users/gaya/invitecleanTester/run.py
CalDAVTester/branches/users/gaya/invitecleanTester/src/caldavtest.py
CalDAVTester/branches/users/gaya/invitecleanTester/src/httpshandler.py
CalDAVTester/branches/users/gaya/invitecleanTester/src/manager.py
CalDAVTester/branches/users/gaya/invitecleanTester/src/request.py
CalDAVTester/branches/users/gaya/invitecleanTester/src/serverinfo.py
CalDAVTester/branches/users/gaya/invitecleanTester/src/test.py
CalDAVTester/branches/users/gaya/invitecleanTester/src/testsuite.py
CalDAVTester/branches/users/gaya/invitecleanTester/src/xmlUtils.py
CalDAVTester/branches/users/gaya/invitecleanTester/testcaldav.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/aclItems.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/addressDataMatch.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/calendarDataMatch.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/dataMatch.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/dataString.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/freeBusy.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/header.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/multistatusItems.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/postFreeBusy.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/prepostcondition.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/propfindItems.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/propfindValues.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/statusCode.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/xmlDataMatch.py
CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/xmlElementMatch.py
Added Paths:
-----------
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/10.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/11.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/12.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/recurrenceput/22.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/invites/self-error/
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/invites/self-error/1.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/1.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/2.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/3.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/4.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/5.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/6.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/7.xml
Removed Paths:
-------------
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/invites/self-error/1.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/1.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/2.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/3.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/4.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/5.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/6.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/7.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/Common/MKCALENDAR/sharedcalendar.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/Common/MKCOL/sharedaddressbook.xml
Property Changed:
----------------
CalDAVTester/branches/users/gaya/invitecleanTester/
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/1.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/10.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/11.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/12.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/13.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/14.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/15.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/16.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/17.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/18.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/19.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/2.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/20.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/21.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/22.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/23.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/24.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/25.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/26.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/27.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/28.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/29.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/3.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/30.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/31.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/32.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/4.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/5.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/6.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/7.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/8.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/9.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics
CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes:8221-8346
/CalDAVTester/branches/users/cdaboo/conditional-4466:4467-4469
/CalDAVTester/branches/users/cdaboo/implicitauto-2948:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228:5229-5440
/CalDAVTester/trunk:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes:8221-8346
/CalDAVTester/branches/users/cdaboo/conditional-4466:4467-4469
/CalDAVTester/branches/users/cdaboo/implicitauto-2948:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228:5229-5440
/CalDAVTester/trunk:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/1.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/1.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/1.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/1.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/1.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/1.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/1.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/1.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/1.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/1.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/1.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/1.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/1.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/1.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/1.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/1.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/1.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/1.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/1.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/1.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/1.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/10.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/10.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/10.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/10.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/10.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/10.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/10.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/10.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/10.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/10.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/10.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/10.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/10.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/10.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/10.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/10.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/10.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/10.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/10.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/10.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/10.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/11.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/11.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/11.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/11.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/11.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/11.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/11.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/11.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/11.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/11.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/11.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/11.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/11.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/11.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/11.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/11.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/11.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/11.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/11.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/11.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/11.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/12.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/12.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/12.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/12.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/12.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/12.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/12.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/12.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/12.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/12.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/12.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/12.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/12.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/12.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/12.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/12.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/12.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/12.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/12.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/12.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/12.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/13.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/13.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/13.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/13.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/13.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/13.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/13.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/13.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/13.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/13.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/13.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/13.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/13.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/13.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/13.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/13.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/13.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/13.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/13.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/13.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/13.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/14.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/14.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/14.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/14.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/14.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/14.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/14.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/14.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/14.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/14.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/14.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/14.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/14.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/14.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/14.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/14.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/14.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/14.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/14.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/14.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/14.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/15.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/15.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/15.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/15.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/15.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/15.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/15.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/15.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/15.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/15.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/15.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/15.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/15.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/15.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/15.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/15.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/15.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/15.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/15.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/15.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/15.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/16.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/16.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/16.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/16.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/16.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/16.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/16.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/16.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/16.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/16.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/16.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/16.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/16.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/16.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/16.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/16.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/16.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/16.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/16.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/16.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/16.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/17.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/17.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/17.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/17.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/17.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/17.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/17.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/17.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/17.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/17.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/17.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/17.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/17.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/17.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/17.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/17.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/17.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/17.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/17.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/17.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/17.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/18.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/18.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/18.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/18.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/18.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/18.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/18.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/18.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/18.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/18.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/18.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/18.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/18.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/18.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/18.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/18.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/18.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/18.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/18.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/18.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/18.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/19.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/19.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/19.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/19.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/19.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/19.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/19.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/19.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/19.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/19.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/19.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/19.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/19.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/19.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/19.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/19.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/19.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/19.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/19.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/19.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/19.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/2.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/2.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/2.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/2.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/2.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/2.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/2.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/2.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/2.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/2.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/2.ics:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/2.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/2.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/2.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/2.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/2.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/2.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/2.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/2.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/2.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/2.ics:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/20.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/20.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/20.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/20.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/20.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/20.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/20.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/20.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/20.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/20.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/20.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/20.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/20.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/20.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/20.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/20.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/20.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/20.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/20.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/20.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/20.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/21.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/21.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/21.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/21.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/21.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/21.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/21.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/21.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/21.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/21.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/21.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/21.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/21.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/21.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/21.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/21.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/21.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/21.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/21.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/21.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/21.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/22.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/22.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/22.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/22.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/22.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/22.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/22.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/22.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/22.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/22.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/22.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/22.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/22.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/22.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/22.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/22.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/22.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/22.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/22.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/22.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/22.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/23.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/23.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/23.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/23.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/23.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/23.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/23.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/23.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/23.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/23.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/23.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/23.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/23.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/23.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/23.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/23.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/23.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/23.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/23.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/23.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/23.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/24.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/24.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/24.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/24.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/24.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/24.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/24.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/24.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/24.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/24.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/24.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/24.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/24.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/24.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/24.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/24.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/24.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/24.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/24.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/24.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/24.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/25.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/25.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/25.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/25.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/25.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/25.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/25.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/25.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/25.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/25.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/25.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/25.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/25.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/25.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/25.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/25.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/25.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/25.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/25.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/25.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/25.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/26.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/26.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/26.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/26.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/26.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/26.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/26.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/26.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/26.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/26.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/26.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/26.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/26.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/26.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/26.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/26.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/26.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/26.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/26.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/26.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/26.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/27.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/27.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/27.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/27.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/27.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/27.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/27.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/27.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/27.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/27.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/27.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/27.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/27.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/27.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/27.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/27.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/27.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/27.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/27.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/27.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/27.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/28.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/28.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/28.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/28.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/28.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/28.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/28.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/28.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/28.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/28.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/28.ics:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/28.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/28.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/28.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/28.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/28.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/28.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/28.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/28.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/28.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/28.ics:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/29.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/29.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/29.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/29.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/29.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/29.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/29.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/29.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/29.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/29.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/29.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/29.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/29.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/29.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/29.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/29.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/29.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/29.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/29.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/29.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/29.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/3.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/3.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/3.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/3.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/3.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/3.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/3.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/3.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/3.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/3.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/3.ics:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/3.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/3.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/3.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/3.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/3.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/3.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/3.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/3.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/3.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/3.ics:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/30.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/30.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/30.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/30.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/30.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/30.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/30.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/30.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/30.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/30.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/30.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/30.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/30.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/30.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/30.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/30.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/30.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/30.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/30.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/30.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/30.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/31.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/31.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/31.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/31.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/31.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/31.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/31.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/31.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/31.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/31.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/31.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/31.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/31.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/31.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/31.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/31.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/31.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/31.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/31.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/31.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/31.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/32.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/32.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/32.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/32.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/32.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/32.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/32.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/32.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/32.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/32.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/32.xml:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/32.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/32.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/32.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/32.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/32.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/32.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/32.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/32.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/32.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/32.xml:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/4.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/4.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/4.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/4.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/4.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/4.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/4.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/4.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/4.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/4.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/4.ics:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/4.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/4.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/4.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/4.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/4.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/4.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/4.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/4.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/4.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/4.ics:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/5.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/5.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/5.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/5.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/5.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/5.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/5.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/5.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/5.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/5.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/5.ics:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/5.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/5.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/5.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/5.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/5.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/5.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/5.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/5.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/5.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/5.ics:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/6.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/6.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/6.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/6.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/6.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/6.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/6.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/6.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/6.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/6.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/6.ics:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/6.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/6.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/6.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/6.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/6.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/6.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/6.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/6.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/6.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/6.ics:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/7.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/7.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/7.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/7.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/7.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/7.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/7.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/7.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/7.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/7.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/7.ics:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/7.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/7.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/7.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/7.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/7.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/7.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/7.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/7.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/7.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/7.ics:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/8.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/8.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/8.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/8.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/8.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/8.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/8.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/8.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/8.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/8.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/8.ics:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/8.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/8.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/8.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/8.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/8.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/8.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/8.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/8.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/8.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/8.ics:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/errors/9.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/9.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/9.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/9.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/9.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/9.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/9.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/9.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/9.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/9.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/9.ics:9426-9795
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/errors/9.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/errors/9.txt:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/errors/9.txt:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/errors/9.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/errors/9.txt:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/errors/9.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/errors/9.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/errors/9.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/errors/9.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/errors/9.ics:9426-9832
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/1.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/1.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/1.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/1.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/1.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:9426-9795
/CalDAVTester/trunk/Resource/implicit/schedulechanges/1.ics:2451,3035,3142,3165,3190,3405,3432
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/1.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/1.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/1.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/1.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/1.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/1.ics:9426-9832
/CalDAVTester/trunk/Resource/implicit/schedulechanges/1.ics:2451,3035,3142,3165,3190,3405,3432
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/2.xml:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/2.xml:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/2.xml:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/2.xml:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/2.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:9426-9795
/CalDAVTester/trunk/Resource/implicit/schedulechanges/2.xml:2451,3035,3142,3165,3190,3405,3432
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/2.xml:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/2.xml:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/2.xml:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/2.xml:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/2.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/2.xml:9426-9832
/CalDAVTester/trunk/Resource/implicit/schedulechanges/2.xml:2451,3035,3142,3165,3190,3405,3432
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/3.xml:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/3.xml:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/3.xml:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/3.xml:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/3.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:9426-9795
/CalDAVTester/trunk/Resource/implicit/schedulechanges/3.xml:2451,3035,3142,3165,3190,3405,3432
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/3.xml:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/3.xml:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/3.xml:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/3.xml:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/3.xml:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/3.xml:9426-9832
/CalDAVTester/trunk/Resource/implicit/schedulechanges/3.xml:2451,3035,3142,3165,3190,3405,3432
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/4.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/4.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/4.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/4.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/4.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:9426-9795
/CalDAVTester/trunk/Resource/implicit/schedulechanges/4.ics:2451,3035,3142,3165,3190,3405,3432
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/4.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/4.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/4.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/4.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/4.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/4.ics:9426-9832
/CalDAVTester/trunk/Resource/implicit/schedulechanges/4.ics:2451,3035,3142,3165,3190,3405,3432
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/5.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/5.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/5.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/5.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/5.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:9426-9795
/CalDAVTester/trunk/Resource/implicit/schedulechanges/5.ics:2451,3035,3142,3165,3190,3405,3432
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/5.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/5.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/5.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/5.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/5.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/5.ics:9426-9832
/CalDAVTester/trunk/Resource/implicit/schedulechanges/5.ics:2451,3035,3142,3165,3190,3405,3432
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/6.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/6.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/6.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/6.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/6.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:9426-9795
/CalDAVTester/trunk/Resource/implicit/schedulechanges/6.ics:2451,3035,3142,3165,3190,3405,3432
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/6.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/6.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/6.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/6.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/6.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/6.ics:9426-9832
/CalDAVTester/trunk/Resource/implicit/schedulechanges/6.ics:2451,3035,3142,3165,3190,3405,3432
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/7.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/7.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/7.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/7.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/7.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:9426-9795
/CalDAVTester/trunk/Resource/implicit/schedulechanges/7.ics:2451,3035,3142,3165,3190,3405,3432
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/7.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/7.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/7.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/7.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/7.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/7.ics:9426-9832
/CalDAVTester/trunk/Resource/implicit/schedulechanges/7.ics:2451,3035,3142,3165,3190,3405,3432
Property changes on: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/8.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/8.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/8.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/8.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/8.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:9426-9795
/CalDAVTester/trunk/Resource/implicit/schedulechanges/8.ics:2451,3035,3142,3165,3190,3405,3432
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/Resource/implicit/schedulechanges/8.ics:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/Resource/implicit/schedulechanges/8.ics:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:8221-8346
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/Resource/implicit/schedulechanges/8.ics:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/Resource/implicit/schedulechanges/8.ics:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/Resource/implicit/schedulechanges/8.ics:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:5229-5440
/CalDAVTester/trunk/Resource/CalDAV/implicit/schedulechanges/organizerchange/8.ics:9426-9832
/CalDAVTester/trunk/Resource/implicit/schedulechanges/8.ics:2451,3035,3142,3165,3190,3405,3432
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/10.xml (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/proppatches/10.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/10.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/10.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:">
+<D:set>
+<D:prop>
+<D:displayname>LompyWickets</D:displayname>
+</D:prop>
+</D:set>
+</D:propertyupdate>
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/11.xml (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/proppatches/11.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/11.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/11.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:">
+<D:set>
+<D:prop>
+<D:displayname>calendar</D:displayname>
+</D:prop>
+</D:set>
+</D:propertyupdate>
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/12.xml (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/proppatches/12.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/12.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/proppatches/12.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propfind xmlns:D="DAV:">
+<D:prop>
+<D:displayname/>
+</D:prop>
+</D:propfind>
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/recurrenceput/22.ics (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/recurrenceput/22.ics)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/recurrenceput/22.ics (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/recurrenceput/22.ics 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,62 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+X-WR-CALNAME:CalDAV tests
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20060202T205536Z
+DTSTART;TZID=US/Eastern:20130101T120000
+DURATION:PT1H
+SUMMARY:event 1
+UID:event22 at example.local
+RRULE:FREQ=MONTHLY
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20060202T205536Z
+RECURRENCE-ID;TZID=US/Eastern:20130201T120000
+DTSTART;TZID=US/Eastern:20130201T120000
+DURATION:PT1H
+SUMMARY:event 1
+UID:event22 at example.local
+BEGIN:VALARM
+X-WR-ALARMUID:D9D1AC84-F629-4B9D-9B6B-4A6CA9A11FEF
+UID:D9D1AC84-F629-4B9D-9B6B-4A6CA9A11FEF
+DESCRIPTION:Event reminder
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20060202T205536Z
+RECURRENCE-ID;TZID=US/Eastern:20140201T120000
+DTSTART;TZID=US/Eastern:20140201T120000
+DURATION:PT1H
+SUMMARY:event 1
+UID:event22 at example.local
+BEGIN:VALARM
+X-WR-ALARMUID:D9D1AC84-F629-4B9D-9B6B-4A6CA9A11FEF
+UID:D9D1AC84-F629-4B9D-9B6B-4A6CA9A11FEF
+DESCRIPTION:Event reminder
+TRIGGER:-PT5M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Deleted: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/invites/self-error/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/invites/self-error/1.xml 2012-09-21 20:13:55 UTC (rev 9832)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/invites/self-error/1.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
- <CS:set>
- <D:href>$cuaddr1:</D:href>
- <CS:summary>My Shared Calendar</CS:summary>
- <CS:read-write/>
- </CS:set>
-</CS:share>
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/invites/self-error/1.xml (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/sharing/invites/self-error/1.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/invites/self-error/1.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/invites/self-error/1.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+ <CS:set>
+ <D:href>$cuaddr1:</D:href>
+ <CS:summary>My Shared Calendar</CS:summary>
+ <CS:read-write/>
+ </CS:set>
+</CS:share>
Deleted: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/1.xml 2012-09-21 20:13:55 UTC (rev 9832)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/1.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
- <CS:set>
- <D:href>$cuaddr3:</D:href>
- <CS:common-name>Display Name 03</CS:common-name>
- <CS:summary>My Shared Calendar</CS:summary>
- <CS:read-write/>
- </CS:set>
-</CS:share>
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/1.xml (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/1.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/1.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/1.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+ <CS:set>
+ <D:href>$cuaddr3:</D:href>
+ <CS:common-name>Display Name 03</CS:common-name>
+ <CS:summary>My Shared Calendar</CS:summary>
+ <CS:read-write/>
+ </CS:set>
+</CS:share>
Deleted: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/2.xml 2012-09-21 20:13:55 UTC (rev 9832)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/2.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -1,22 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?><notification xmlns='http://calendarserver.org/ns/'>
- <dtstamp></dtstamp>
- <invite-notification shared-type='calendar'>
- <uid></uid>
- <href xmlns='DAV:'>$cuaddr3:</href>
- <invite-noresponse/>
- <access>
- <read-write/>
- </access>
- <hosturl>
- <href xmlns='DAV:'>$calendarhome1:/shared</href>
- </hosturl>
- <organizer>
- <href xmlns='DAV:'>$principaluri1:</href>
- <common-name>User 01</common-name>
- </organizer>
- <summary>My Shared Calendar</summary>
- <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'>
- <comp name="VEVENT" />
- </supported-calendar-component-set>
- </invite-notification>
-</notification>
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/2.xml (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/2.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/2.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/2.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='UTF-8'?><notification xmlns='http://calendarserver.org/ns/'>
+ <dtstamp></dtstamp>
+ <invite-notification shared-type='calendar'>
+ <uid></uid>
+ <href xmlns='DAV:'>$cuaddr3:</href>
+ <invite-noresponse/>
+ <access>
+ <read-write/>
+ </access>
+ <hosturl>
+ <href xmlns='DAV:'>$calendarhome1:/shared</href>
+ </hosturl>
+ <organizer>
+ <href xmlns='DAV:'>$principaluri1:</href>
+ <common-name>User 01</common-name>
+ </organizer>
+ <summary>My Shared Calendar</summary>
+ <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'>
+ <comp name="VEVENT" />
+ </supported-calendar-component-set>
+ </invite-notification>
+</notification>
Deleted: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/3.xml 2012-09-21 20:13:55 UTC (rev 9832)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/3.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -1,13 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<invite-reply xmlns='http://calendarserver.org/ns/'>
- <href xmlns='DAV:'>mailto:$email3:</href>
- <invite-accepted/>
- <hosturl>
- <href xmlns='DAV:'>$calendarhome1:/shared</href>
- </hosturl>
- <in-reply-to>$inviteuid:</in-reply-to>
- <summary>The Shared Calendar</summary>
- <common-name>$username3:</common-name>
- <first-name>$firstname3:</first-name>
- <last-name>$lastname3:</last-name>
-</invite-reply>
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/3.xml (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/3.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/3.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/3.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<invite-reply xmlns='http://calendarserver.org/ns/'>
+ <href xmlns='DAV:'>mailto:$email3:</href>
+ <invite-accepted/>
+ <hosturl>
+ <href xmlns='DAV:'>$calendarhome1:/shared</href>
+ </hosturl>
+ <in-reply-to>$inviteuid:</in-reply-to>
+ <summary>The Shared Calendar</summary>
+ <common-name>$username3:</common-name>
+ <first-name>$firstname3:</first-name>
+ <last-name>$lastname3:</last-name>
+</invite-reply>
Deleted: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/4.xml 2012-09-21 20:13:55 UTC (rev 9832)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/4.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -1,4 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<shared-as xmlns='http://calendarserver.org/ns/'>
- <href xmlns='DAV:'></href>
-</shared-as>
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/4.xml (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/4.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/4.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/4.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<shared-as xmlns='http://calendarserver.org/ns/'>
+ <href xmlns='DAV:'></href>
+</shared-as>
Deleted: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/5.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/5.xml 2012-09-21 20:13:55 UTC (rev 9832)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/5.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<D:propertyupdate xmlns:D="DAV:">
-<D:set>
-<D:prop>
-<D:displayname>Sharee Display Name</D:displayname>
-</D:prop>
-</D:set>
-</D:propertyupdate>
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/5.xml (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/5.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/5.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/5.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:">
+<D:set>
+<D:prop>
+<D:displayname>Sharee Display Name</D:displayname>
+</D:prop>
+</D:set>
+</D:propertyupdate>
Deleted: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/6.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/6.xml 2012-09-21 20:13:55 UTC (rev 9832)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/6.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
- <CS:remove>
- <D:href>$cuaddr3:</D:href>
- <CS:summary>My Shared Calendar</CS:summary>
- <CS:read-write/>
- </CS:remove>
-</CS:share>
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/6.xml (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/6.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/6.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/6.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+ <CS:remove>
+ <D:href>$cuaddr3:</D:href>
+ <CS:summary>My Shared Calendar</CS:summary>
+ <CS:read-write/>
+ </CS:remove>
+</CS:share>
Deleted: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/7.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/7.xml 2012-09-21 20:13:55 UTC (rev 9832)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/7.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -1,22 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?><notification xmlns='http://calendarserver.org/ns/'>
- <dtstamp></dtstamp>
- <invite-notification shared-type='calendar'>
- <uid></uid>
- <href xmlns='DAV:'>$cuaddr3:</href>
- <invite-deleted/>
- <access>
- <read-write/>
- </access>
- <hosturl>
- <href xmlns='DAV:'>$calendarhome1:/shared</href>
- </hosturl>
- <organizer>
- <href xmlns='DAV:'>$principaluri1:</href>
- <common-name>User 01</common-name>
- </organizer>
- <summary>Sharee Display Name</summary>
- <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'>
- <comp name="VEVENT" />
- </supported-calendar-component-set>
- </invite-notification>
-</notification>
Copied: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/7.xml (from rev 9832, CalDAVTester/trunk/Resource/CalDAV/sharing/unshare/shareruninvite/7.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/7.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/CalDAV/sharing/unshare/shareruninvite/7.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='UTF-8'?><notification xmlns='http://calendarserver.org/ns/'>
+ <dtstamp></dtstamp>
+ <invite-notification shared-type='calendar'>
+ <uid></uid>
+ <href xmlns='DAV:'>$cuaddr3:</href>
+ <invite-deleted/>
+ <access>
+ <read-write/>
+ </access>
+ <hosturl>
+ <href xmlns='DAV:'>$calendarhome1:/shared</href>
+ </hosturl>
+ <organizer>
+ <href xmlns='DAV:'>$principaluri1:</href>
+ <common-name>User 01</common-name>
+ </organizer>
+ <summary>Sharee Display Name</summary>
+ <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'>
+ <comp name="VEVENT" />
+ </supported-calendar-component-set>
+ </invite-notification>
+</notification>
Deleted: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/Common/MKCALENDAR/sharedcalendar.xml
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/Common/MKCALENDAR/sharedcalendar.xml 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/Common/MKCALENDAR/sharedcalendar.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<C:mkcalendar xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:S="http://calendarserver.org/ns/">
-<D:set>
-<D:prop>
-<D:resourcetype><D:collection/><C:calendar/><S:shared-owner/></D:resourcetype>
-</D:prop>
-</D:set>
-</C:mkcalendar>
Deleted: CalDAVTester/branches/users/gaya/invitecleanTester/Resource/Common/MKCOL/sharedaddressbook.xml
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/Resource/Common/MKCOL/sharedaddressbook.xml 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/Resource/Common/MKCOL/sharedaddressbook.xml 2012-09-22 20:53:20 UTC (rev 9839)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<D:mkcol xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav" xmlns:S="http://calendarserver.org/ns/">
-<D:set>
-<D:prop>
-<D:resourcetype><D:collection/><C:addressbook/><S:shared-owner/></D:resourcetype>
-</D:prop>
-</D:set>
-</D:mkcol>
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/odsetup.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/odsetup.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/odsetup.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -31,14 +31,14 @@
import traceback
import uuid
import xml.parsers.expat
-sys_root = "/Applications/Server.app/Contents/ServerRoot"
-conf_root = "/Library/Server/Calendar and Contacts/Config"
+sys_root = "/Applications/Server.app/Contents/ServerRoot"
+conf_root = "/Library/Server/Calendar and Contacts/Config"
-diradmin_user = "admin"
-diradmin_pswd = ""
-directory_node = "/LDAPv3/127.0.0.1"
-utility = sys_root + "/usr/sbin/calendarserver_manage_principals"
-cmdutility = sys_root + "/usr/sbin/calendarserver_command_gateway"
+diradmin_user = "admin"
+diradmin_pswd = ""
+directory_node = "/LDAPv3/127.0.0.1"
+utility = sys_root + "/usr/sbin/calendarserver_manage_principals"
+cmdutility = sys_root + "/usr/sbin/calendarserver_command_gateway"
verbose = False
veryverbose = False
@@ -77,43 +77,43 @@
# List of users as a tuple: (<<name>>, <<pswd>>, <<repeat count>>)
adminattrs = {
- "dsAttrTypeStandard:RealName": "Super User",
- "dsAttrTypeStandard:FirstName": "Super",
- "dsAttrTypeStandard:LastName": "User",
- "dsAttrTypeStandard:EMailAddress": "testadmin at example.com",
+ "dsAttrTypeStandard:RealName": "Super User",
+ "dsAttrTypeStandard:FirstName": "Super",
+ "dsAttrTypeStandard:LastName": "User",
+ "dsAttrTypeStandard:EMailAddress": "testadmin at example.com",
}
apprenticeattrs = {
- "dsAttrTypeStandard:RealName": "Apprentice Super User",
- "dsAttrTypeStandard:FirstName": "Apprentice",
- "dsAttrTypeStandard:LastName": "Super User",
- "dsAttrTypeStandard:EMailAddress": "apprentice at example.com",
+ "dsAttrTypeStandard:RealName": "Apprentice Super User",
+ "dsAttrTypeStandard:FirstName": "Apprentice",
+ "dsAttrTypeStandard:LastName": "Super User",
+ "dsAttrTypeStandard:EMailAddress": "apprentice at example.com",
}
userattrs = {
- "dsAttrTypeStandard:RealName": "User %02d",
- "dsAttrTypeStandard:FirstName": "User",
- "dsAttrTypeStandard:LastName": "%02d",
- "dsAttrTypeStandard:EMailAddress": "user%02d at example.com",
+ "dsAttrTypeStandard:RealName": "User %02d",
+ "dsAttrTypeStandard:FirstName": "User",
+ "dsAttrTypeStandard:LastName": "%02d",
+ "dsAttrTypeStandard:EMailAddress": "user%02d at example.com",
}
publicattrs = {
- "dsAttrTypeStandard:RealName": "Public %02d",
- "dsAttrTypeStandard:FirstName": "Public",
- "dsAttrTypeStandard:LastName": "%02d",
- "dsAttrTypeStandard:EMailAddress": "public%02d at example.com",
- "dsAttrTypeStandard:Street": "%d Public Row",
- "dsAttrTypeStandard:City": "Exampleville",
- "dsAttrTypeStandard:State": "Testshire",
- "dsAttrTypeStandard:PostalCode": "RFC 4791",
- "dsAttrTypeStandard:Country": "AAA",
+ "dsAttrTypeStandard:RealName": "Public %02d",
+ "dsAttrTypeStandard:FirstName": "Public",
+ "dsAttrTypeStandard:LastName": "%02d",
+ "dsAttrTypeStandard:EMailAddress": "public%02d at example.com",
+ "dsAttrTypeStandard:Street": "%d Public Row",
+ "dsAttrTypeStandard:City": "Exampleville",
+ "dsAttrTypeStandard:State": "Testshire",
+ "dsAttrTypeStandard:PostalCode": "RFC 4791",
+ "dsAttrTypeStandard:Country": "AAA",
}
i18nattrs = {
- "dsAttrTypeStandard:RealName": "まだ",
- "dsAttrTypeStandard:FirstName": "ま",
- "dsAttrTypeStandard:LastName": "だ",
- "dsAttrTypeStandard:EMailAddress": "i18nuser at example.com",
+ "dsAttrTypeStandard:RealName": "まだ",
+ "dsAttrTypeStandard:FirstName": "ま",
+ "dsAttrTypeStandard:LastName": "だ",
+ "dsAttrTypeStandard:EMailAddress": "i18nuser at example.com",
}
locationcreatecmd = """<?xml version="1.0" encoding="UTF-8"?>
@@ -205,19 +205,19 @@
"""
locationattrs = {
- "dsAttrTypeStandard:RealName": "Room %02d",
+ "dsAttrTypeStandard:RealName": "Room %02d",
}
delegatedroomattrs = {
- "dsAttrTypeStandard:RealName": "Delegated Conference Room",
+ "dsAttrTypeStandard:RealName": "Delegated Conference Room",
}
resourceattrs = {
- "dsAttrTypeStandard:RealName": "Resource %02d",
+ "dsAttrTypeStandard:RealName": "Resource %02d",
}
groupattrs = {
- "dsAttrTypeStandard:RealName": "Group %02d",
+ "dsAttrTypeStandard:RealName": "Group %02d",
}
records = (
@@ -245,8 +245,10 @@
-V very verbose logging
"""
+
+
def cmd(args, input=None, raiseOnFail=True):
-
+
if veryverbose:
print "-----"
if verbose:
@@ -265,6 +267,8 @@
raise RuntimeError(result[1])
return result[0], p.returncode
+
+
def readConfig(config):
"""
Read useful information from the server's caldavd.plist file.
@@ -280,7 +284,7 @@
except KeyError:
# add SudoersFile entry to caldavd.plist
plist["SudoersFile"] = conf_root + "/sudoers.plist"
- writePlist(plist,config)
+ writePlist(plist, config)
try:
sudoerspl = readPlist(plist["SudoersFile"])
@@ -317,7 +321,7 @@
authtype = "basic"
elif digest_ok:
authtype = "digest"
-
+
if not hostname:
hostname = socket.getfqdn()
if not hostname:
@@ -329,11 +333,12 @@
return hostname, nonsslport, sslport, authtype, docroot, sudoers
+
+
def patchConfig(config, admin):
"""
Patch the caldavd.plist file to make sure:
* the proper admin principal is configured
- * DS Search node is set to /LDAPv3/127.0.0.1
* iMIP is disabled
* SACLs are disabled
* CalDAV and CardDAV are enabled
@@ -349,9 +354,6 @@
admins = plist["AdminPrincipals"]
admins[:] = [admin]
- # Only concern ourselves with the OD records we care about
- plist["DirectoryService"]["params"]["node"] = "/LDAPv3/127.0.0.1"
-
# For testing do not send iMIP messages!
plist["Scheduling"]["iMIP"]["Enabled"] = False
@@ -370,6 +372,8 @@
writePlist(plist, config)
+
+
def patchConfigForAugmentService(config):
"""
Patch the caldavd.plist file to configure AugmentService
@@ -381,6 +385,8 @@
plist["AugmentService"] = {'params': {'xmlFiles': ['augments.xml']}, 'type': 'twistedcaldav.directory.augment.AugmentXMLDB'}
writePlist(plist, config)
+
+
def patchSudoers(sudoers):
"""
Patch the sudoers.plist file to add the superuser we need to test proxy authentication.
@@ -394,11 +400,13 @@
if user["username"] == "superuser" and user["password"] == "superuser":
break
else:
- users.append({"username":"superuser", "password": "superuser"})
+ users.append({"username": "superuser", "password": "superuser"})
writePlist(plist, sudoers)
+
+
def buildServerinfo(serverinfo_default, hostname, nonsslport, sslport, authtype, docroot):
-
+
# Read in the serverinfo-template.xml file
fd = open(serverinfo_template, "r")
try:
@@ -414,11 +422,11 @@
"""
subs = [
- ("$useradminguid:", guids["testadmin"]),
+ ("$useradminguid:", guids["testadmin"]),
("$userapprenticeguid:", guids["apprentice"]),
- ("$i18nguid:", guids["i18nuser"]),
+ ("$i18nguid:", guids["i18nuser"]),
]
-
+
for i in range(1, number_of_users + 1):
subs.append(("$userguid%d:" % (i,), guids["user%02d" % (i,)]))
for i in range(1, 11):
@@ -429,7 +437,7 @@
subs.append(("$locationguid%d:" % (i,), guids["location%02d" % (i,)]))
for i in range(1, number_of_groups + 1):
subs.append(("$groupguid%d:" % (i,), guids["group%02d" % (i,)]))
-
+
subs_str = ""
for x, y in subs:
subs_str += subs_template % (x, y,)
@@ -441,7 +449,7 @@
"authtype" : authtype,
"overrides" : subs_str,
}
-
+
fd = open(serverinfo_default, "w")
try:
fd.write(data)
@@ -449,6 +457,7 @@
fd.close()
+
def addLargeCalendars(hostname, docroot):
largeCalendarUser = "user09"
calendars = ("calendar.10", "calendar.100", "calendar.1000",)
@@ -469,6 +478,8 @@
cmd("sudo -u calendar tar -C \"%s\" -zx -f data/%s.tgz" % (path, calendar,))
cmd("chown -R calendar:calendar \"%s\"" % (os.path.join(path, calendar) ,))
+
+
def loadLists(config, path, records):
if path == "/Places":
result = cmd(
@@ -490,10 +501,12 @@
raise
for record in plist["result"]:
- records[record["RecordName"][0]] = record["GeneratedUID"]
+ records[record["RecordName"][0]] = record["GeneratedUID"]
+
+
def doToAccounts(config, protocol, f, users_only=False):
-
+
for record in records:
if protocol == "carddav" and record[0] in ("/Places", "/Resources"):
continue
@@ -515,8 +528,10 @@
else:
f(config, record[0], record[1:])
+
+
def doGroupMemberships():
-
+
memberships = (
("group01", ("user01",), (),),
("group02", ("user06", "user07",), (),),
@@ -526,34 +541,38 @@
("group06", ("user21",), (),),
("group07", ("user22", "user23", "user24",), (),),
)
-
+
for groupname, users, nestedgroups in memberships:
-
+
memberGUIDs = [guids[user] for user in users]
nestedGUIDs = [guids[group] for group in nestedgroups]
-
+
cmd("dscl -u %s -P %s %s -append /Groups/%s \"dsAttrTypeStandard:GroupMembers\"%s" % (diradmin_user, diradmin_pswd, directory_node, groupname, "".join([" \"%s\"" % (guid,) for guid in memberGUIDs])), raiseOnFail=False)
cmd("dscl -u %s -P %s %s -append /Groups/%s \"dsAttrTypeStandard:NestedGroups\"%s" % (diradmin_user, diradmin_pswd, directory_node, groupname, "".join([" \"%s\"" % (guid,) for guid in nestedGUIDs])), raiseOnFail=False)
+
+
def createUser(config, path, user):
-
+
if path in ("/Users", "/Groups",):
createUserViaDS(config, path, user)
elif protocol == "caldav":
createUserViaGateway(config, path, user)
+
+
def createUserViaDS(config, path, user):
# Do dscl command line operations to create a calendar user
-
+
# Only create if it does not exist
if cmd("dscl %s -list %s/%s" % (directory_node, path, user[0]), raiseOnFail=False)[1] != 0:
# Create the user
cmd("dscl -u %s -P %s %s -create %s/%s" % (diradmin_user, diradmin_pswd, directory_node, path, user[0]))
-
+
# Set the password (only for /Users)
if path == "/Users":
cmd("dscl -u %s -P %s %s -passwd %s/%s %s" % (diradmin_user, diradmin_pswd, directory_node, path, user[0], user[1]))
-
+
# Other attributes
for key, value in user[2].iteritems():
if key == "dsAttrTypeStandard:GeneratedUID":
@@ -563,13 +582,15 @@
print "%s/%s already exists" % (path, user[0],)
# Now read the guid for this record
- if guids.has_key(user[0]):
- result = cmd("dscl %s -read %s/%s GeneratedUID" % (directory_node, path, user[0]))
+ if user[0] in guids:
+ result = cmd("dscl %s -read %s/%s GeneratedUID" % (directory_node, path, user[0]))
guid = result[0].split()[1]
guids[user[0]] = guid
+
+
def createUserViaGateway(config, path, user):
-
+
# Check for existing
if path == "/Places":
if user[0] in locations:
@@ -579,53 +600,59 @@
if user[0] in resources:
guids[user[0]] = resources[user[0]]
return
-
+
guid = str(uuid.uuid4()).upper()
- if guids.has_key(user[0]):
+ if user[0] in guids:
guids[user[0]] = guid
if path == "/Places":
cmd(
"%s -f \"%s\"" % (cmdutility, config,),
locationcreatecmd % {
- "guid":guid,
- "realname":user[2]["dsAttrTypeStandard:RealName"],
- "recordname":user[0]
+ "guid": guid,
+ "realname": user[2]["dsAttrTypeStandard:RealName"],
+ "recordname": user[0]
}
)
elif path == "/Resources":
cmd(
"%s -f \"%s\"" % (cmdutility, config,),
resourcecreatecmd % {
- "guid":guid,
- "realname":user[2]["dsAttrTypeStandard:RealName"],
- "recordname":user[0]
+ "guid": guid,
+ "realname": user[2]["dsAttrTypeStandard:RealName"],
+ "recordname": user[0]
}
)
else:
raise ValueError()
-
+
+
+
def removeUser(config, path, user):
-
+
if path in ("/Users", "/Groups",):
removeUserViaDS(config, path, user)
else:
removeUserViaGateway(config, path, user)
+
+
def removeUserViaDS(config, path, user):
# Do dscl command line operations to remove a calendar user
# Create the user
cmd("dscl -u %s -P %s %s -delete %s/%s" % (diradmin_user, diradmin_pswd, directory_node, path, user[0]), raiseOnFail=False)
+
+
def removeUserViaGateway(config, path, user):
-
+
if path == "/Places":
if user[0] not in locations:
return
guid = locations[user[0]]
cmd(
"%s -f \"%s\"" % (cmdutility, config,),
- locationremovecmd % {"guid":guid,}
+ locationremovecmd % {"guid": guid, }
)
elif path == "/Resources":
if user[0] not in resources:
@@ -633,16 +660,18 @@
guid = resources[user[0]]
cmd(
"%s -f \"%s\"" % (cmdutility, config,),
- resourceremovecmd % {"guid":guid,}
+ resourceremovecmd % {"guid": guid, }
)
else:
raise ValueError()
+
+
def manageRecords(config, path, user):
"""
Set proxies and auto-schedule for locations and resources
"""
-
+
# Do caldav_utility setup
if path in ("/Places", "/Resources",):
if path in ("/Places",):
@@ -662,25 +691,25 @@
utility,
user[0],
))
-
+
# Some resources have unique auto-schedule mode set
automodes = {
- "resource05" : "none",
- "resource06" : "accept-always",
- "resource07" : "decline-always",
- "resource08" : "accept-if-free",
- "resource09" : "decline-if-busy",
- "resource10" : "automatic",
+ "resource05" : "none",
+ "resource06" : "accept-always",
+ "resource07" : "decline-always",
+ "resource08" : "accept-if-free",
+ "resource09" : "decline-if-busy",
+ "resource10" : "automatic",
}
-
+
if user[0] in automodes:
cmd("%s --set-auto-schedule-mode=%s resources:%s" % (
utility,
automodes[user[0]],
user[0],
))
-
+
if __name__ == "__main__":
config = None
@@ -716,7 +745,7 @@
if not config:
config = details[protocol]["config"]
serverinfo_default = details[protocol]["serverinfo"]
-
+
if not diradmin_pswd:
diradmin_pswd = getpass("Directory Admin Password: ")
@@ -733,14 +762,14 @@
print "Wrong arguments given: %s" % (args[0],)
usage()
raise ValueError
-
+
if args[0] == "create":
# Read the caldavd.plist file and extract some information we will need.
hostname, port, sslport, authtype, docroot, sudoers = readConfig(config)
-
+
# Patch the sudoers file for the superuser principal.
patchSudoers(sudoers)
-
+
# Patch caldavd.plist to configure AugmentService, needed before creating resources
patchConfigForAugmentService(config)
@@ -752,7 +781,7 @@
doToAccounts(config, protocol, createUser)
doGroupMemberships()
doToAccounts(config, protocol, manageRecords)
-
+
# Patch the caldavd.plist file with the testadmin user's guid-based principal-URL
patchConfig(config, "/principals/__uids__/%s/" % (guids["testadmin"],))
@@ -766,14 +795,14 @@
elif args[0] == "create-users":
# Read the caldavd.plist file and extract some information we will need.
hostname, port, sslport, authtype, docroot, sudoers = readConfig(config)
-
+
# Now generate the OD accounts (caching guids as we go).
if protocol == "caldav":
loadLists(config, "/Places", locations)
loadLists(config, "/Resources", resources)
doToAccounts(config, protocol, createUser, users_only=True)
-
+
# Create an appropriate serverinfo.xml file from the template
buildServerinfo(serverinfo_default, hostname, port, sslport, authtype, docroot)
@@ -782,7 +811,7 @@
loadLists(config, "/Places", locations)
loadLists(config, "/Resources", resources)
doToAccounts(config, protocol, removeUser)
-
+
except Exception, e:
traceback.print_exc()
sys.exit(1)
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/run.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/run.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/run.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -33,7 +33,7 @@
packages = [
("pycalendar", "pycalendar/src", "http://svn.mulberrymail.com/repos/PyCalendar/branches/server", "146"),
- ("xattr", "xattr/build/lib.%s-%s" % (get_platform(),get_python_version()), "http://svn.red-bean.com/bob/xattr/releases/xattr-0.5", "1013"),
+ ("xattr", "xattr/build/lib.%s-%s" % (get_platform(), get_python_version()), "http://svn.red-bean.com/bob/xattr/releases/xattr-0.5", "1013"),
]
def usage():
@@ -45,6 +45,8 @@
-p Print PYTHONPATH
"""
+
+
def setup():
for package in packages:
ppath = "%s/%s" % (top, package[0],)
@@ -68,6 +70,8 @@
add_paths.append("%s/%s" % (top, package[1],))
+
+
def pythonpath():
for package in packages:
add_paths.append("%s/%s" % (top, package[1],))
@@ -75,10 +79,14 @@
pypaths.extend(add_paths)
return ":".join(pypaths)
+
+
def runit():
- pythonpath= ":".join(add_paths)
- return subprocess.Popen(["./testcaldav.py", "--all"], env={"PYTHONPATH":pythonpath}).wait()
+ pythonpath = ":".join(add_paths)
+ return subprocess.Popen(["./testcaldav.py", "--all"], env={"PYTHONPATH": pythonpath}).wait()
+
+
if __name__ == "__main__":
try:
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/src/caldavtest.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/src/caldavtest.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/src/caldavtest.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -35,12 +35,12 @@
import sys
import time
-STATUSTXT_WIDTH = 60
+STATUSTXT_WIDTH = 60
"""
Patch the HTTPConnection.send to record full request details
"""
-
+
httplib.HTTPConnection._send = httplib.HTTPConnection.send
def recordRequestHeaders(self, str):
@@ -52,7 +52,7 @@
httplib.HTTPConnection.send = recordRequestHeaders
def getVersionStringFromResponse(response):
-
+
if response.version == 9:
return "HTTP/0.9"
elif response.version == 10:
@@ -62,9 +62,11 @@
else:
return "HTTP/?.?"
+
+
class caldavtest(object):
-
- def __init__( self, manager, name ):
+
+ def __init__(self, manager, name):
self.manager = manager
self.name = name
self.description = ""
@@ -76,14 +78,17 @@
self.end_deletes = []
self.suites = []
self.grabbedlocation = None
-
+
+
def missingFeatures(self):
return self.require_features - self.manager.server_info.features
+
def excludedFeatures(self):
return self.exclude_features & self.manager.server_info.features
- def run( self ):
+
+ def run(self):
if len(self.missingFeatures()) != 0:
self.manager.log(manager.LOG_HIGH, "----- Ignoring Tests from \"%s\"... -----" % self.name, before=1)
self.manager.log(manager.LOG_HIGH, " Missing features: %s" % (", ".join(sorted(self.missingFeatures())),))
@@ -92,10 +97,10 @@
self.manager.log(manager.LOG_HIGH, "----- Ignoring Tests from \"%s\"... -----" % self.name, before=1)
self.manager.log(manager.LOG_HIGH, " Excluded features: %s" % (", ".join(sorted(self.excludedFeatures())),))
return 0, 0, 1
-
+
try:
self.manager.log(manager.LOG_HIGH, "----- Running Tests from \"%s\"... -----" % self.name, before=1)
- result = self.dorequests( "Executing Start Requests...", self.start_requests, False, True, label="%s | %s" % (self.name, "START_REQUESTS") )
+ result = self.dorequests("Executing Start Requests...", self.start_requests, False, True, label="%s | %s" % (self.name, "START_REQUESTS"))
if not result:
self.manager.log(manager.LOG_ERROR, "Start items failed - tests will not be run.")
ok = 0
@@ -103,8 +108,8 @@
ignored = 0
else:
ok, failed, ignored = self.run_tests(label=self.name)
- self.doenddelete( "Deleting Requests...", label="%s | %s" % (self.name, "END_DELETE"))
- self.dorequests( "Executing End Requests...", self.end_requests, False, label="%s | %s" % (self.name, "END_REQUESTS"))
+ self.doenddelete("Deleting Requests...", label="%s | %s" % (self.name, "END_DELETE"))
+ self.dorequests("Executing End Requests...", self.end_requests, False, label="%s | %s" % (self.name, "END_REQUESTS"))
return ok, failed, ignored
except socket.error, msg:
self.manager.log(manager.LOG_ERROR, "SOCKET ERROR: %s" % (msg,), before=2)
@@ -112,19 +117,21 @@
except Exception, e:
self.manager.log(manager.LOG_ERROR, "FATAL ERROR: %s" % (e,), before=2)
return 0, 1, 0
-
- def run_tests( self, label = "" ):
+
+
+ def run_tests(self, label=""):
ok = 0
failed = 0
ignored = 0
for suite in self.suites:
- o, f, i = self.run_test_suite( suite, label="%s | %s" % (label, suite.name) )
+ o, f, i = self.run_test_suite(suite, label="%s | %s" % (label, suite.name))
ok += o
failed += f
ignored += i
return (ok, failed, ignored)
-
- def run_test_suite( self, suite, label = "" ):
+
+
+ def run_test_suite(self, suite, label=""):
descriptor = " Test Suite: %s" % suite.name
descriptor += " " * max(1, STATUSTXT_WIDTH - len(descriptor))
self.manager.log(manager.LOG_HIGH, "%s" % (descriptor,), before=1, after=0)
@@ -150,7 +157,7 @@
start_usage = self.manager.getMemusage()
etags = {}
for test in suite.tests:
- result = self.run_test( test, etags, label="%s | %s" % (label, test.name) )
+ result = self.run_test(test, etags, label="%s | %s" % (label, test.name))
if result == "t":
ok += 1
elif result == "f":
@@ -160,13 +167,14 @@
if self.manager.memUsage:
end_usage = self.manager.getMemusage()
print start_usage, end_usage
- self.manager.log(manager.LOG_HIGH, "Mem. Usage: RSS=%s%% VSZ=%s%%" % (str(((end_usage[1] - start_usage[1]) * 100)/start_usage[1]), str(((end_usage[0] - start_usage[0]) * 100)/start_usage[0])))
+ self.manager.log(manager.LOG_HIGH, "Mem. Usage: RSS=%s%% VSZ=%s%%" % (str(((end_usage[1] - start_usage[1]) * 100) / start_usage[1]), str(((end_usage[0] - start_usage[0]) * 100) / start_usage[0])))
self.manager.log(manager.LOG_HIGH, "Suite Results: %d PASSED, %d FAILED, %d IGNORED" % (ok, failed, ignored), before=1, indent=4)
if postgresCount is not None:
self.postgresResult(postgresCount, indent=4)
return (ok, failed, ignored)
-
- def run_test( self, test, etags, label = "" ):
+
+
+ def run_test(self, test, etags, label=""):
descriptor = " Test: %s" % test.name
descriptor += " " * max(1, STATUSTXT_WIDTH - len(descriptor))
self.manager.log(manager.LOG_HIGH, "%s" % (descriptor,), before=1, after=0)
@@ -191,7 +199,7 @@
reqstats = None
for ctr in range(test.count): #@UnusedVariable
for req in test.requests:
- result, resulttxt, _ignore_response, _ignore_respdata = self.dorequest( req, test.details, True, False, reqstats, etags = etags, label=label, count=ctr+1 )
+ result, resulttxt, _ignore_response, _ignore_respdata = self.dorequest(req, test.details, True, False, reqstats, etags=etags, label=label, count=ctr + 1)
if not result:
break
loglevel = [manager.LOG_ERROR, manager.LOG_HIGH][result]
@@ -200,18 +208,19 @@
self.manager.log(loglevel, resulttxt)
if result and test.stats:
self.manager.log(manager.LOG_MEDIUM, "Total Time: %.3f secs" % (reqstats.totaltime,), indent=8)
- self.manager.log(manager.LOG_MEDIUM, "Average Time: %.3f secs" % (reqstats.totaltime/reqstats.count,), indent=8)
+ self.manager.log(manager.LOG_MEDIUM, "Average Time: %.3f secs" % (reqstats.totaltime / reqstats.count,), indent=8)
self.postgresResult(postgresCount, indent=8)
return ["f", "t"][result]
-
- def dorequests( self, description, list, doverify = True, forceverify = False, label = "", count = 1 ):
+
+
+ def dorequests(self, description, list, doverify=True, forceverify=False, label="", count=1):
if len(list) == 0:
return True
description += " " * max(1, STATUSTXT_WIDTH - len(description))
self.manager.log(manager.LOG_HIGH, description, before=1, after=0)
ctr = 1
for req in list:
- result, resulttxt, _ignore_response, _ignore_respdata = self.dorequest( req, False, doverify, forceverify, label=label, count=count )
+ result, resulttxt, _ignore_response, _ignore_respdata = self.dorequest(req, False, doverify, forceverify, label=label, count=count)
if not result:
resulttxt += "\nFailure during multiple requests #%d out of %d, request=%s" % (ctr, len(list), str(req))
break
@@ -221,8 +230,9 @@
if len(resulttxt) > 0:
self.manager.log(loglevel, resulttxt)
return result
-
- def dofindall( self, collection, label = "" ):
+
+
+ def dofindall(self, collection, label=""):
hrefs = []
req = request(self.manager)
req.method = "PROPFIND"
@@ -242,26 +252,27 @@
</D:propfind>
"""
req.data.content_type = "text/xml"
- result, _ignore_resulttxt, response, respdata = self.dorequest( req, False, False, label=label )
+ result, _ignore_resulttxt, response, respdata = self.dorequest(req, False, False, label=label)
if result and (response is not None) and (response.status == 207) and (respdata is not None):
try:
tree = ElementTree(file=StringIO(respdata))
except Exception:
return ()
- request_uri = req.getURI( self.manager.server_info )
+ request_uri = req.getURI(self.manager.server_info)
for response in tree.findall("{DAV:}response"):
-
+
# Get href for this response
href = response.findall("{DAV:}href")
if len(href) != 1:
return False, " Wrong number of DAV:href elements\n"
href = href[0].text
if href != request_uri:
- hrefs.append((href, collection[1], collection[2]) )
+ hrefs.append((href, collection[1], collection[2]))
return hrefs
- def dodeleteall( self, deletes, label = "" ):
+
+ def dodeleteall(self, deletes, label=""):
if len(deletes) == 0:
return True
for deleter in deletes:
@@ -273,9 +284,10 @@
req.user = deleter[1]
if len(deleter[2]):
req.pswd = deleter[2]
- self.dorequest( req, False, False, label=label )
+ self.dorequest(req, False, False, label=label)
- def dofindnew( self, collection, label = "" ):
+
+ def dofindnew(self, collection, label=""):
hresult = ""
req = request(self.manager)
req.method = "PROPFIND"
@@ -296,7 +308,7 @@
</D:propfind>
"""
req.data.content_type = "text/xml"
- result, _ignore_resulttxt, response, respdata = self.dorequest( req, False, False, label="%s | %s" % (label, "FINDNEW") )
+ result, _ignore_resulttxt, response, respdata = self.dorequest(req, False, False, label="%s | %s" % (label, "FINDNEW"))
if result and (response is not None) and (response.status == 207) and (respdata is not None):
try:
tree = ElementTree(file=StringIO(respdata))
@@ -304,9 +316,9 @@
return hresult
latest = 0
- request_uri = req.getURI( self.manager.server_info )
- for response in tree.findall("{DAV:}response" ):
-
+ request_uri = req.getURI(self.manager.server_info)
+ for response in tree.findall("{DAV:}response"):
+
# Get href for this response
href = response.findall("{DAV:}href")
if len(href) != 1:
@@ -326,7 +338,7 @@
status = (statustxt[9] == "2")
else:
status = False
-
+
# Get properties for this propstat
prop = props.findall("{DAV:}prop")
for el in prop:
@@ -344,8 +356,9 @@
return hresult
- def dowaitcount( self, collection, count, label = ""):
-
+
+ def dowaitcount(self, collection, count, label=""):
+
for _ignore in range(30):
req = request(self.manager)
req.method = "PROPFIND"
@@ -365,14 +378,14 @@
</D:propfind>
"""
req.data.content_type = "text/xml"
- result, _ignore_resulttxt, response, respdata = self.dorequest( req, False, False, label="%s | %s %d" % (label, "WAITCOUNT", count) )
+ result, _ignore_resulttxt, response, respdata = self.dorequest(req, False, False, label="%s | %s %d" % (label, "WAITCOUNT", count))
ctr = 0
if result and (response is not None) and (response.status == 207) and (respdata is not None):
tree = ElementTree(file=StringIO(respdata))
for response in tree.findall("{DAV:}response"):
ctr += 1
-
+
if ctr - 1 == count:
return True
delay = 1
@@ -382,8 +395,9 @@
else:
return False
- def dowaitchanged( self, uri, etag, user, pswd, label = "" ):
-
+
+ def dowaitchanged(self, uri, etag, user, pswd, label=""):
+
for _ignore in range(30):
req = request(self.manager)
req.method = "HEAD"
@@ -393,7 +407,7 @@
req.user = user
if pswd:
req.pswd = pswd
- result, _ignore_resulttxt, response, _ignore_respdata = self.dorequest( req, False, False, label="%s | %s" % (label, "WAITCHANGED") )
+ result, _ignore_resulttxt, response, _ignore_respdata = self.dorequest(req, False, False, label="%s | %s" % (label, "WAITCHANGED"))
if result and (response is not None):
if response.status / 100 == 2:
hdrs = response.msg.getheaders("Etag")
@@ -412,7 +426,8 @@
return True
- def doenddelete( self, description, label = "" ):
+
+ def doenddelete(self, description, label=""):
if len(self.end_deletes) == 0:
return True
description += " " * max(1, STATUSTXT_WIDTH - len(description))
@@ -426,11 +441,12 @@
req.user = deleter[1]
if len(deleter[2]):
req.pswd = deleter[2]
- self.dorequest( req, False, False, label=label )
+ self.dorequest(req, False, False, label=label)
self.manager.log(manager.LOG_HIGH, "[DONE]")
-
- def dorequest( self, req, details=False, doverify = True, forceverify = False, stats = None, etags = None, label = "", count = 1 ):
-
+
+
+ def dorequest(self, req, details=False, doverify=True, forceverify=False, stats=None, etags=None, label="", count=1):
+
req.count = count
if isinstance(req, pause):
@@ -438,7 +454,7 @@
print "Paused"
sys.stdin.readline()
return True, "", None, None
-
+
if len(req.missingFeatures()) != 0:
#self.manager.log(manager.LOG_HIGH, "[IGNORED]")
#self.manager.log(manager.LOG_HIGH, " Missing features: %s" % (", ".join(sorted(req.missingFeatures())),))
@@ -455,7 +471,7 @@
hrefs = self.dofindall(collection, label="%s | %s" % (label, "DELETEALL"))
self.dodeleteall(hrefs, label="%s | %s" % (label, "DELETEALL"))
return True, "", None, None
-
+
# Special for delay
elif req.method == "DELAY":
# self.ruri contains a numeric delay in seconds
@@ -471,7 +487,7 @@
self.grabbedlocation = self.dofindnew(collection, label=label)
req.method = "GET"
req.ruri = "$"
-
+
# Special check for WAITCOUNT
elif req.method.startswith("WAITCOUNT"):
count = int(req.method[10:])
@@ -491,24 +507,24 @@
sys.stdin.readline()
return True, "", None, None
- result = True;
+ result = True
resulttxt = ""
response = None
respdata = None
method = req.method
- uri = req.getURI( self.manager.server_info )
+ uri = req.getURI(self.manager.server_info)
if (uri == "$"):
uri = self.grabbedlocation
- headers = req.getHeaders( self.manager.server_info )
+ headers = req.getHeaders(self.manager.server_info)
data = req.getData()
-
+
# Cache delayed delete
if req.end_delete:
- self.end_deletes.append( (uri, req.user, req.pswd) )
+ self.end_deletes.append((uri, req.user, req.pswd))
if details:
- resulttxt += " %s: %s\n" % ( method, uri )
+ resulttxt += " %s: %s\n" % (method, uri)
# Special for GETCHANGED
if req.method == "GETCHANGED":
@@ -522,48 +538,48 @@
stats.startTimer()
# Do the http request
- http = SmartHTTPConnection( self.manager.server_info.host, self.manager.server_info.port, self.manager.server_info.ssl )
+ http = SmartHTTPConnection(self.manager.server_info.host, self.manager.server_info.port, self.manager.server_info.ssl)
- if not headers.has_key('User-Agent') and label is not None:
+ if not 'User-Agent' in headers and label is not None:
headers['User-Agent'] = label.encode("utf-8")
try:
#self.manager.log(manager.LOG_LOW, "Sending request")
- http.request( method, uri, data, headers )
+ http.request(method, uri, data, headers)
#self.manager.log(manager.LOG_LOW, "Sent request")
-
+
response = http.getresponse()
-
+
respdata = None
respdata = response.read()
#self.manager.log(manager.LOG_LOW, "Read response")
finally:
http.close()
-
+
# Stop request timer before verification
if stats:
stats.endTimer()
if doverify and (respdata != None):
- result, txt = self.verifyrequest( req, uri, response, respdata )
+ result, txt = self.verifyrequest(req, uri, response, respdata)
resulttxt += txt
elif forceverify:
result = (response.status / 100 == 2)
if not result:
resulttxt += "Status Code Error: %d" % response.status
-
+
if req.print_request or (self.manager.print_request_response_on_error and not result):
resulttxt += "\n-------BEGIN:REQUEST-------\n"
resulttxt += http.requestData
resulttxt += "\n--------END:REQUEST--------\n"
-
+
if req.print_response or (self.manager.print_request_response_on_error and not result):
resulttxt += "\n-------BEGIN:RESPONSE-------\n"
resulttxt += "%s %s %s\n" % (getVersionStringFromResponse(response), response.status, response.reason,)
resulttxt += str(response.msg) + "\n" + respdata
resulttxt += "\n--------END:RESPONSE--------\n"
-
+
if etags is not None and req.method == "GET":
hdrs = response.msg.getheaders("Etag")
if hdrs:
@@ -571,7 +587,7 @@
if req.graburi:
self.manager.server_info.addextrasubs({req.graburi: self.grabbedlocation})
-
+
if req.grabheader:
for hdrname, variable in req.grabheader:
hdrs = response.msg.getheaders(hdrname)
@@ -608,11 +624,12 @@
return result, resulttxt, response, respdata
- def verifyrequest( self, req, uri, response, respdata ):
-
- result = True;
+
+ def verifyrequest(self, req, uri, response, respdata):
+
+ result = True
resulttxt = ""
-
+
# check for response
if len(req.verifiers) == 0:
return result, resulttxt
@@ -640,7 +657,8 @@
resulttxt = ""
return result, resulttxt
- def parseXML( self, node ):
+
+ def parseXML(self, node):
self.ignore_all = node.get(src.xmlDefs.ATTR_IGNORE_ALL, src.xmlDefs.ATTR_VALUE_NO) == src.xmlDefs.ATTR_VALUE_YES
for child in node.getchildren():
@@ -658,19 +676,21 @@
self.suites.append(suite)
elif child.tag == src.xmlDefs.ELEMENT_END:
self.end_requests = request.parseList(self.manager, child)
-
+
+
def parseFeatures(self, node, require=True):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_FEATURE:
(self.require_features if require else self.exclude_features).add(child.text.encode("utf-8"))
+
def extractProperty(self, propertyname, respdata):
try:
tree = ElementTree(file=StringIO(respdata))
except Exception:
return None
-
+
for response in tree.findall("{DAV:}response"):
# Get all property status
propstatus = response.findall("{DAV:}propstat")
@@ -684,7 +704,7 @@
status = (statustxt[9] == "2")
else:
status = False
-
+
if not status:
continue
@@ -704,13 +724,13 @@
value += temp
else:
value = child.text
-
+
if fqname == propertyname:
return value
return None
-
+
def extractElement(self, elementpath, respdata):
try:
@@ -718,7 +738,7 @@
tree.parse(StringIO(respdata))
except:
return None
-
+
# Strip off the top-level item
if elementpath[0] == '/':
elementpath = elementpath[1:]
@@ -730,13 +750,14 @@
return tree.getroot().text
else:
elementpath = splits[1]
-
+
e = tree.find(elementpath)
if e is not None:
return e.text
else:
return None
+
def extractElements(self, elementpath, respdata):
try:
@@ -744,7 +765,7 @@
tree.parse(StringIO(respdata))
except:
return None
-
+
# Strip off the top-level item
if elementpath[0] == '/':
elementpath = elementpath[1:]
@@ -756,13 +777,14 @@
return tree.getroot().text
else:
elementpath = splits[1]
-
+
e = tree.findall(elementpath)
if e is not None:
return [item.text for item in e]
else:
return None
+
def postgresInit(self):
"""
Initialize postgres statement counter
@@ -772,9 +794,10 @@
return int(commands.getoutput("grep \"LOG: statement:\" %s | wc -l" % (self.manager.postgresLog,)))
return 0
-
+
+
def postgresResult(self, startCount, indent):
-
+
if self.manager.postgresLog:
if os.path.exists(self.manager.postgresLog):
newCount = int(commands.getoutput("grep \"LOG: statement:\" %s | wc -l" % (self.manager.postgresLog,)))
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/src/httpshandler.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/src/httpshandler.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/src/httpshandler.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -26,10 +26,10 @@
if _haveSSL:
class HTTPSConnection_SSLv3(httplib.HTTPSConnection):
"This class allows communication via SSL."
-
+
def connect(self):
"Connect to a host on a given (SSL) port."
-
+
sock = socket.create_connection((self.host, self.port), self.timeout)
self.sock = sslmodule.wrap_socket(sock, self.key_file, self.cert_file, ssl_version=sslmodule.PROTOCOL_SSLv3)
else:
@@ -39,12 +39,12 @@
https_v3_connects = set()
def SmartHTTPConnection(host, port, ssl):
-
- def trySSL(cls, ):
+
+ def trySSL(cls,):
connect = cls(host, port)
connect.connect()
return connect
-
+
if ssl:
if (host, port) in https_v3_connects:
try:
@@ -56,22 +56,21 @@
return trySSL(httplib.HTTPSConnection)
except:
https_v23_connects.remove((host, port))
-
+
try:
https_v3_connects.add((host, port))
return trySSL(HTTPSConnection_SSLv3)
except:
https_v3_connects.remove((host, port))
-
+
try:
https_v23_connects.add((host, port))
return trySSL(httplib.HTTPSConnection)
except:
https_v23_connects.remove((host, port))
-
+
raise RuntimeError("Cannot connect via with SSLv23 or SSLv3")
else:
connect = httplib.HTTPConnection(host, port)
connect.connect()
return connect
-
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/src/manager.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/src/manager.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/src/manager.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -40,13 +40,13 @@
Main class that runs test suites defined in an XML config file.
"""
- LOG_NONE = 0
- LOG_ERROR = 1
- LOG_LOW = 2
- LOG_MEDIUM = 3
- LOG_HIGH = 4
+ LOG_NONE = 0
+ LOG_ERROR = 1
+ LOG_LOW = 2
+ LOG_MEDIUM = 3
+ LOG_HIGH = 4
- def __init__( self, text=True, level=LOG_HIGH, log_file=None ):
+ def __init__(self, text=True, level=LOG_HIGH, log_file=None):
self.server_info = serverinfo()
self.tests = []
self.textMode = text
@@ -59,8 +59,9 @@
self.print_request = False
self.print_response = False
self.print_request_response_on_error = False
-
- def log(self, level, str, indent = 0, indentStr = " ", after = 1, before = 0):
+
+
+ def log(self, level, str, indent=0, indentStr=" ", after=1, before=0):
if self.textMode and level <= self.logLevel:
if before:
self.logit("\n" * before)
@@ -70,16 +71,18 @@
if after:
self.logit("\n" * after)
+
def logit(self, str):
if self.logFile:
self.logFile.write(str)
else:
print str,
- def readXML( self, serverfile, testfiles, ssl, all, moresubs = {} ):
+ def readXML(self, serverfile, testfiles, ssl, all, moresubs={}):
+
self.log(manager.LOG_HIGH, "Reading Server Info from \"%s\"" % serverfile, after=2)
-
+
# Open and parse the server config file
try:
tree = ElementTree(file=serverfile)
@@ -93,7 +96,7 @@
if not len(serverinfo_node):
raise EX_INVALID_CONFIG_FILE
self.server_info.parseXML(serverinfo_node)
-
+
# Setup ssl stuff
self.server_info.ssl = ssl
self.server_info.port = self.server_info.sslport if ssl else self.server_info.nonsslport
@@ -104,14 +107,14 @@
)
moresubs["$hostssl:"] = "https://%s:%d" % (self.server_info.host, self.server_info.sslport,)
self.server_info.addsubs(moresubs)
-
+
for testfile in testfiles:
# Open and parse the config file
try:
tree = ElementTree(file=testfile)
except ExpatError, e:
raise RuntimeError("Unable to parse file '%s' because: %s" % (testfile, e,))
-
+
# Verify that top-level element is correct
from src.caldavtest import caldavtest
caldavtest_node = tree.getroot()
@@ -121,15 +124,16 @@
if not len(caldavtest_node):
raise EX_INVALID_CONFIG_FILE
self.log(manager.LOG_HIGH, "Reading Test Details from \"%s\"" % testfile, after=2)
-
+
# parse all the config data
test = caldavtest(self, testfile)
test.parseXML(caldavtest_node)
-
+
# ignore if all mode and ignore-all is set
if not all or not test.ignore_all:
self.tests.append(test)
+
def readCommandLine(self):
sname = "scripts/server/serverinfo.xml"
dname = "scripts/tests"
@@ -158,7 +162,7 @@
"always-print-response",
],
)
-
+
# Process single options
for option, value in options:
if option == "-s":
@@ -189,13 +193,13 @@
random_order = True
elif option == "--random-seed":
random_seed = value
-
+
if all:
files = []
- os.path.walk(dname, lambda arg,dir,names:files.extend([os.path.join(dir, name) for name in names]), None)
+ os.path.walk(dname, lambda arg, dir, names: files.extend([os.path.join(dir, name) for name in names]), None)
for file in files:
- if file.endswith(".xml") and file[len(dname)+1:] not in excludes:
- if subdir is None or file[len(dname)+1:].startswith(subdir):
+ if file.endswith(".xml") and file[len(dname) + 1:] not in excludes:
+ if subdir is None or file[len(dname) + 1:].startswith(subdir):
fnames.append(file)
# Remove any server info file from files enumerated by --all
@@ -206,7 +210,7 @@
if f[0] != '/':
f = os.path.join(dname, f)
fnames.append(f)
-
+
# Randomize file list
if random_order:
print "Randomizing order using seed '%s'" % (random_seed,)
@@ -214,14 +218,15 @@
random.shuffle(fnames)
self.readXML(sname, fnames, ssl, all)
-
+
if self.memUsage:
fd = open(pidfile, "r")
s = fd.read()
self.pid = int(s)
+
def runAll(self):
-
+
startTime = time.time()
ok = 0
failed = 0
@@ -240,37 +245,38 @@
endTime = time.time()
self.log(manager.LOG_LOW, "Overall Results: %d PASSED, %d FAILED, %d IGNORED" % (ok, failed, ignored), before=2, indent=4)
- self.log(manager.LOG_LOW, "Total time: %.3f secs" % (endTime- startTime,))
+ self.log(manager.LOG_LOW, "Total time: %.3f secs" % (endTime - startTime,))
return failed, endTime - startTime
+
def httpRequest(self, method, uri, headers, data):
# Do the http request
- http = httplib.HTTPConnection( self.server_info.host, self.server_info.port )
+ http = httplib.HTTPConnection(self.server_info.host, self.server_info.port)
try:
- http.request( method, uri, data, headers )
-
+ http.request(method, uri, data, headers)
+
response = http.getresponse()
-
+
respdata = response.read()
finally:
http.close()
-
+
return response.status, respdata
-
+
+
def getMemusage(self):
"""
-
+
@param pid: numeric pid of process to get memory usage for
@type pid: int
@retrun: tuple of (RSS, VSZ) values for the process
"""
-
+
fd = os.popen("ps -l -p %d" % (self.pid,))
data = fd.read()
lines = data.split("\n")
procdata = lines[1].split()
return int(procdata[6]), int(procdata[7])
-
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/src/request.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/src/request.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/src/request.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -87,6 +87,8 @@
return HA1.encode('hex')
+
+
# DigestCalcResponse
def calcResponse(
HA1,
@@ -124,16 +126,20 @@
respHash = m.digest().encode('hex')
return respHash
-class pause ( object ):
+
+
+class pause (object):
pass
-class request( object ):
+
+
+class request(object):
"""
Represents the HTTP request to be executed, and verifcation information to
be used to determine a satisfactory output or not.
"""
-
- def __init__( self, manager ):
+
+ def __init__(self, manager):
self.manager = manager
self.auth = True
self.user = ""
@@ -154,65 +160,72 @@
self.grabheader = []
self.grabproperty = []
self.grabelement = []
-
+
+
def __str__(self):
return "Method: %s; uris: %s" % (self.method, self.ruris if len(self.ruris) > 1 else self.ruri,)
+
def missingFeatures(self):
return self.require_features - self.manager.server_info.features
+
def excludedFeatures(self):
return self.exclude_features & self.manager.server_info.features
- def getURI( self, si ):
+
+ def getURI(self, si):
uri = si.extrasubs(self.ruri)
if "**" in uri:
uri = uri.replace("**", str(uuid.uuid4()))
elif "##" in uri:
uri = uri.replace("##", str(self.count))
return uri
-
- def getHeaders( self, si ):
+
+
+ def getHeaders(self, si):
hdrs = self.headers
for key, value in hdrs.items():
hdrs[key] = si.extrasubs(value)
-
+
# Content type
if self.data != None:
hdrs["Content-Type"] = self.data.content_type
-
+
# Auth
if self.auth:
if si.authtype.lower() == "digest":
- hdrs["Authorization"] = self.gethttpdigestauth( si )
+ hdrs["Authorization"] = self.gethttpdigestauth(si)
else:
- hdrs["Authorization"] = self.gethttpbasicauth( si )
-
+ hdrs["Authorization"] = self.gethttpbasicauth(si)
+
return hdrs
- def gethttpbasicauth( self, si ):
+
+ def gethttpbasicauth(self, si):
basicauth = [self.user, si.user][self.user == ""]
basicauth += ":"
basicauth += [self.pswd, si.pswd][self.pswd == ""]
- basicauth = "Basic " + base64.encodestring( basicauth )
- basicauth = basicauth.replace( "\n", "" )
+ basicauth = "Basic " + base64.encodestring(basicauth)
+ basicauth = basicauth.replace("\n", "")
return basicauth
- def gethttpdigestauth( self, si, wwwauthorize=None ):
-
+
+ def gethttpdigestauth(self, si, wwwauthorize=None):
+
# Check the nonce cache to see if we've used this user before
user = [self.user, si.user][self.user == ""]
pswd = [self.pswd, si.pswd][self.pswd == ""]
details = None
- if self.manager.digestCache.has_key(user):
+ if user in self.manager.digestCache:
details = self.manager.digestCache[user]
else:
- http = SmartHTTPConnection( si.host, si.port, si.ssl )
+ http = SmartHTTPConnection(si.host, si.port, si.ssl)
try:
- http.request( "OPTIONS", self.getURI(si) )
-
+ http.request("OPTIONS", self.getURI(si))
+
response = http.getresponse()
-
+
finally:
http.close()
@@ -228,12 +241,12 @@
return s[1:-1]
return s
parts = wwwauthorize.split(',')
-
+
details = {}
-
+
for (k, v) in [p.split('=', 1) for p in parts]:
details[k.strip()] = unq(v.strip())
-
+
self.manager.digestCache[user] = details
break
@@ -242,34 +255,36 @@
calcHA1(details.get('algorithm'), user, details.get('realm'), pswd, details.get('nonce'), details.get('cnonce')),
details.get('algorithm'), details.get('nonce'), details.get('nc'), details.get('cnonce'), details.get('qop'), self.method, self.getURI(si), None
)
-
+
if details.get('qop'):
response = ('Digest username="%s", realm="%s", '
'nonce="%s", uri="%s", '
- 'response=%s, algorithm=%s, cnonce="%s", qop=%s, nc=%s' % (user, details.get('realm'), details.get('nonce'), self.getURI(si), digest, details.get('algorithm'), details.get('cnonce'), details.get('qop'), details.get('nc'), ))
+ 'response=%s, algorithm=%s, cnonce="%s", qop=%s, nc=%s' % (user, details.get('realm'), details.get('nonce'), self.getURI(si), digest, details.get('algorithm'), details.get('cnonce'), details.get('qop'), details.get('nc'),))
else:
response = ('Digest username="%s", realm="%s", '
'nonce="%s", uri="%s", '
- 'response=%s, algorithm=%s' % (user, details.get('realm'), details.get('nonce'), self.getURI(si), digest, details.get('algorithm'), ))
-
+ 'response=%s, algorithm=%s' % (user, details.get('realm'), details.get('nonce'), self.getURI(si), digest, details.get('algorithm'),))
+
return response
else:
return ""
- def getFilePath( self ):
+
+ def getFilePath(self):
if self.data != None:
return self.data.filepath
else:
return ""
- def getData( self ):
+
+ def getData(self):
data = ""
if self.data != None:
if len(self.data.value) != 0:
data = self.data.value
else:
# read in the file data
- fd = open( self.data.filepath, "r" )
+ fd = open(self.data.filepath, "r")
try:
data = fd.read()
finally:
@@ -280,25 +295,27 @@
if self.data.content_type.startswith("text/calendar"):
data = self.generateCalendarData(data)
return data
-
- def generateCalendarData( self, data ):
+
+
+ def generateCalendarData(self, data):
"""
FIXME: does not work for events with recurrence overrides.
"""
-
+
# Change the following iCalendar data values:
# DTSTART, DTEND, RECURRENCE-ID, UID
-
+
data = re.sub("UID:.*", "UID:%s" % (uuid.uuid4(),), data)
data = re.sub("SUMMARY:(.*)", "SUMMARY:\\1 #%s" % (self.count,), data)
-
+
now = datetime.date.today()
data = re.sub("(DTSTART;[^:]*):[0-9]{8,8}", "\\1:%04d%02d%02d" % (now.year, now.month, now.day,), data)
data = re.sub("(DTEND;[^:]*):[0-9]{8,8}", "\\1:%04d%02d%02d" % (now.year, now.month, now.day,), data)
return data
- def parseXML( self, node ):
+
+ def parseXML(self, node):
self.auth = node.get(src.xmlDefs.ATTR_AUTH, src.xmlDefs.ATTR_VALUE_YES) == src.xmlDefs.ATTR_VALUE_YES
self.user = self.manager.server_info.subs(node.get(src.xmlDefs.ATTR_USER, "").encode("utf-8"))
self.pswd = self.manager.server_info.subs(node.get(src.xmlDefs.ATTR_PSWD, "").encode("utf-8"))
@@ -308,9 +325,9 @@
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
- self.parseFeatures( child, require=True )
+ self.parseFeatures(child, require=True)
elif child.tag == src.xmlDefs.ELEMENT_EXCLUDE_FEATURE:
- self.parseFeatures( child, require=False )
+ self.parseFeatures(child, require=False)
elif child.tag == src.xmlDefs.ELEMENT_METHOD:
self.method = child.text.encode("utf-8")
elif child.tag == src.xmlDefs.ELEMENT_HEADER:
@@ -321,10 +338,10 @@
self.ruri = self.ruris[0]
elif child.tag == src.xmlDefs.ELEMENT_DATA:
self.data = data()
- self.data.parseXML( child )
+ self.data.parseXML(child)
elif child.tag == src.xmlDefs.ELEMENT_VERIFY:
self.verifiers.append(verify(self.manager))
- self.verifiers[-1].parseXML( child )
+ self.verifiers[-1].parseXML(child)
elif child.tag == src.xmlDefs.ELEMENT_GRABURI:
self.graburi = child.text.encode("utf-8")
elif child.tag == src.xmlDefs.ELEMENT_GRABHEADER:
@@ -334,13 +351,15 @@
elif child.tag == src.xmlDefs.ELEMENT_GRABELEMENT:
self.parseMultiGrab(child, self.grabelement)
+
def parseFeatures(self, node, require=True):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_FEATURE:
(self.require_features if require else self.exclude_features).add(child.text.encode("utf-8"))
+
def parseHeader(self, node):
-
+
name = None
value = None
for child in node.getchildren():
@@ -348,25 +367,26 @@
name = child.text.encode("utf-8")
elif child.tag == src.xmlDefs.ELEMENT_VALUE:
value = self.manager.server_info.subs(child.text.encode("utf-8"))
-
+
if (name is not None) and (value is not None):
self.headers[name] = value
-
- def parseList( manager, node ):
+
+
+ def parseList(manager, node):
requests = []
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_REQUEST:
req = request(manager)
- req.parseXML( child )
- requests.append( req )
+ req.parseXML(child)
+ requests.append(req)
elif child.tag == src.xmlDefs.ELEMENT_PAUSE:
requests.append(pause())
return requests
-
- parseList = staticmethod( parseList )
+ parseList = staticmethod(parseList)
+
def parseGrab(self, node, appendto):
-
+
name = None
variable = None
for child in node.getchildren():
@@ -374,12 +394,13 @@
name = child.text.encode("utf-8")
elif child.tag == src.xmlDefs.ELEMENT_VARIABLE:
variable = self.manager.server_info.subs(child.text.encode("utf-8"))
-
+
if (name is not None) and (variable is not None):
appendto.append((name, variable))
+
def parseMultiGrab(self, node, appendto):
-
+
name = None
variable = None
for child in node.getchildren():
@@ -389,24 +410,27 @@
if variable is None:
variable = []
variable.append(self.manager.server_info.subs(child.text.encode("utf-8")))
-
+
if (name is not None) and (variable is not None):
appendto.append((name, variable))
-
-class data( object ):
+
+
+
+class data(object):
"""
Represents the data/body portion of an HTTP request.
"""
- def __init__( self ):
+ def __init__(self):
self.content_type = ""
self.filepath = ""
self.value = ""
self.substitute = False
self.generate = False
-
- def parseXML( self, node ):
+
+ def parseXML(self, node):
+
self.substitute = node.get(src.xmlDefs.ATTR_SUBSTITUTIONS, src.xmlDefs.ATTR_VALUE_YES) == src.xmlDefs.ATTR_VALUE_YES
self.generate = node.get(src.xmlDefs.ATTR_GENERATE, src.xmlDefs.ATTR_VALUE_NO) == src.xmlDefs.ATTR_VALUE_YES
@@ -416,63 +440,72 @@
elif child.tag == src.xmlDefs.ELEMENT_FILEPATH:
self.filepath = child.text.encode("utf-8")
-class verify( object ):
+
+
+class verify(object):
"""
Defines how the result of a request should be verified. This is done
by passing the response and response data to a callback with a set of arguments
specified in the test XML config file. The callback name is in the XML config
file also and is dynamically loaded to do the verification.
"""
-
- def __init__( self, manager ):
+
+ def __init__(self, manager):
self.manager = manager
self.require_features = set()
self.exclude_features = set()
self.callback = None
self.args = {}
-
+
+
def missingFeatures(self):
return self.require_features - self.manager.server_info.features
+
def excludedFeatures(self):
return self.exclude_features & self.manager.server_info.features
+
def doVerify(self, uri, response, respdata):
-
+
# Re-do substitutions from values generated during the current test run
if self.manager.server_info.hasextrasubs():
for name, values in self.args.iteritems():
newvalues = [self.manager.server_info.extrasubs(value) for value in values]
self.args[name] = newvalues
-
+
verifierClass = self._importName("verifiers." + self.callback, "Verifier")
verifier = verifierClass()
return verifier.verify(self.manager, uri, response, respdata, self.args)
+
def _importName(self, modulename, name):
"""
Import a named object from a module in the context of this function.
"""
- module = __import__(modulename, globals( ), locals( ), [name])
+ module = __import__(modulename, globals(), locals(), [name])
return getattr(module, name)
- def parseXML( self, node ):
+ def parseXML(self, node):
+
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
- self.parseFeatures( child, require=True )
+ self.parseFeatures(child, require=True)
elif child.tag == src.xmlDefs.ELEMENT_EXCLUDE_FEATURE:
- self.parseFeatures( child, require=False )
+ self.parseFeatures(child, require=False)
elif child.tag == src.xmlDefs.ELEMENT_CALLBACK:
self.callback = child.text.encode("utf-8")
elif child.tag == src.xmlDefs.ELEMENT_ARG:
self.parseArgXML(child)
+
def parseFeatures(self, node, require=True):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_FEATURE:
(self.require_features if require else self.exclude_features).add(child.text.encode("utf-8"))
+
def parseArgXML(self, node):
name = None
values = []
@@ -487,19 +520,23 @@
if name and len(values):
self.args[name] = values
-class stats( object ):
+
+
+class stats(object):
"""
Maintains stats about the current test.
"""
-
+
def __init__(self):
self.count = 0
self.totaltime = 0.0
self.currenttime = 0.0
-
+
+
def startTimer(self):
self.currenttime = time.time()
-
+
+
def endTimer(self):
self.count += 1
self.totaltime += time.time() - self.currenttime
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/src/serverinfo.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/src/serverinfo.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/src/serverinfo.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -21,12 +21,12 @@
import datetime
import src.xmlDefs
-class serverinfo( object ):
+class serverinfo(object):
"""
Maintains information about the server being targetted.
"""
- def __init__( self ):
+ def __init__(self):
self.host = ""
self.nonsslport = 80
self.sslport = 443
@@ -36,7 +36,7 @@
self.pswd = ""
self.subsdict = {}
self.extrasubsdict = {}
-
+
# Insert a bunch of date values
dtnow = datetime.date.today()
for dayoffset in xrange(-21, 21):
@@ -49,6 +49,7 @@
value = "%d" % (dtnow.year + yearoffset,)
self.subsdict[key] = value
+
def subs(self, str, db=None):
if db is None:
db = self.subsdict
@@ -64,6 +65,7 @@
count += 1
return str
+
def addsubs(self, items, db=None):
if db is None:
db_actual = self.subsdict
@@ -71,20 +73,24 @@
db_actual = db
for key, value in items.iteritems():
db_actual[key] = value
-
+
if db is None:
self.updateParams()
-
+
+
def hasextrasubs(self):
return len(self.extrasubsdict) > 0
+
def extrasubs(self, str):
return self.subs(str, self.extrasubsdict)
+
def addextrasubs(self, items):
self.addsubs(items, self.extrasubsdict)
-
- def parseXML( self, node ):
+
+
+ def parseXML(self, node):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_HOST:
try:
@@ -92,32 +98,35 @@
except:
self.host = "localhost"
elif child.tag == src.xmlDefs.ELEMENT_NONSSLPORT:
- self.nonsslport = int( child.text )
+ self.nonsslport = int(child.text)
elif child.tag == src.xmlDefs.ELEMENT_SSLPORT:
- self.sslport = int( child.text )
+ self.sslport = int(child.text)
elif child.tag == src.xmlDefs.ELEMENT_AUTHTYPE:
self.authtype = child.text.encode("utf-8")
elif child.tag == src.xmlDefs.ELEMENT_FEATURES:
self.parseFeatures(child)
elif child.tag == src.xmlDefs.ELEMENT_SUBSTITUTIONS:
self.parseSubstitutionsXML(child)
-
+
self.updateParams()
+
def parseFeatures(self, node):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_FEATURE:
self.features.add(child.text.encode("utf-8"))
- def updateParams(self):
+
+ def updateParams(self):
# Now cache some useful substitutions
if "$userid1:" not in self.subsdict:
- raise ValueError, "Must have $userid1: substitution"
+ raise ValueError("Must have $userid1: substitution")
self.user = self.subsdict["$userid1:"]
if "$pswd1:" not in self.subsdict:
- raise ValueError, "Must have $pswd1: substitution"
+ raise ValueError("Must have $pswd1: substitution")
self.pswd = self.subsdict["$pswd1:"]
+
def parseRepeatXML(self, node):
# Look for count
count = node.get(src.xmlDefs.ATTR_COUNT)
@@ -125,6 +134,7 @@
for child in node.getchildren():
self.parseSubstitutionXML(child, count)
+
def parseSubstitutionsXML(self, node):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_SUBSTITUTION:
@@ -132,6 +142,7 @@
elif child.tag == src.xmlDefs.ELEMENT_REPEAT:
self.parseRepeatXML(child)
+
def parseSubstitutionXML(self, node, repeat=None):
if node.tag == src.xmlDefs.ELEMENT_SUBSTITUTION:
key = None
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/src/test.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/src/test.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/src/test.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -22,14 +22,14 @@
from src.xmlUtils import getYesNoAttributeValue
import src.xmlDefs
-class test( object ):
+class test(object):
"""
A single test which can be comprised of multiple requests. The test can
be run more than once, and timing information gathered and averaged across
all runs.
"""
-
- def __init__( self, manager ):
+
+ def __init__(self, manager):
self.manager = manager
self.name = ""
self.details = False
@@ -40,14 +40,17 @@
self.exclude_features = set()
self.description = ""
self.requests = []
-
+
+
def missingFeatures(self):
return self.require_features - self.manager.server_info.features
+
def excludedFeatures(self):
return self.exclude_features & self.manager.server_info.features
- def parseXML( self, node ):
+
+ def parseXML(self, node):
self.name = node.get(src.xmlDefs.ATTR_NAME, "")
self.details = getYesNoAttributeValue(node, src.xmlDefs.ATTR_DETAILS)
self.count = int(node.get(src.xmlDefs.ATTR_COUNT, 1))
@@ -56,21 +59,23 @@
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
- self.parseFeatures( child, require=True )
+ self.parseFeatures(child, require=True)
elif child.tag == src.xmlDefs.ELEMENT_EXCLUDE_FEATURE:
- self.parseFeatures( child, require=False )
+ self.parseFeatures(child, require=False)
elif child.tag == src.xmlDefs.ELEMENT_DESCRIPTION:
self.description = child.text
# get request
- self.requests = request.parseList( self.manager, node )
+ self.requests = request.parseList(self.manager, node)
+
def parseFeatures(self, node, require=True):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_FEATURE:
(self.require_features if require else self.exclude_features).add(child.text.encode("utf-8"))
- def dump( self ):
+
+ def dump(self):
print "\nTEST: %s" % self.name
print " description: %s" % self.description
for req in self.requests:
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/src/testsuite.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/src/testsuite.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/src/testsuite.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -22,45 +22,50 @@
from src.xmlUtils import getYesNoAttributeValue
import src.xmlDefs
-class testsuite( object ):
+class testsuite(object):
"""
Maintains a list of tests to run as part of a 'suite'.
"""
-
- def __init__( self, manager ):
+
+ def __init__(self, manager):
self.manager = manager
self.name = ""
self.ignore = False
self.require_features = set()
self.exclude_features = set()
self.tests = []
-
+
+
def missingFeatures(self):
return self.require_features - self.manager.server_info.features
+
def excludedFeatures(self):
return self.exclude_features & self.manager.server_info.features
- def parseXML( self, node ):
+
+ def parseXML(self, node):
self.name = node.get(src.xmlDefs.ATTR_NAME, "")
self.ignore = getYesNoAttributeValue(node, src.xmlDefs.ATTR_IGNORE)
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
- self.parseFeatures( child, require=True )
+ self.parseFeatures(child, require=True)
elif child.tag == src.xmlDefs.ELEMENT_EXCLUDE_FEATURE:
- self.parseFeatures( child, require=False )
+ self.parseFeatures(child, require=False)
elif child.tag == src.xmlDefs.ELEMENT_TEST:
t = test(self.manager)
- t.parseXML( child )
- self.tests.append( t )
+ t.parseXML(child)
+ self.tests.append(t)
+
def parseFeatures(self, node, require=True):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_FEATURE:
(self.require_features if require else self.exclude_features).add(child.text.encode("utf-8"))
- def dump( self ):
+
+ def dump(self):
print "\nTest Suite:"
print " name: %s" % self.name
for iter in self.tests:
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/src/xmlUtils.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/src/xmlUtils.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/src/xmlUtils.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -21,16 +21,20 @@
import src.xmlDefs
def readStringElementList(node, ename):
-
+
results = []
for child in node.getchildren():
if child.tag == ename:
results.append(child.text.decode("utf-8"))
return results
+
+
def getYesNoAttributeValue(node, attr):
return node.get(attr, src.xmlDefs.ATTR_VALUE_NO) == src.xmlDefs.ATTR_VALUE_YES
+
+
def getDefaultAttributeValue(node, attr, default):
result = node.getAttribute(attr)
if result:
@@ -38,8 +42,10 @@
else:
return default
+
+
def readOneStringElement(node, ename):
-
+
for child in node.getchildren():
if child.tag == ename:
return child.text.decode("utf-8")
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/testcaldav.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/testcaldav.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/testcaldav.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -23,7 +23,7 @@
import sys
if __name__ == "__main__":
-
+
manager = manager()
manager.readCommandLine()
result, timing = manager.runAll()
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/aclItems.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/aclItems.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/aclItems.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -23,19 +23,19 @@
from StringIO import StringIO
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
granted = args.get("granted", [])
denied = args.get("denied", [])
-
+
# Process the multistatus response, extracting all current-user-privilege-set elements
# and check to see that each required privilege is present, or that denied ones are not.
-
+
# Must have MULTISTATUS response code
if response.status != 207:
return False, " HTTP Status for Request: %d\n" % (response.status,)
-
+
try:
tree = ElementTree(file=StringIO(respdata))
except Exception:
@@ -60,28 +60,28 @@
for privilege in privileges:
for child in privilege.getchildren():
granted_privs.append(child.tag)
-
- granted_result_set = set( granted_privs )
- granted_test_set = set( granted )
- denied_test_set = set( denied )
-
+
+ granted_result_set = set(granted_privs)
+ granted_test_set = set(granted)
+ denied_test_set = set(denied)
+
# Now do set difference
- granted_missing = granted_test_set.difference( granted_result_set )
- denied_present = granted_result_set.intersection( denied_test_set )
-
- if len( granted_missing ) + len( denied_present ) != 0:
- if len( granted_missing ) != 0:
- l = list( granted_missing )
+ granted_missing = granted_test_set.difference(granted_result_set)
+ denied_present = granted_result_set.intersection(denied_test_set)
+
+ if len(granted_missing) + len(denied_present) != 0:
+ if len(granted_missing) != 0:
+ l = list(granted_missing)
resulttxt += " Missing privileges not granted for %s:" % href
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
- if len( denied_present ) != 0:
- l = list( denied_present )
+ if len(denied_present) != 0:
+ l = list(denied_present)
resulttxt += " Available privileges that should be denied for %s:" % href
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
result = False
-
+
return result, resulttxt
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/addressDataMatch.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/addressDataMatch.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/addressDataMatch.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -22,32 +22,32 @@
"""
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
# Get arguments
files = args.get("filepath", [])
carddata = args.get("data", [])
filters = args.get("filter", [])
-
+
# Always remove these
filters.append("PRODID")
filters.append("REV")
-
+
# status code must be 200, 201, 207
- if response.status not in (200, 201,207):
+ if response.status not in (200, 201, 207):
return False, " HTTP Status Code Wrong: %d" % (response.status,)
-
+
# look for response data
if not respdata:
return False, " No response body"
-
+
# look for one file
if len(files) != 1 and len(carddata) != 1:
return False, " No file to compare response to"
-
+
# read in all data from specified file or use provided data
if len(files):
- fd = open( files[0], "r" )
+ fd = open(files[0], "r")
try:
try:
data = fd.read()
@@ -62,13 +62,13 @@
return False, " Could not read data file"
data = manager.server_info.subs(data)
-
+
def removePropertiesParameters(component):
-
+
allProps = []
for properties in component.getProperties().itervalues():
allProps.extend(properties)
- for property in allProps:
+ for property in allProps:
for filter in filters:
if ":" in filter:
propname, parameter = filter.split(":")
@@ -83,13 +83,13 @@
resp_adbk = Card.parseText(respdata)
removePropertiesParameters(resp_adbk)
respdata = resp_adbk.getText()
-
+
data_adbk = Card.parseText(data)
removePropertiesParameters(data_adbk)
data = data_adbk.getText()
-
+
result = respdata == data
-
+
if result:
return True, ""
else:
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/calendarDataMatch.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/calendarDataMatch.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/calendarDataMatch.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -23,37 +23,38 @@
"""
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
# Get arguments
files = args.get("filepath", [])
caldata = args.get("data", [])
filters = args.get("filter", [])
-
+
if "EMAIL parameter" not in manager.server_info.features:
- filters.append("ATTENDEE:EMAIL")
+ filters.append("ATTENDEE:EMAIL")
filters.append("ORGANIZER:EMAIL")
filters.append("CALSCALE")
filters.append("PRODID")
filters.append("DTSTAMP")
filters.append("CREATED")
filters.append("LAST-MODIFIED")
-
+ filters.append("X-WR-CALNAME")
+
# status code must be 200, 201, 207
- if response.status not in (200,201,207):
+ if response.status not in (200, 201, 207):
return False, " HTTP Status Code Wrong: %d" % (response.status,)
-
+
# look for response data
if not respdata:
return False, " No response body"
-
+
# look for one file
if len(files) != 1 and len(caldata) != 1:
return False, " No file to compare response to"
-
+
# read in all data from specified file or use provided data
if len(files):
- fd = open( files[0], "r" )
+ fd = open(files[0], "r")
try:
try:
data = fd.read()
@@ -68,21 +69,21 @@
return False, " Could not read data file"
data = manager.server_info.subs(data)
-
+
def removePropertiesParameters(component):
-
+
for subcomponent in component.getComponents():
removePropertiesParameters(subcomponent)
allProps = []
for properties in component.getProperties().itervalues():
allProps.extend(properties)
- for property in allProps:
+ for property in allProps:
# Always reset DTSTAMP on this X- prop
if property.getName() == "X-CALENDARSERVER-ATTENDEE-COMMENT":
if property.hasAttribute("X-CALENDARSERVER-DTSTAMP"):
property.replaceAttribute(PyCalendarAttribute("X-CALENDARSERVER-DTSTAMP", "20080101T000000Z"))
-
+
for filter in filters:
if ":" in filter:
propname, parameter = filter.split(":")
@@ -97,13 +98,13 @@
resp_calendar = PyCalendar.parseText(respdata)
removePropertiesParameters(resp_calendar)
respdata = resp_calendar.getText()
-
+
data_calendar = PyCalendar.parseText(data)
removePropertiesParameters(data_calendar)
data = data_calendar.getText()
-
+
result = respdata == data
-
+
if result:
return True, ""
else:
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/dataMatch.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/dataMatch.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/dataMatch.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -23,25 +23,25 @@
from StringIO import StringIO
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
# Get arguments
files = args.get("filepath", [])
-
+
# status code must be 200, 207
- if response.status not in (200,207):
+ if response.status not in (200, 207):
return False, " HTTP Status Code Wrong: %d" % (response.status,)
-
+
# look for response data
if not respdata:
return False, " No response body"
-
+
# look for one file
if len(files) != 1:
return False, " No file to compare response to"
-
+
# read in all data from specified file
- fd = open( files[0], "r" )
+ fd = open(files[0], "r")
try:
try:
data = fd.read()
@@ -69,11 +69,11 @@
try:
respdata = tostring(ElementTree(file=StringIO(respdata)).getroot())
except Exception:
- return False, " Could not parse XML response: %s" %(respdata,)
+ return False, " Could not parse XML response: %s" % (respdata,)
try:
data = tostring(ElementTree(file=StringIO(data)).getroot())
except Exception:
- return False, " Could not parse XML data: %s" %(data,)
+ return False, " Could not parse XML data: %s" % (data,)
if data != respdata:
result = False
else:
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/dataString.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/dataString.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/dataString.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -19,25 +19,25 @@
"""
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
# Get arguments
contains = args.get("contains", [])
notcontains = args.get("notcontains", [])
unwrap = args.get("unwrap")
empty = args.get("empty")
-
+
# Test empty
if empty:
if respdata:
return False, " Response data has a body"
else:
return True, ""
-
+
# look for response data
if not respdata:
return False, " No response body"
-
+
# Un wrap if required
if unwrap is not None:
newrespdata = respdata.replace("\r\n ", "")
@@ -54,4 +54,3 @@
return False, " Response data incorrectly contains \"%s\"" % (item,)
return True, ""
-
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/freeBusy.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/freeBusy.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/freeBusy.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -22,9 +22,9 @@
from pycalendar.exceptions import PyCalendarInvalidData
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
-
+
# Must have status 200
if response.status != 200:
return False, " HTTP Status Code Wrong: %d" % (response.status,)
@@ -33,23 +33,23 @@
busy = args.get("busy", [])
tentative = args.get("tentative", [])
unavailable = args.get("unavailable", [])
-
+
# Parse data as calendar object
try:
calendar = PyCalendar.parseText(respdata)
-
+
# Check for calendar
if calendar is None:
- raise ValueError("Not a calendar: %s" % (respdata, ))
-
+ raise ValueError("Not a calendar: %s" % (respdata,))
+
# Only one component
comps = calendar.getComponents("VFREEBUSY")
if len(comps) != 1:
raise ValueError("Wrong number or unexpected components in calendar")
-
+
# Must be VFREEBUSY
fb = comps[0]
-
+
# Extract periods
busyp = []
tentativep = []
@@ -71,13 +71,13 @@
unavailablep.extend(periods)
else:
raise ValueError("Unknown FBTYPE: %s" % (fbtype,))
-
+
# Set sizes must match
if ((len(busy) != len(busyp)) or
(len(unavailable) != len(unavailablep)) or
(len(tentative) != len(tentativep))):
raise ValueError("Period list sizes do not match.")
-
+
# Convert to string sets
busy = set(busy)
busyp = [x.getValue().getText() for x in busyp]
@@ -96,10 +96,10 @@
raise ValueError("Busy-tentative periods do not match")
elif len(unavailablep.symmetric_difference(unavailable)):
raise ValueError("Busy-unavailable periods do not match")
-
+
except PyCalendarInvalidData:
return False, " HTTP response data is not a calendar"
except ValueError, txt:
return False, " HTTP response data is invalid: %s" % (txt,)
-
+
return True, ""
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/header.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/header.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/header.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -21,7 +21,7 @@
import re
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
# Split into header/value tuples
testheader = args.get("header", [])[:]
@@ -40,7 +40,7 @@
testheader[i] = (p.split("!", 1)[0], p.split("!", 1)[1], present, False,)
else:
testheader[i] = (p, None, present, True,)
-
+
result = True
resulttxt = ""
for hdrname, hdrvalue, presence, matchvalue in testheader:
@@ -61,21 +61,21 @@
resulttxt += "\n"
resulttxt += " Response Header was present one or more times: %s" % (hdrname,)
continue
-
+
if (len(hdrs) != 1) and (presence == "single"):
result = False
if len(resulttxt):
resulttxt += "\n"
resulttxt += " Multiple Response Headers: %s" % (hdrname,)
continue
-
+
if (hdrvalue is not None):
matched = False
for hdr in hdrs:
if (re.match(hdrvalue, hdr) is not None):
matched = True
break
-
+
if matchvalue and not matched or not matchvalue and matched:
result = False
if len(resulttxt):
@@ -83,4 +83,3 @@
resulttxt += " Wrong Response Header Value: %s: %s" % (hdrname, str(hdrs))
return result, resulttxt
-
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/multistatusItems.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/multistatusItems.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/multistatusItems.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -23,7 +23,7 @@
from StringIO import StringIO
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args):
# If no hrefs requested, then assume none should come back
@@ -49,13 +49,13 @@
okhrefs = [prefix + i for i in okhrefs]
nohrefs = [prefix + i for i in nohrefs]
badhrefs = [prefix + i for i in badhrefs]
- for k,v in args.items():
+ for k, v in args.items():
v = [prefix + i for i in v]
args[k] = v
count = [int(i) for i in count]
totalcount = [int(i) for i in totalcount]
responsecount = [int(i) for i in responsecount]
-
+
if "okhrefs" in args or "nohrefs" in args or "badhrefs" in args:
doOKBad = True
elif statushrefs:
@@ -66,11 +66,11 @@
# Process the multistatus response, extracting all hrefs
# and comparing with the set defined for this test. Report any
# mismatches.
-
+
# Must have MULTISTATUS response code
if response.status != 207:
return False, " HTTP Status for Request: %d\n" % (response.status,)
-
+
try:
tree = ElementTree(file=StringIO(respdata))
except Exception:
@@ -106,7 +106,7 @@
else:
status = False
code = 0
-
+
if status:
ok_status_hrefs.append(href)
else:
@@ -117,7 +117,7 @@
no_test_set = set(nohrefs)
bad_result_set = set(bad_status_hrefs)
bad_test_set = set(badhrefs)
-
+
result = True
resulttxt = ""
@@ -125,14 +125,14 @@
if len(count) == 1:
if len(ok_result_set) != count[0] + 1:
result = False
- resulttxt += " %d items returned, but %d items expected" % (len(ok_result_set) - 1, count[0], )
+ resulttxt += " %d items returned, but %d items expected" % (len(ok_result_set) - 1, count[0],)
return result, resulttxt
# Check for total count
if len(totalcount) == 1:
if len(ok_result_set) != totalcount[0]:
result = False
- resulttxt += " %d items returned, but %d items expected" % (len(ok_result_set), totalcount[0], )
+ resulttxt += " %d items returned, but %d items expected" % (len(ok_result_set), totalcount[0],)
return result, resulttxt
# Check for response count
@@ -140,82 +140,82 @@
responses = len(ok_result_set) + len(bad_result_set)
if responses != responsecount[0]:
result = False
- resulttxt += " %d responses returned, but %d responses expected" % (responses, responsecount[0], )
+ resulttxt += " %d responses returned, but %d responses expected" % (responses, responsecount[0],)
return result, resulttxt
if doOKBad:
# Now do set difference
- ok_missing = ok_test_set.difference( ok_result_set )
- ok_extras = ok_result_set.difference( ok_test_set ) if not ignoremissing else set()
- no_extras = ok_result_set.intersection( no_test_set )
- bad_missing = bad_test_set.difference( bad_result_set )
- bad_extras = bad_result_set.difference( bad_test_set ) if not ignoremissing else set()
-
- if len( ok_missing ) + len( ok_extras ) + len( no_extras ) + len( bad_missing ) + len( bad_extras )!= 0:
- if len( ok_missing ) != 0:
- l = list( ok_missing )
- resulttxt += " %d Items not returned in report (OK):" % (len( ok_missing ), )
+ ok_missing = ok_test_set.difference(ok_result_set)
+ ok_extras = ok_result_set.difference(ok_test_set) if not ignoremissing else set()
+ no_extras = ok_result_set.intersection(no_test_set)
+ bad_missing = bad_test_set.difference(bad_result_set)
+ bad_extras = bad_result_set.difference(bad_test_set) if not ignoremissing else set()
+
+ if len(ok_missing) + len(ok_extras) + len(no_extras) + len(bad_missing) + len(bad_extras) != 0:
+ if len(ok_missing) != 0:
+ l = list(ok_missing)
+ resulttxt += " %d Items not returned in report (OK):" % (len(ok_missing),)
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
- if len( ok_extras ) != 0:
- l = list( ok_extras )
- resulttxt += " %d Unexpected items returned in report (OK):" % (len( ok_extras ), )
+ if len(ok_extras) != 0:
+ l = list(ok_extras)
+ resulttxt += " %d Unexpected items returned in report (OK):" % (len(ok_extras),)
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
- if len( no_extras ) != 0:
- l = list( no_extras )
- resulttxt += " %d Unwanted items returned in report (OK):" % (len( no_extras ), )
+ if len(no_extras) != 0:
+ l = list(no_extras)
+ resulttxt += " %d Unwanted items returned in report (OK):" % (len(no_extras),)
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
- if len( bad_missing ) != 0:
- l = list( bad_missing )
- resulttxt += " %d Items not returned in report (BAD):" % (len( bad_missing ), )
+ if len(bad_missing) != 0:
+ l = list(bad_missing)
+ resulttxt += " %d Items not returned in report (BAD):" % (len(bad_missing),)
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
- if len( bad_extras ) != 0:
- l = list( bad_extras )
- resulttxt += " %d Unexpected items returned in report (BAD):" % (len( bad_extras ), )
+ if len(bad_extras) != 0:
+ l = list(bad_extras)
+ resulttxt += " %d Unexpected items returned in report (BAD):" % (len(bad_extras),)
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
result = False
-
+
if not doOKBad:
l = list(set(statushrefs.keys()) - set(status_code_hrefs.keys()))
if l:
- resulttxt += " %d Status Codes not returned in report:" % (len( l ), )
+ resulttxt += " %d Status Codes not returned in report:" % (len(l),)
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
result = False
-
+
l = list(set(status_code_hrefs.keys()) - set(statushrefs.keys()))
if l:
- resulttxt += " %d Unexpected Status Codes returned in report:" % (len( l ), )
+ resulttxt += " %d Unexpected Status Codes returned in report:" % (len(l),)
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
result = False
-
+
for code in set(statushrefs.keys()) & set(status_code_hrefs.keys()):
l = list(set(*statushrefs[code]) - status_code_hrefs[code])
if l:
- resulttxt += " %d Items not returned in report for %d:" % (len( l ), code,)
+ resulttxt += " %d Items not returned in report for %d:" % (len(l), code,)
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
result = False
-
+
l = list(status_code_hrefs[code] - set(*statushrefs[code]))
if l:
- resulttxt += " %d Unexpected items returned in report for %d:" % (len( l ), code, )
+ resulttxt += " %d Unexpected items returned in report for %d:" % (len(l), code,)
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
result = False
-
+
return result, resulttxt
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/postFreeBusy.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/postFreeBusy.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/postFreeBusy.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -25,9 +25,9 @@
import StringIO
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
-
+
# Must have status 200
if response.status != 200:
return False, " HTTP Status Code Wrong: %d" % (response.status,)
@@ -37,7 +37,7 @@
busy = args.get("busy", [])
tentative = args.get("tentative", [])
unavailable = args.get("unavailable", [])
-
+
# Extract each calendar-data object
try:
tree = ElementTree(file=StringIO.StringIO(respdata))
@@ -48,19 +48,19 @@
# Parse data as calendar object
try:
calendar = PyCalendar.parseText(calendar.text)
-
+
# Check for calendar
if calendar is None:
- raise ValueError("Not a calendar: %s" % (calendar, ))
-
+ raise ValueError("Not a calendar: %s" % (calendar,))
+
# Only one component
comps = calendar.getComponents("VFREEBUSY")
if len(comps) != 1:
raise ValueError("Wrong number or unexpected components in calendar")
-
+
# Must be VFREEBUSY
fb = comps[0]
-
+
# Check for attendee value
for attendee in fb.getProperties("ATTENDEE"):
if attendee.getValue().getValue() in users:
@@ -90,13 +90,13 @@
unavailablep.extend(periods)
else:
raise ValueError("Unknown FBTYPE: %s" % (fbtype,))
-
+
# Set sizes must match
if ((len(busy) != len(busyp)) or
(len(unavailable) != len(unavailablep)) or
(len(tentative) != len(tentativep))):
raise ValueError("Period list sizes do not match.")
-
+
# Convert to string sets
busy = set(busy)
busyp = [x.getValue().getText() for x in busyp]
@@ -107,7 +107,7 @@
unavailable = set(unavailable)
unavailablep = [x.getValue().getText() for x in unavailablep]
unavailablep = set(unavailablep)
-
+
# Compare all periods
if len(busyp.symmetric_difference(busy)):
raise ValueError("Busy periods do not match")
@@ -115,16 +115,15 @@
raise ValueError("Busy-tentative periods do not match")
elif len(unavailablep.symmetric_difference(unavailable)):
raise ValueError("Busy-unavailable periods do not match")
-
+
break
-
+
except PyCalendarInvalidData:
return False, " HTTP response data is not a calendar"
except ValueError, txt:
return False, " HTTP response data is invalid: %s" % (txt,)
-
if len(users):
return False, " Could not find attendee/calendar data in XML response\n"
-
+
return True, ""
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/prepostcondition.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/prepostcondition.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/prepostcondition.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -22,24 +22,24 @@
from StringIO import StringIO
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
# If no status verification requested, then assume all 2xx codes are OK
teststatus = args.get("error", [])
statusCode = args.get("status", ["403", "409", "507"])
-
+
# status code could be anything, but typically 403, 409 or 507
if str(response.status) not in statusCode:
return False, " HTTP Status Code Wrong: %d" % (response.status,)
-
+
# look for pre-condition data
if not respdata:
return False, " No pre/post condition response body"
-
+
try:
tree = ElementTree(file=StringIO(respdata))
except Exception, ex:
- return False, " Could not parse XML: %s" %(ex,)
+ return False, " Could not parse XML: %s" % (ex,)
if tree.getroot().tag != "{DAV:}error":
return False, " Missing <DAV:error> element in response"
@@ -50,10 +50,10 @@
for child in tree.getroot().getchildren():
if child.tag != "{http://twistedmatrix.com/xml_namespace/dav/}error-description":
got.add(child.tag)
-
+
missing = expected.difference(got)
extras = got.difference(expected)
-
+
err_txt = ""
if len(missing):
err_txt += " Items not returned in error: element %s" % str(missing)
@@ -65,4 +65,3 @@
return False, err_txt
return True, ""
-
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/propfindItems.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/propfindItems.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/propfindItems.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -23,7 +23,7 @@
from StringIO import StringIO
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
# If no status verification requested, then assume all 2xx codes are OK
@@ -52,7 +52,7 @@
status = 207
def normalizeXML(value):
-
+
if value[0] == '<':
try:
tree = ElementTree(file=StringIO(value))
@@ -87,13 +87,13 @@
else:
badprops[i] = (p, None)
- ok_test_set = set( ok_props_match )
- bad_test_set = set( badprops )
-
+ ok_test_set = set(ok_props_match)
+ bad_test_set = set(badprops)
+
# Process the multistatus response, extracting all hrefs
# and comparing with the set defined for this test. Report any
# mismatches.
-
+
# Must have MULTISTATUS response code
if response.status != status:
return False, " HTTP Status for Request: %d\n" % (response.status,)
@@ -103,7 +103,7 @@
tree = ElementTree(file=StringIO(respdata))
except Exception:
return False, " Could not parse proper XML response\n"
-
+
# Test root element
if tree.getroot().tag != root:
return False, " Invalid root-element specified: %s\n" % (root,)
@@ -122,7 +122,7 @@
continue
if only and href not in only:
continue
-
+
if count is not None:
ctr += 1
continue
@@ -141,7 +141,7 @@
status = (statustxt[9] == "2")
else:
status = False
-
+
# Get properties for this propstat
prop = props.find("{DAV:}prop")
if not prop:
@@ -172,53 +172,53 @@
value = None
else:
value = None
-
+
if status:
- ok_status_props.append( (fqname, value,) )
+ ok_status_props.append((fqname, value,))
else:
- bad_status_props.append( (fqname, value,) )
-
- ok_result_set = set( ok_status_props )
- bad_result_set = set( bad_status_props )
-
+ bad_status_props.append((fqname, value,))
+
+ ok_result_set = set(ok_status_props)
+ bad_result_set = set(bad_status_props)
+
# Now do set difference
- ok_missing = ok_test_set.difference( ok_result_set )
- ok_extras = ok_result_set.difference( ok_test_set )
- bad_missing = bad_test_set.difference( bad_result_set )
- bad_extras = bad_result_set.difference( bad_test_set )
-
+ ok_missing = ok_test_set.difference(ok_result_set)
+ ok_extras = ok_result_set.difference(ok_test_set)
+ bad_missing = bad_test_set.difference(bad_result_set)
+ bad_extras = bad_result_set.difference(bad_test_set)
+
# Now remove extras that are in the no-match set
for name, value in [p for p in ok_extras]:
- if okprops_nomatch.has_key(name) and okprops_nomatch[name] != value:
+ if name in okprops_nomatch and okprops_nomatch[name] != value:
ok_extras.remove((name, value))
-
- if len( ok_missing ) + len( ok_extras ) + len( bad_missing ) + len( bad_extras )!= 0:
- if len( ok_missing ) != 0:
- l = list( ok_missing )
+
+ if len(ok_missing) + len(ok_extras) + len(bad_missing) + len(bad_extras) != 0:
+ if len(ok_missing) != 0:
+ l = list(ok_missing)
resulttxt += " Items not returned in report (OK) for %s:" % href
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
- if len( ok_extras ) != 0:
- l = list( ok_extras )
+ if len(ok_extras) != 0:
+ l = list(ok_extras)
resulttxt += " Unexpected items returned in report (OK) for %s:" % href
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
- if len( bad_missing ) != 0:
- l = list( bad_missing )
+ if len(bad_missing) != 0:
+ l = list(bad_missing)
resulttxt += " Items not returned in report (BAD) for %s:" % href
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
- if len( bad_extras ) != 0:
- l = list( bad_extras )
+ if len(bad_extras) != 0:
+ l = list(bad_extras)
resulttxt += " Unexpected items returned in report (BAD) for %s:" % href
for i in l:
- resulttxt += " " + str(i)
+ resulttxt += " " + str(i)
resulttxt += "\n"
result = False
-
+
if count is not None and count != ctr:
result = False
resulttxt = " Expected %d response items but got %d." % (count, ctr,)
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/propfindValues.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/propfindValues.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/propfindValues.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -23,14 +23,14 @@
import re
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
# If no status verification requested, then assume all 2xx codes are OK
ignores = args.get("ignore", [])
def normalizeXML(value):
-
+
if value[0] == '<':
try:
tree = ElementTree(file=StringIO(value))
@@ -38,7 +38,7 @@
return False, " Could not parse XML value: %s\n" % (value,)
value = tostring(tree.getroot())
return value
-
+
# Get property arguments and split on $ delimited for name, value tuples
testprops = args.get("props", [])
props_match = []
@@ -58,16 +58,16 @@
# Process the multistatus response, extracting all hrefs
# and comparing with the properties defined for this test. Report any
# mismatches.
-
+
# Must have MULTISTATUS response code
if response.status != 207:
return False, " HTTP Status for Request: %d\n" % (response.status,)
-
+
try:
tree = ElementTree(file=StringIO(respdata))
except Exception:
return False, " Could not parse proper XML response\n"
-
+
result = True
resulttxt = ""
for response in tree.findall("{DAV:}response"):
@@ -79,7 +79,7 @@
href = href[0].text
if href in ignores:
continue
-
+
# Get all property status
ok_status_props = {}
propstatus = response.findall("{DAV:}propstat")
@@ -93,19 +93,19 @@
status = (statustxt[9] == "2")
else:
status = False
-
+
# Get properties for this propstat
prop = props.findall("{DAV:}prop")
if len(prop) != 1:
return False, " Wrong number of DAV:prop elements\n"
def _removeWhitespace(node):
-
+
for child in node.getchildren():
child.text = child.text.strip() if child.text else child.text
child.tail = child.tail.strip() if child.tail else child.tail
_removeWhitespace(child)
-
+
for child in prop[0].getchildren():
fqname = child.tag
if len(child):
@@ -117,10 +117,10 @@
value = child.text
else:
value = None
-
+
if status:
ok_status_props[fqname] = value
-
+
# Look at each property we want to test and see if present
for propname, value, match in props_match:
if propname not in ok_status_props:
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/statusCode.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/statusCode.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/statusCode.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -19,11 +19,11 @@
"""
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
- # If no status veriffication requested, then assume all 2xx codes are OK
+ # If no status verification requested, then assume all 2xx codes are OK
teststatus = args.get("status", ["2xx"])
-
+
for test in teststatus:
if test[1:3] == "xx":
test = int(test[0])
@@ -33,7 +33,7 @@
result = ((response.status / 100) == test)
else:
result = (response.status == test)
- if result: return True, ""
-
+ if result:
+ return True, ""
+
return False, " HTTP Status Code Wrong: %d" % (response.status,)
-
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/xmlDataMatch.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/xmlDataMatch.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/xmlDataMatch.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -23,26 +23,26 @@
import StringIO
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
# Get arguments
files = args.get("filepath", [])
filters = args.get("filter", [])
-
+
# status code must be 200, 207
- if response.status not in (200,207):
+ if response.status not in (200, 207):
return False, " HTTP Status Code Wrong: %d" % (response.status,)
-
+
# look for response data
if not respdata:
return False, " No response body"
-
+
# look for one file
if len(files) != 1:
return False, " No file to compare response to"
-
+
# read in all data from specified file
- fd = open( files[0], "r" )
+ fd = open(files[0], "r")
try:
try:
data = fd.read()
@@ -56,14 +56,14 @@
data = manager.server_info.subs(data)
data = manager.server_info.extrasubs(data)
-
+
def normalizeXMLData(data):
# Read in XML
try:
tree = ElementTree(file=StringIO.StringIO(data))
except Exception:
raise ValueError("Could not parse XML data")
-
+
# Apply filters
for filter in filters:
for node in tree.getiterator(filter):
@@ -73,9 +73,9 @@
try:
respdata = normalizeXMLData(respdata)
data = normalizeXMLData(data)
-
+
result = respdata == data
-
+
if result:
return True, ""
else:
Modified: CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/xmlElementMatch.py
===================================================================
--- CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/xmlElementMatch.py 2012-09-22 14:24:52 UTC (rev 9838)
+++ CalDAVTester/branches/users/gaya/invitecleanTester/verifiers/xmlElementMatch.py 2012-09-22 20:53:20 UTC (rev 9839)
@@ -23,50 +23,51 @@
import StringIO
class Verifier(object):
-
+
def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
# Get arguments
exists = args.get("exists", [])
notexists = args.get("notexists", [])
-
+
# status code must be 200, 207
- if response.status not in (200,207):
+ if response.status not in (200, 207):
return False, " HTTP Status Code Wrong: %d" % (response.status,)
-
+
# look for response data
if not respdata:
return False, " No response body"
-
+
# Read in XML
try:
tree = ElementTree(file=StringIO.StringIO(respdata))
except Exception, e:
return False, " Response data is not xml data: %s" % (e,)
-
+
def _splitPathTests(path):
if '[' in path:
return path.split('[', 1)
else:
return path, None
-
+
result = True
resulttxt = ""
for path in exists:
-
+
matched, txt = self.matchPath(tree, path)
result &= matched
resulttxt += txt
-
+
for path in notexists:
matched, _ignore_txt = self.matchPath(tree, path)
if matched:
resulttxt += " Items returned in XML for %s\n" % (path,)
result = False
-
+
return result, resulttxt
-
+
+
def matchPath(self, tree, path):
-
+
result = True
resulttxt = ""
@@ -75,7 +76,7 @@
else:
actual_path = path
tests = None
-
+
# Handle absolute root element
if actual_path[0] == '/':
actual_path = actual_path[1:]
@@ -88,7 +89,7 @@
root_path = actual_path
child_path = None
nodes = (tree.getroot(),)
-
+
if len(nodes) == 0:
resulttxt += " Items not returned in XML for %s\n" % (path,)
result = False
@@ -98,7 +99,7 @@
tests = [item[:-1] for item in tests.split('[')]
for test in tests:
for node in nodes:
-
+
def _doTest():
result = None
if test[0] == '@':
@@ -125,7 +126,7 @@
if node.text is None or not node.text.startswith(test[1:]):
result = " Incorrect value returned in XML for %s\n" % (path,)
return result
-
+
testresult = _doTest()
if testresult is None:
break
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120922/2e9a36e2/attachment-0001.html>
More information about the calendarserver-changes
mailing list