<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[13799] CalendarServer/trunk/txdav/caldav</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.calendarserver.org//changeset/13799">13799</a></dd>
<dt>Author</dt> <dd>cdaboo@apple.com</dd>
<dt>Date</dt> <dd>2014-07-28 08:18:44 -0700 (Mon, 28 Jul 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>White space.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#CalendarServertrunktxdavcaldavdatastorefilepy">CalendarServer/trunk/txdav/caldav/datastore/file.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreindex_filepy">CalendarServer/trunk/txdav/caldav/datastore/index_file.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastorequerytesttest_filterpy">CalendarServer/trunk/txdav/caldav/datastore/query/test/test_filter.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulepy">CalendarServer/trunk/txdav/caldav/datastore/schedule.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingcaldavtesttest_schedulerpy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/caldav/test/test_scheduler.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingimipinboundpy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/inbound.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingimipoutboundpy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/outbound.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingimiptesttest_inboundpy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_inbound.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingimiptesttest_mailgatewaypy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_mailgateway.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingimiptesttest_outboundpy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_outbound.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingischeduleresourcepy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/resource.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingischeduletesttest_dkimpy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_dkim.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingischeduletesttest_remoteserverspy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_remoteservers.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingischeduletesttest_resourcepy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_resource.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingischeduleutilspy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/utils.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingschedulerpy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/scheduler.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingtesttest_freebusypy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_freebusy.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingtesttest_icalsplitterpy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_icalsplitter.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingtesttest_implicitpy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_implicit.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingtesttest_workpy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_work.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreschedulingutilspy">CalendarServer/trunk/txdav/caldav/datastore/scheduling/utils.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoretestcommonpy">CalendarServer/trunk/txdav/caldav/datastore/test/common.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoretesttest_attachmentspy">CalendarServer/trunk/txdav/caldav/datastore/test/test_attachments.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoretesttest_implicitpy">CalendarServer/trunk/txdav/caldav/datastore/test/test_implicit.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoretesttest_index_filepy">CalendarServer/trunk/txdav/caldav/datastore/test/test_index_file.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoretesttest_queue_schedulingpy">CalendarServer/trunk/txdav/caldav/datastore/test/test_queue_scheduling.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoretesttest_sql_externalpy">CalendarServer/trunk/txdav/caldav/datastore/test/test_sql_external.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoretesttest_sql_sharingpy">CalendarServer/trunk/txdav/caldav/datastore/test/test_sql_sharing.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoretestutilpy">CalendarServer/trunk/txdav/caldav/datastore/test/util.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavdatastoreutilpy">CalendarServer/trunk/txdav/caldav/datastore/util.py</a></li>
<li><a href="#CalendarServertrunktxdavcaldavicalendarstorepy">CalendarServer/trunk/txdav/caldav/icalendarstore.py</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="CalendarServertrunktxdavcaldavdatastorefilepy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/file.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/file.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/file.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -173,8 +173,10 @@
</span><span class="cx"> for calendar in self.calendars():
</span><span class="cx"> for calendarObject in calendar.calendarObjects():
</span><span class="cx"> component = calendarObject.component()
</span><del>- if (component.hasPropertyInAnyComponent("X-APPLE-DROPBOX") or
- component.hasPropertyInAnyComponent("ATTACH")):
</del><ins>+ if (
+ component.hasPropertyInAnyComponent("X-APPLE-DROPBOX") or
+ component.hasPropertyInAnyComponent("ATTACH")
+ ):
</ins><span class="cx"> dropboxID = (yield calendarObject.dropboxID())
</span><span class="cx"> dropboxIDs.append(dropboxID)
</span><span class="cx"> returnValue(dropboxIDs)
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreindex_filepy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/index_file.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/index_file.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/index_file.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -874,15 +874,16 @@
</span><span class="cx"> def reserveUID(self, uid):
</span><span class="cx"> uid = uid.encode('utf-8')
</span><span class="cx"> self.log.debug("Reserving UID %r @ %r" % (
</span><del>- uid,
- self.index.resource.fp.path))
</del><ins>+ uid,
+ self.index.resource.fp.path)
+ )
</ins><span class="cx">
</span><span class="cx"> def _handleFalse(result):
</span><span class="cx"> if result is False:
</span><span class="cx"> raise ReservationError(
</span><span class="cx"> "UID %s already reserved for calendar collection %s."
</span><span class="cx"> % (uid, self.index.resource)
</span><del>- )
</del><ins>+ )
</ins><span class="cx">
</span><span class="cx"> d = self.getCachePool().add(self._key(uid),
</span><span class="cx"> 'reserved',
</span><span class="lines">@@ -894,15 +895,16 @@
</span><span class="cx"> def unreserveUID(self, uid):
</span><span class="cx"> uid = uid.encode('utf-8')
</span><span class="cx"> self.log.debug("Unreserving UID %r @ %r" % (
</span><del>- uid,
- self.index.resource.fp.path))
</del><ins>+ uid,
+ self.index.resource.fp.path)
+ )
</ins><span class="cx">
</span><span class="cx"> def _handleFalse(result):
</span><span class="cx"> if result is False:
</span><span class="cx"> raise ReservationError(
</span><span class="cx"> "UID %s is not reserved for calendar collection %s."
</span><span class="cx"> % (uid, self.index.resource)
</span><del>- )
</del><ins>+ )
</ins><span class="cx">
</span><span class="cx"> d = self.getCachePool().delete(self._key(uid))
</span><span class="cx"> d.addCallback(_handleFalse)
</span><span class="lines">@@ -912,8 +914,9 @@
</span><span class="cx"> def isReservedUID(self, uid):
</span><span class="cx"> uid = uid.encode('utf-8')
</span><span class="cx"> self.log.debug("Is reserved UID %r @ %r" % (
</span><del>- uid,
- self.index.resource.fp.path))
</del><ins>+ uid,
+ self.index.resource.fp.path)
+ )
</ins><span class="cx">
</span><span class="cx"> def _checkValue((flags, value)):
</span><span class="cx"> if value is None:
</span><span class="lines">@@ -967,7 +970,7 @@
</span><span class="cx"> raise ReservationError(
</span><span class="cx"> "UID %s is not reserved for calendar collection %s."
</span><span class="cx"> % (uid, self.index.resource)
</span><del>- )
</del><ins>+ )
</ins><span class="cx"> else:
</span><span class="cx"> try:
</span><span class="cx"> self.index._db_execute(
</span><span class="lines">@@ -1114,7 +1117,7 @@
</span><span class="cx"> except ValueError:
</span><span class="cx"> log.error("Non-calendar resource: %s" % (name,))
</span><span class="cx"> else:
</span><del>- #log.info("Indexing resource: %s" % (name,))
</del><ins>+ # og.info("Indexing resource: %s" % (name,))
</ins><span class="cx"> self.addResource(name, calendar, True, reCreate=True)
</span><span class="cx"> finally:
</span><span class="cx"> stream.close()
</span><span class="lines">@@ -1226,7 +1229,7 @@
</span><span class="cx"> except ValueError:
</span><span class="cx"> log.error("Non-calendar resource: %s" % (name,))
</span><span class="cx"> else:
</span><del>- #log.info("Indexing resource: %s" % (name,))
</del><ins>+ # log.info("Indexing resource: %s" % (name,))
</ins><span class="cx"> self.addResource(name, calendar, True, reCreate=True)
</span><span class="cx"> finally:
</span><span class="cx"> stream.close()
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastorequerytesttest_filterpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/query/test/test_filter.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/query/test/test_filter.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/query/test/test_filter.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-##
</del><ins>+# #
</ins><span class="cx"> # Copyright (c) 2011-2014 Apple Inc. All rights reserved.
</span><span class="cx"> #
</span><span class="cx"> # Licensed under the Apache License, Version 2.0 (the "License");
</span><span class="lines">@@ -12,7 +12,7 @@
</span><span class="cx"> # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
</span><span class="cx"> # See the License for the specific language governing permissions and
</span><span class="cx"> # limitations under the License.
</span><del>-##
</del><ins>+# #
</ins><span class="cx">
</span><span class="cx"> from pycalendar.timezone import Timezone
</span><span class="cx">
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> filter = caldavxml.Filter(
</span><span class="cx"> caldavxml.ComponentFilter(
</span><span class="cx"> *[caldavxml.ComponentFilter(
</span><del>- **{"name":("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</del><ins>+ **{"name": ("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</ins><span class="cx"> )],
</span><span class="cx"> **{"name": "VCALENDAR"}
</span><span class="cx"> )
</span><span class="lines">@@ -82,8 +82,8 @@
</span><span class="cx"> filter = caldavxml.Filter(
</span><span class="cx"> caldavxml.ComponentFilter(
</span><span class="cx"> *[caldavxml.ComponentFilter(
</span><del>- *[caldavxml.TimeRange(**{"start":"20060605T160000Z", "end":"20060605T170000Z"})],
- **{"name":("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</del><ins>+ *[caldavxml.TimeRange(**{"start": "20060605T160000Z", "end": "20060605T170000Z"})],
+ **{"name": ("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</ins><span class="cx"> )],
</span><span class="cx"> **{"name": "VCALENDAR"}
</span><span class="cx"> )
</span><span class="lines">@@ -111,8 +111,8 @@
</span><span class="cx"> filter = caldavxml.Filter(
</span><span class="cx"> caldavxml.ComponentFilter(
</span><span class="cx"> *[caldavxml.ComponentFilter(
</span><del>- *[caldavxml.TimeRange(**{"start":"20060605T160000Z", "end":"20060605T170000Z"})],
- **{"name":("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</del><ins>+ *[caldavxml.TimeRange(**{"start": "20060605T160000Z", "end": "20060605T170000Z"})],
+ **{"name": ("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</ins><span class="cx"> )],
</span><span class="cx"> **{"name": "VCALENDAR"}
</span><span class="cx"> )
</span><span class="lines">@@ -141,10 +141,10 @@
</span><span class="cx"> caldavxml.ComponentFilter(
</span><span class="cx"> *[
</span><span class="cx"> caldavxml.ComponentFilter(
</span><del>- **{"name":("VEVENT")}
</del><ins>+ **{"name": ("VEVENT")}
</ins><span class="cx"> ),
</span><span class="cx"> caldavxml.ComponentFilter(
</span><del>- **{"name":("VTODO")}
</del><ins>+ **{"name": ("VTODO")}
</ins><span class="cx"> ),
</span><span class="cx"> ],
</span><span class="cx"> **{"name": "VCALENDAR"}
</span><span class="lines">@@ -174,11 +174,11 @@
</span><span class="cx"> caldavxml.ComponentFilter(
</span><span class="cx"> *[
</span><span class="cx"> caldavxml.ComponentFilter(
</span><del>- *[caldavxml.TimeRange(**{"start":"20060605T160000Z", })],
- **{"name":("VEVENT")}
</del><ins>+ *[caldavxml.TimeRange(**{"start": "20060605T160000Z", })],
+ **{"name": ("VEVENT")}
</ins><span class="cx"> ),
</span><span class="cx"> caldavxml.ComponentFilter(
</span><del>- **{"name":("VTODO")}
</del><ins>+ **{"name": ("VTODO")}
</ins><span class="cx"> ),
</span><span class="cx"> ],
</span><span class="cx"> **{"name": "VCALENDAR", "test": "anyof"}
</span><span class="lines">@@ -208,7 +208,7 @@
</span><span class="cx"> filter = caldavxml.Filter(
</span><span class="cx"> caldavxml.ComponentFilter(
</span><span class="cx"> *[caldavxml.ComponentFilter(
</span><del>- **{"name":("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</del><ins>+ **{"name": ("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</ins><span class="cx"> )],
</span><span class="cx"> **{"name": "VCALENDAR"}
</span><span class="cx"> )
</span><span class="lines">@@ -238,7 +238,7 @@
</span><span class="cx"> filter = caldavxml.Filter(
</span><span class="cx"> caldavxml.ComponentFilter(
</span><span class="cx"> *[caldavxml.ComponentFilter(
</span><del>- **{"name":("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</del><ins>+ **{"name": ("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</ins><span class="cx"> )],
</span><span class="cx"> **{"name": "VCALENDAR"}
</span><span class="cx"> )
</span><span class="lines">@@ -260,8 +260,8 @@
</span><span class="cx"> filter = caldavxml.Filter(
</span><span class="cx"> caldavxml.ComponentFilter(
</span><span class="cx"> *[caldavxml.ComponentFilter(
</span><del>- *[caldavxml.TimeRange(**{"start":"20060605T160000Z", "end":"20060605T170000Z"})],
- **{"name":("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</del><ins>+ *[caldavxml.TimeRange(**{"start": "20060605T160000Z", "end": "20060605T170000Z"})],
+ **{"name": ("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
</ins><span class="cx"> )],
</span><span class="cx"> **{"name": "VCALENDAR"}
</span><span class="cx"> )
</span><span class="lines">@@ -287,10 +287,10 @@
</span><span class="cx"> caldavxml.ComponentFilter(
</span><span class="cx"> *[
</span><span class="cx"> caldavxml.ComponentFilter(
</span><del>- **{"name":("VEVENT")}
</del><ins>+ **{"name": ("VEVENT")}
</ins><span class="cx"> ),
</span><span class="cx"> caldavxml.ComponentFilter(
</span><del>- **{"name":("VTODO")}
</del><ins>+ **{"name": ("VTODO")}
</ins><span class="cx"> ),
</span><span class="cx"> ],
</span><span class="cx"> **{"name": "VCALENDAR"}
</span><span class="lines">@@ -315,11 +315,11 @@
</span><span class="cx"> caldavxml.ComponentFilter(
</span><span class="cx"> *[
</span><span class="cx"> caldavxml.ComponentFilter(
</span><del>- *[caldavxml.TimeRange(**{"start":"20060605T160000Z", })],
- **{"name":("VEVENT")}
</del><ins>+ *[caldavxml.TimeRange(**{"start": "20060605T160000Z", })],
+ **{"name": ("VEVENT")}
</ins><span class="cx"> ),
</span><span class="cx"> caldavxml.ComponentFilter(
</span><del>- **{"name":("VTODO")}
</del><ins>+ **{"name": ("VTODO")}
</ins><span class="cx"> ),
</span><span class="cx"> ],
</span><span class="cx"> **{"name": "VCALENDAR", "test": "anyof"}
</span><span class="lines">@@ -349,7 +349,7 @@
</span><span class="cx"> caldavxml.TextMatch.fromString("1234", False),
</span><span class="cx"> name="UID",
</span><span class="cx"> ),
</span><del>- **{"name":("VEVENT")}
</del><ins>+ **{"name": ("VEVENT")}
</ins><span class="cx"> ),
</span><span class="cx"> ],
</span><span class="cx"> **{"name": "VCALENDAR", "test": "anyof"}
</span><span class="lines">@@ -382,9 +382,9 @@
</span><span class="cx"> *[caldavxml.ComponentFilter(
</span><span class="cx"> *[caldavxml.ComponentFilter(
</span><span class="cx"> caldavxml.IsNotDefined(),
</span><del>- **{"name":"VALARM"}
</del><ins>+ **{"name": "VALARM"}
</ins><span class="cx"> )],
</span><del>- **{"name":"VEVENT"}
</del><ins>+ **{"name": "VEVENT"}
</ins><span class="cx"> )],
</span><span class="cx"> **{"name": "VCALENDAR"}
</span><span class="cx"> )
</span><span class="lines">@@ -431,5 +431,4 @@
</span><span class="cx"> END:VALARM
</span><span class="cx"> END:VEVENT
</span><span class="cx"> END:VCALENDAR
</span><del>-"""
- )))
</del><ins>+""")))
</ins></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulepy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/schedule.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/schedule.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/schedule.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -53,9 +53,7 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx">
</span><del>-class ImplicitCalendarHome(
- proxyForInterface(ICalendarHome, "_calendarHome")
- ):
</del><ins>+class ImplicitCalendarHome(proxyForInterface(ICalendarHome, "_calendarHome")):
</ins><span class="cx">
</span><span class="cx"> implements(ICalendarHome)
</span><span class="cx">
</span><span class="lines">@@ -213,5 +211,4 @@
</span><span class="cx"> """
</span><span class="cx"> Wrap an underlying L{ITransaction}.
</span><span class="cx"> """
</span><del>- return ImplicitTransaction(
- self._calendarStore.newTransaction(label))
</del><ins>+ return ImplicitTransaction(self._calendarStore.newTransaction(label))
</ins></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingcaldavtesttest_schedulerpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/caldav/test/test_scheduler.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/caldav/test/test_scheduler.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/caldav/test/test_scheduler.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -67,25 +67,25 @@
</span><span class="cx"> @classproperty(cache=False)
</span><span class="cx"> def requirements(cls): #@NoSelf
</span><span class="cx"> return {
</span><del>- "user01": {
- "calendar_1": {
</del><ins>+ "user01": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
</del><ins>+ "user02": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- },
- "user02": {
- "calendar_1": {
</del><ins>+ "user03": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
- },
- },
- "user03": {
- "calendar_1": {
- },
- "inbox": {
- },
- },
- }
</del><ins>+ }
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> def storeUnderTest(self):
</span><span class="lines">@@ -284,12 +284,7 @@
</span><span class="cx"> ORGANIZER:mailto:user01@example.com
</span><span class="cx"> END:VFREEBUSY
</span><span class="cx"> END:VCALENDAR
</span><del>-""" % {
- "now": self.now.getText(),
- "now_1D": self.now_1D.getText(),
- "now_12H": self.now_12H.getText(),
- "now_13H": self.now_13H.getText(),
-}
</del><ins>+""" % {"now": self.now.getText(), "now_1D": self.now_1D.getText(), "now_12H": self.now_12H.getText(), "now_13H": self.now_13H.getText(), }
</ins><span class="cx">
</span><span class="cx"> scheduler = CalDAVScheduler(self.transactionUnderTest(), "user01")
</span><span class="cx"> result = (yield scheduler.doSchedulingViaPOST("mailto:user01@example.com", ["mailto:user01@example.com", ], Component.fromString(data_request)))
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingimipinboundpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/inbound.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/inbound.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/inbound.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -114,7 +114,8 @@
</span><span class="cx"> # If we're using our dedicated account on our local server, we're free
</span><span class="cx"> # to delete all messages that arrive in the inbox so as to not let
</span><span class="cx"> # cruft build up
</span><del>- self.deleteAllMail = shouldDeleteAllMail(config.ServerHostName,
</del><ins>+ self.deleteAllMail = shouldDeleteAllMail(
+ config.ServerHostName,
</ins><span class="cx"> settings.Server, settings.Username)
</span><span class="cx"> self.mailReceiver = MailReceiver(store, directory)
</span><span class="cx"> mailType = settings['Type']
</span><span class="lines">@@ -126,12 +127,14 @@
</span><span class="cx"> contextFactory = None
</span><span class="cx"> if settings["UseSSL"]:
</span><span class="cx"> contextFactory = ssl.ClientContextFactory()
</span><del>- self.point = GAIEndpoint(self.reactor, settings.Server,
</del><ins>+ self.point = GAIEndpoint(
+ self.reactor, settings.Server,
</ins><span class="cx"> settings.Port, contextFactory=contextFactory)
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> def fetchMail(self):
</span><del>- return self.point.connect(self.factory(self.settings, self.mailReceiver,
</del><ins>+ return self.point.connect(self.factory(
+ self.settings, self.mailReceiver,
</ins><span class="cx"> self.deleteAllMail))
</span><span class="cx">
</span><span class="cx">
</span><span class="lines">@@ -206,7 +209,7 @@
</span><span class="cx"> deliveryStatus = part
</span><span class="cx"> continue
</span><span class="cx"> elif contentType == "message/rfc822":
</span><del>- #original = part
</del><ins>+ # original = part
</ins><span class="cx"> continue
</span><span class="cx"> elif contentType == "text/calendar":
</span><span class="cx"> calBody = part.get_payload(decode=True)
</span><span class="lines">@@ -259,16 +262,17 @@
</span><span class="cx"> organizer, attendee, _ignore_icaluid = result[0]
</span><span class="cx"> except:
</span><span class="cx"> # This isn't a token we recognize
</span><del>- log.error("Mail gateway found a token (%s) but didn't "
- "recognize it in message %s"
- % (token, msgId))
</del><ins>+ log.error(
+ "Mail gateway found a token (%s) but didn't recognize it in message %s"
+ % (token, msgId))
</ins><span class="cx"> returnValue(self.UNKNOWN_TOKEN)
</span><span class="cx">
</span><span class="cx"> calendar.removeAllButOneAttendee(attendee)
</span><span class="cx"> calendar.getOrganizerProperty().setValue(organizer)
</span><span class="cx"> for comp in calendar.subcomponents():
</span><span class="cx"> if comp.name() == "VEVENT":
</span><del>- comp.addProperty(Property("REQUEST-STATUS",
</del><ins>+ comp.addProperty(Property(
+ "REQUEST-STATUS",
</ins><span class="cx"> ["5.1", "Service unavailable"]))
</span><span class="cx"> break
</span><span class="cx"> else:
</span><span class="lines">@@ -278,7 +282,8 @@
</span><span class="cx">
</span><span class="cx"> log.warn("Mail gateway processing DSN %s" % (msgId,))
</span><span class="cx"> txn = self.store.newTransaction(label="MailReceiver.processDSN")
</span><del>- yield txn.enqueue(IMIPReplyWork, organizer=organizer, attendee=attendee,
</del><ins>+ yield txn.enqueue(
+ IMIPReplyWork, organizer=organizer, attendee=attendee,
</ins><span class="cx"> icalendarText=str(calendar))
</span><span class="cx"> yield txn.commit()
</span><span class="cx"> returnValue(self.INJECTION_SUBMITTED)
</span><span class="lines">@@ -292,12 +297,14 @@
</span><span class="cx"> # addr looks like: server_address+token@example.com
</span><span class="cx"> token = self._extractToken(addr)
</span><span class="cx"> if not token:
</span><del>- log.error("Mail gateway didn't find a token in message "
- "%s (%s)" % (msg['Message-ID'], msg['To']))
</del><ins>+ log.error(
+ "Mail gateway didn't find a token in message "
+ "%s (%s)" % (msg['Message-ID'], msg['To']))
</ins><span class="cx"> returnValue(self.NO_TOKEN)
</span><span class="cx"> else:
</span><del>- log.error("Mail gateway couldn't parse To: address (%s) in "
- "message %s" % (msg['To'], msg['Message-ID']))
</del><ins>+ log.error(
+ "Mail gateway couldn't parse To: address (%s) in "
+ "message %s" % (msg['To'], msg['Message-ID']))
</ins><span class="cx"> returnValue(self.MALFORMED_TO_ADDRESS)
</span><span class="cx">
</span><span class="cx"> txn = self.store.newTransaction(label="MailReceiver.processReply")
</span><span class="lines">@@ -308,9 +315,10 @@
</span><span class="cx"> organizer, attendee, _ignore_icaluid = result[0]
</span><span class="cx"> except:
</span><span class="cx"> # This isn't a token we recognize
</span><del>- log.error("Mail gateway found a token (%s) but didn't "
- "recognize it in message %s"
- % (token, msg['Message-ID']))
</del><ins>+ log.error(
+ "Mail gateway found a token (%s) but didn't "
+ "recognize it in message %s"
+ % (token, msg['Message-ID']))
</ins><span class="cx"> returnValue(self.UNKNOWN_TOKEN)
</span><span class="cx">
</span><span class="cx"> for part in msg.walk():
</span><span class="lines">@@ -319,8 +327,9 @@
</span><span class="cx"> break
</span><span class="cx"> else:
</span><span class="cx"> # No icalendar attachment
</span><del>- log.warn("Mail gateway didn't find an icalendar attachment "
- "in message %s" % (msg['Message-ID'],))
</del><ins>+ log.warn(
+ "Mail gateway didn't find an icalendar attachment "
+ "in message %s" % (msg['Message-ID'],))
</ins><span class="cx">
</span><span class="cx"> toAddr = None
</span><span class="cx"> fromAddr = attendee[7:]
</span><span class="lines">@@ -336,12 +345,14 @@
</span><span class="cx"> pass
</span><span class="cx">
</span><span class="cx"> if toAddr is None:
</span><del>- log.error("Don't have an email address for the organizer; "
- "ignoring reply.")
</del><ins>+ log.error(
+ "Don't have an email address for the organizer; "
+ "ignoring reply.")
</ins><span class="cx"> returnValue(self.NO_ORGANIZER_ADDRESS)
</span><span class="cx">
</span><span class="cx"> settings = config.Scheduling["iMIP"]["Sending"]
</span><del>- smtpSender = SMTPSender(settings.Username, settings.Password,
</del><ins>+ smtpSender = SMTPSender(
+ settings.Username, settings.Password,
</ins><span class="cx"> settings.UseSSL, settings.Server, settings.Port)
</span><span class="cx">
</span><span class="cx"> del msg["From"]
</span><span class="lines">@@ -364,8 +375,9 @@
</span><span class="cx"> organizerProperty = calendar.getOrganizerProperty()
</span><span class="cx"> if organizerProperty is None:
</span><span class="cx"> # ORGANIZER is required per rfc2446 section 3.2.3
</span><del>- log.warn("Mail gateway didn't find an ORGANIZER in REPLY %s"
- % (msg['Message-ID'],))
</del><ins>+ log.warn(
+ "Mail gateway didn't find an ORGANIZER in REPLY %s"
+ % (msg['Message-ID'],))
</ins><span class="cx"> event.addProperty(Property("ORGANIZER", organizer))
</span><span class="cx"> else:
</span><span class="cx"> organizerProperty.setValue(organizer)
</span><span class="lines">@@ -374,7 +386,8 @@
</span><span class="cx"> # The attendee we're expecting isn't there, so add it back
</span><span class="cx"> # with a SCHEDULE-STATUS of SERVICE_UNAVAILABLE.
</span><span class="cx"> # The organizer will then see that the reply was not successful.
</span><del>- attendeeProp = Property("ATTENDEE", attendee,
</del><ins>+ attendeeProp = Property(
+ "ATTENDEE", attendee,
</ins><span class="cx"> params={
</span><span class="cx"> "SCHEDULE-STATUS": iTIPRequestStatus.SERVICE_UNAVAILABLE,
</span><span class="cx"> }
</span><span class="lines">@@ -387,7 +400,8 @@
</span><span class="cx"> # email template for the message.
</span><span class="cx">
</span><span class="cx"> txn = self.store.newTransaction(label="MailReceiver.processReply")
</span><del>- yield txn.enqueue(IMIPReplyWork, organizer=organizer, attendee=attendee,
</del><ins>+ yield txn.enqueue(
+ IMIPReplyWork, organizer=organizer, attendee=attendee,
</ins><span class="cx"> icalendarText=str(calendar))
</span><span class="cx"> yield txn.commit()
</span><span class="cx"> returnValue(self.INJECTION_SUBMITTED)
</span><span class="lines">@@ -422,11 +436,13 @@
</span><span class="cx"> return self.processDSN(calBody, msg['Message-ID'])
</span><span class="cx"> else:
</span><span class="cx"> # It's a DSN without enough to go on
</span><del>- log.error("Mail gateway can't process DSN %s"
- % (msg['Message-ID'],))
</del><ins>+ log.error(
+ "Mail gateway can't process DSN %s"
+ % (msg['Message-ID'],))
</ins><span class="cx"> return succeed(self.INCOMPLETE_DSN)
</span><span class="cx">
</span><del>- log.info("Mail gateway received message %s from %s to %s" %
</del><ins>+ log.info(
+ "Mail gateway received message %s from %s to %s" %
</ins><span class="cx"> (msg['Message-ID'], msg['From'], msg['To']))
</span><span class="cx">
</span><span class="cx"> return self.processReply(msg)
</span><span class="lines">@@ -465,14 +481,16 @@
</span><span class="cx"> def serverGreeting(self, greeting):
</span><span class="cx"> self.log.debug("POP servergreeting")
</span><span class="cx"> pop3client.POP3Client.serverGreeting(self, greeting)
</span><del>- login = self.login(self.factory.settings["Username"],
</del><ins>+ login = self.login(
+ self.factory.settings["Username"],
</ins><span class="cx"> self.factory.settings["Password"])
</span><span class="cx"> login.addCallback(self.cbLoggedIn)
</span><span class="cx"> login.addErrback(self.cbLoginFailed)
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> def cbLoginFailed(self, reason):
</span><del>- self.log.error("POP3 login failed for %s" %
</del><ins>+ self.log.error(
+ "POP3 login failed for %s" %
</ins><span class="cx"> (self.factory.settings["Username"],))
</span><span class="cx"> return self.quit()
</span><span class="cx">
</span><span class="lines">@@ -551,9 +569,11 @@
</span><span class="cx">
</span><span class="cx"> def serverGreeting(self, capabilities):
</span><span class="cx"> self.log.debug("IMAP servergreeting")
</span><del>- return self.authenticate(self.factory.settings["Password"]
- ).addCallback(self.cbLoggedIn
- ).addErrback(self.ebAuthenticateFailed)
</del><ins>+ return self.authenticate(
+ self.factory.settings["Password"]
+ ).addCallback(
+ self.cbLoggedIn
+ ).addErrback(self.ebAuthenticateFailed)
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> def ebLogError(self, error):
</span><span class="lines">@@ -561,12 +581,15 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> def ebAuthenticateFailed(self, reason):
</span><del>- self.log.debug("IMAP authenticate failed for {name}, trying login",
</del><ins>+ self.log.debug(
+ "IMAP authenticate failed for {name}, trying login",
</ins><span class="cx"> name=self.factory.settings["Username"])
</span><del>- return self.login(self.factory.settings["Username"],
</del><ins>+ return self.login(
+ self.factory.settings["Username"],
</ins><span class="cx"> self.factory.settings["Password"]
</span><del>- ).addCallback(self.cbLoggedIn
- ).addErrback(self.ebLoginFailed)
</del><ins>+ ).addCallback(
+ self.cbLoggedIn
+ ).addErrback(self.ebLoginFailed)
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> def ebLoginFailed(self, reason):
</span><span class="lines">@@ -610,9 +633,9 @@
</span><span class="cx"> if self.messageUIDs:
</span><span class="cx"> nextUID = self.messageUIDs.pop(0)
</span><span class="cx"> messageListToFetch = imap4.MessageSet(nextUID)
</span><del>- self.log.debug("Downloading message %d of %d (%s)" %
- (self.messageCount - len(self.messageUIDs), self.messageCount,
- nextUID))
</del><ins>+ self.log.debug(
+ "Downloading message %d of %d (%s)" %
+ (self.messageCount - len(self.messageUIDs), self.messageCount, nextUID))
</ins><span class="cx"> self.fetchMessage(messageListToFetch, True).addCallback(
</span><span class="cx"> self.cbGotMessage, messageListToFetch).addErrback(
</span><span class="cx"> self.ebLogError)
</span><span class="lines">@@ -647,8 +670,9 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> def cbFlagDeleted(self, messageList):
</span><del>- self.addFlags(messageList, ("\\Deleted",),
- uid=True).addCallback(self.cbMessageDeleted, messageList)
</del><ins>+ self.addFlags(
+ messageList, ("\\Deleted",), uid=True
+ ).addCallback(self.cbMessageDeleted, messageList)
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> def cbMessageDeleted(self, results, messageList):
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingimipoutboundpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/outbound.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/outbound.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/outbound.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -77,9 +77,11 @@
</span><span class="cx"> if cls.mailSender is None:
</span><span class="cx"> if config.Scheduling.iMIP.Enabled:
</span><span class="cx"> settings = config.Scheduling.iMIP.Sending
</span><del>- smtpSender = SMTPSender(settings.Username, settings.Password,
</del><ins>+ smtpSender = SMTPSender(
+ settings.Username, settings.Password,
</ins><span class="cx"> settings.UseSSL, settings.Server, settings.Port)
</span><del>- cls.mailSender = MailSender(settings.Address,
</del><ins>+ cls.mailSender = MailSender(
+ settings.Address,
</ins><span class="cx"> settings.SuppressionDays, smtpSender, getLanguage(config))
</span><span class="cx"> return cls.mailSender
</span><span class="cx">
</span><span class="lines">@@ -92,7 +94,8 @@
</span><span class="cx"> mailSender = self.getMailSender()
</span><span class="cx"> if mailSender is not None:
</span><span class="cx"> calendar = Component.fromString(self.icalendarText)
</span><del>- yield mailSender.outbound(self.transaction,
</del><ins>+ yield mailSender.outbound(
+ self.transaction,
</ins><span class="cx"> self.fromAddr, self.toAddr, calendar)
</span><span class="cx">
</span><span class="cx"> #
</span><span class="lines">@@ -469,13 +472,14 @@
</span><span class="cx"> if emailAddress:
</span><span class="cx"> attendeeProp.setValue("mailto:%s" % (emailAddress,))
</span><span class="cx">
</span><del>- msgId, message = self.generateEmail(inviteState, calendar, orgEmail,
</del><ins>+ msgId, message = self.generateEmail(
+ inviteState, calendar, orgEmail,
</ins><span class="cx"> orgCN, attendees, formattedFrom, addressWithToken, recipient,
</span><span class="cx"> language=self.language)
</span><span class="cx">
</span><span class="cx"> try:
</span><del>- success = (yield self.smtpSender.sendMessage(fromAddr, toAddr,
- msgId, message))
</del><ins>+ success = (yield self.smtpSender.sendMessage(
+ fromAddr, toAddr, msgId, message))
</ins><span class="cx"> returnValue(success)
</span><span class="cx"> except Exception, e:
</span><span class="cx"> self.log.error("Failed to send IMIP message (%s)" % (str(e),))
</span><span class="lines">@@ -543,8 +547,9 @@
</span><span class="cx"> plainText = self.renderPlainText(details, (orgCN, orgEmail),
</span><span class="cx"> attendees, canceled)
</span><span class="cx">
</span><del>- htmlText = self.renderHTML(details, (orgCN, orgEmail),
- attendees, canceled)
</del><ins>+ htmlText = self.renderHTML(
+ details, (orgCN, orgEmail), attendees, canceled
+ )
</ins><span class="cx">
</span><span class="cx"> msg = MIMEMultipart()
</span><span class="cx"> msg["From"] = fromAddress
</span><span class="lines">@@ -581,7 +586,8 @@
</span><span class="cx"> method = calendar.propertyValue("METHOD").lower()
</span><span class="cx"> msgIcal.set_param("method", method)
</span><span class="cx"> msgIcal.add_header("Content-ID", "<invitation.ics>")
</span><del>- msgIcal.add_header("Content-Disposition",
</del><ins>+ msgIcal.add_header(
+ "Content-Disposition",
</ins><span class="cx"> "inline;filename=invitation.ics")
</span><span class="cx"> msg.attach(msgIcal)
</span><span class="cx">
</span><span class="lines">@@ -600,15 +606,17 @@
</span><span class="cx"> plainAttendeeList = []
</span><span class="cx"> for cn, mailto in attendees:
</span><span class="cx"> if cn:
</span><del>- plainAttendeeList.append(cn if not mailto else
- "%s <%s>" % (cn, mailto))
</del><ins>+ plainAttendeeList.append(
+ cn if not mailto else "%s <%s>" % (cn, mailto)
+ )
</ins><span class="cx"> elif mailto:
</span><span class="cx"> plainAttendeeList.append("<%s>" % (mailto,))
</span><span class="cx">
</span><span class="cx"> details['plainAttendees'] = ", ".join(plainAttendeeList)
</span><span class="cx">
</span><del>- details['plainOrganizer'] = (orgCN if not orgEmail else
- "%s <%s>" % (orgCN, orgEmail))
</del><ins>+ details['plainOrganizer'] = (
+ orgCN if not orgEmail else "%s <%s>" % (orgCN, orgEmail)
+ )
</ins><span class="cx">
</span><span class="cx"> # plain text version
</span><span class="cx"> if canceled:
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingimiptesttest_inboundpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_inbound.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_inbound.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_inbound.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -44,7 +44,8 @@
</span><span class="cx">
</span><span class="cx"> yield self.buildStoreAndDirectory()
</span><span class="cx"> self.receiver = MailReceiver(self.store, self.directory)
</span><del>- self.retriever = MailRetriever(self.store, self.directory,
</del><ins>+ self.retriever = MailRetriever(
+ self.store, self.directory,
</ins><span class="cx"> ConfigDict({
</span><span class="cx"> "Type" : "pop",
</span><span class="cx"> "UseSSL" : False,
</span><span class="lines">@@ -296,12 +297,11 @@
</span><span class="cx">
</span><span class="cx"> txn = self.store.newTransaction()
</span><span class="cx"> result = (yield injectMessage(
</span><del>- txn,
- "urn:x-uid:user01",
- "mailto:xyzzy@example.com",
- calendar
- )
- )
</del><ins>+ txn,
+ "urn:x-uid:user01",
+ "mailto:xyzzy@example.com",
+ calendar
+ ))
</ins><span class="cx"> yield txn.commit()
</span><span class="cx"> self.assertEquals(
</span><span class="cx"> "1.2;Scheduling message has been delivered",
</span><span class="lines">@@ -329,12 +329,11 @@
</span><span class="cx">
</span><span class="cx"> txn = self.store.newTransaction()
</span><span class="cx"> result = (yield injectMessage(
</span><del>- txn,
- "urn:x-uid:unknown_user",
- "mailto:xyzzy@example.com",
- calendar
- )
- )
</del><ins>+ txn,
+ "urn:x-uid:unknown_user",
+ "mailto:xyzzy@example.com",
+ calendar
+ ))
</ins><span class="cx"> yield txn.commit()
</span><span class="cx"> self.assertEquals(
</span><span class="cx"> "3.7;Invalid Calendar User",
</span><span class="lines">@@ -360,7 +359,8 @@
</span><span class="cx"> END:VCALENDAR
</span><span class="cx"> """
</span><span class="cx"> txn = self.store.newTransaction()
</span><del>- yield txn.enqueue(IMIPReplyWork,
</del><ins>+ yield txn.enqueue(
+ IMIPReplyWork,
</ins><span class="cx"> organizer="urn:x-uid:user01",
</span><span class="cx"> attendee="mailto:xyzzy@example.com",
</span><span class="cx"> icalendarText=calendar
</span><span class="lines">@@ -373,18 +373,33 @@
</span><span class="cx">
</span><span class="cx"> # Delete if the mail server is on the same host and using our
</span><span class="cx"> # dedicated account:
</span><del>- self.assertTrue(shouldDeleteAllMail("calendar.example.com",
- "calendar.example.com", "com.apple.calendarserver"))
- self.assertTrue(shouldDeleteAllMail("calendar.example.com",
- "localhost", "com.apple.calendarserver"))
</del><ins>+ self.assertTrue(shouldDeleteAllMail(
+ "calendar.example.com",
+ "calendar.example.com",
+ "com.apple.calendarserver"
+ ))
+ self.assertTrue(shouldDeleteAllMail(
+ "calendar.example.com",
+ "localhost",
+ "com.apple.calendarserver"
+ ))
</ins><span class="cx">
</span><span class="cx"> # Don't delete all otherwise:
</span><del>- self.assertFalse(shouldDeleteAllMail("calendar.example.com",
- "calendar.example.com", "not_ours"))
- self.assertFalse(shouldDeleteAllMail("calendar.example.com",
- "localhost", "not_ours"))
- self.assertFalse(shouldDeleteAllMail("calendar.example.com",
- "mail.example.com", "com.apple.calendarserver"))
</del><ins>+ self.assertFalse(shouldDeleteAllMail(
+ "calendar.example.com",
+ "calendar.example.com",
+ "not_ours"
+ ))
+ self.assertFalse(shouldDeleteAllMail(
+ "calendar.example.com",
+ "localhost",
+ "not_ours"
+ ))
+ self.assertFalse(shouldDeleteAllMail(
+ "calendar.example.com",
+ "mail.example.com",
+ "com.apple.calendarserver"
+ ))
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> @inlineCallbacks
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingimiptesttest_mailgatewaypy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_mailgateway.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_mailgateway.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_mailgateway.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -39,7 +39,8 @@
</span><span class="cx"> self.path = self.mktemp()
</span><span class="cx"> os.mkdir(self.path)
</span><span class="cx"> oldDB = MailGatewayTokensDatabase(self.path)
</span><del>- oldDB.createToken("urn:uuid:user01", "mailto:attendee@example.com",
</del><ins>+ oldDB.createToken(
+ "urn:uuid:user01", "mailto:attendee@example.com",
</ins><span class="cx"> "icaluid1", token="token1")
</span><span class="cx"> yield migrateTokensToStore(self.path, self.store)
</span><span class="cx"> txn = self.store.newTransaction()
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingimiptesttest_outboundpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_outbound.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_outbound.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_outbound.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -286,7 +286,8 @@
</span><span class="cx"> def setUp(self):
</span><span class="cx"> self.store = yield buildStore(self, None)
</span><span class="cx"> self.directory = self.store.directoryService()
</span><del>- self.sender = MailSender("server@example.com", 7, DummySMTPSender(),
</del><ins>+ self.sender = MailSender(
+ "server@example.com", 7, DummySMTPSender(),
</ins><span class="cx"> language="en")
</span><span class="cx">
</span><span class="cx"> def _getSender(ignored):
</span><span class="lines">@@ -304,7 +305,8 @@
</span><span class="cx"> @inlineCallbacks
</span><span class="cx"> def test_work(self):
</span><span class="cx"> txn = self.store.newTransaction()
</span><del>- wp = (yield txn.enqueue(IMIPInvitationWork,
</del><ins>+ wp = (yield txn.enqueue(
+ IMIPInvitationWork,
</ins><span class="cx"> fromAddr=ORGANIZER,
</span><span class="cx"> toAddr=ATTENDEE,
</span><span class="cx"> icalendarText=initialInviteText.replace("\n", "\r\n"),
</span><span class="lines">@@ -332,7 +334,8 @@
</span><span class="cx"> self.sender.smtpSender.shouldSucceed = False
</span><span class="cx">
</span><span class="cx"> txn = self.store.newTransaction()
</span><del>- wp = (yield txn.enqueue(IMIPInvitationWork,
</del><ins>+ wp = (yield txn.enqueue(
+ IMIPInvitationWork,
</ins><span class="cx"> fromAddr=ORGANIZER,
</span><span class="cx"> toAddr=ATTENDEE,
</span><span class="cx"> icalendarText=initialInviteText.replace("\n", "\r\n"),
</span><span class="lines">@@ -343,8 +346,10 @@
</span><span class="cx"> self.assertEquals(wp, self.wp)
</span><span class="cx">
</span><span class="cx">
</span><del>- def _interceptEmail(self, inviteState, calendar, orgEmail, orgCn,
- attendees, fromAddress, replyToAddress, toAddress, language="en"):
</del><ins>+ def _interceptEmail(
+ self, inviteState, calendar, orgEmail, orgCn,
+ attendees, fromAddress, replyToAddress, toAddress, language="en"
+ ):
</ins><span class="cx"> self.inviteState = inviteState
</span><span class="cx"> self.calendar = calendar
</span><span class="cx"> self.orgEmail = orgEmail
</span><span class="lines">@@ -354,7 +359,8 @@
</span><span class="cx"> self.replyToAddress = replyToAddress
</span><span class="cx"> self.toAddress = toAddress
</span><span class="cx"> self.language = language
</span><del>- self.results = self._actualGenerateEmail(inviteState, calendar,
</del><ins>+ self.results = self._actualGenerateEmail(
+ inviteState, calendar,
</ins><span class="cx"> orgEmail, orgCn, attendees, fromAddress, replyToAddress, toAddress,
</span><span class="cx"> language=language)
</span><span class="cx"> return self.results
</span><span class="lines">@@ -458,9 +464,11 @@
</span><span class="cx"> ),
</span><span class="cx">
</span><span class="cx"> )
</span><del>- for (inputCalendar, UID, inputOriginator, inputRecipient, inviteState,
</del><ins>+ for (
+ inputCalendar, UID, inputOriginator, inputRecipient, inviteState,
</ins><span class="cx"> outputOrganizerEmail, outputOrganizerName, outputAttendeeList,
</span><del>- outputFrom, encodedFrom, outputRecipient) in data:
</del><ins>+ outputFrom, encodedFrom, outputRecipient
+ ) in data:
</ins><span class="cx">
</span><span class="cx"> txn = self.store.newTransaction()
</span><span class="cx"> yield self.sender.outbound(
</span><span class="lines">@@ -484,11 +492,11 @@
</span><span class="cx"> if UID: # The organizer is local, and server is sending to remote
</span><span class="cx"> # attendee
</span><span class="cx"> txn = self.store.newTransaction()
</span><del>- token = (yield txn.imipGetToken(inputOriginator, inputRecipient,
- UID))
</del><ins>+ token = (yield txn.imipGetToken(inputOriginator, inputRecipient, UID))
</ins><span class="cx"> yield txn.commit()
</span><span class="cx"> self.assertNotEquals(token, None)
</span><del>- self.assertEquals(msg["Reply-To"],
</del><ins>+ self.assertEquals(
+ msg["Reply-To"],
</ins><span class="cx"> "server+%s@example.com" % (token,))
</span><span class="cx">
</span><span class="cx"> # Make sure attendee property for organizer exists and matches
</span><span class="lines">@@ -535,7 +543,8 @@
</span><span class="cx"> self.assertEquals(token1, token2)
</span><span class="cx">
</span><span class="cx"> txn = self.store.newTransaction()
</span><del>- self.assertEquals((yield txn.imipLookupByToken(token1)),
</del><ins>+ self.assertEquals(
+ (yield txn.imipLookupByToken(token1)),
</ins><span class="cx"> [["organizer", "attendee", "icaluid"]])
</span><span class="cx"> yield txn.commit()
</span><span class="cx">
</span><span class="lines">@@ -559,11 +568,11 @@
</span><span class="cx"> # Explictly store a token with mailto: CUA for organizer
</span><span class="cx"> # (something that doesn't happen any more, but did in the past)
</span><span class="cx"> txn = self.store.newTransaction()
</span><del>- origToken = (yield txn.imipCreateToken(organizerEmail,
</del><ins>+ origToken = (yield txn.imipCreateToken(
+ organizerEmail,
</ins><span class="cx"> "mailto:attendee@example.com",
</span><span class="cx"> "CFDD5E46-4F74-478A-9311-B3FF905449C3"
</span><del>- )
- )
</del><ins>+ ))
</ins><span class="cx"> yield txn.commit()
</span><span class="cx">
</span><span class="cx"> inputCalendar = initialInviteText
</span><span class="lines">@@ -572,7 +581,8 @@
</span><span class="cx"> inputRecipient = "mailto:attendee@example.com"
</span><span class="cx">
</span><span class="cx"> txn = self.store.newTransaction()
</span><del>- yield self.sender.outbound(txn, inputOriginator, inputRecipient,
</del><ins>+ yield self.sender.outbound(
+ txn, inputOriginator, inputRecipient,
</ins><span class="cx"> Component.fromString(inputCalendar.replace("\n", "\r\n")),
</span><span class="cx"> onlyAfter=DateTime(2010, 1, 1, 0, 0, 0))
</span><span class="cx">
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingischeduleresourcepy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/resource.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/resource.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/resource.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> from txdav.caldav.datastore.scheduling.ischedule.scheduler import IScheduleScheduler
</span><span class="cx"> from txdav.caldav.datastore.scheduling.ischedule.xml import ischedule_namespace
</span><span class="cx"> from txdav.xml import element as davxml
</span><del>-import txdav.caldav.datastore.scheduling.ischedule.xml as ischedulexml
</del><ins>+import txdav.caldav.datastore.scheduling.ischedule.xml as ischedulexml
</ins><span class="cx">
</span><span class="cx"> __all__ = [
</span><span class="cx"> "IScheduleInboxResource",
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingischeduletesttest_dkimpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_dkim.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_dkim.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_dkim.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -328,7 +328,8 @@
</span><span class="cx">
</span><span class="cx"> data = (
</span><span class="cx"> # Count on Recipient
</span><del>- ("""Host:example.com
</del><ins>+ (
+ """Host:example.com
</ins><span class="cx"> Content-Type: text/calendar ; charset = "utf-8"
</span><span class="cx"> Originator: mailto:user01@example.com
</span><span class="cx"> Recipient: mailto:user02@example.com ,\t mailto:user03@example.com\t\t
</span><span class="lines">@@ -337,14 +338,15 @@
</span><span class="cx"> Cache-Control:no-cache
</span><span class="cx"> Connection:close
</span><span class="cx"> """,
</span><del>- """content-type:text/calendar ; charset = "utf-8"
</del><ins>+ """content-type:text/calendar ; charset = "utf-8"
</ins><span class="cx"> originator:mailto:user01@example.com
</span><span class="cx"> recipient:mailto:user02@example.com,mailto:user03@example.com
</span><span class="cx"> ischedule-version:1.0
</span><span class="cx"> dkim-signature:v=1; d=example.com; s = dkim; t = 1234; a=rsa-sha1; q=dns/txt:http/well-known ; c=ischedule-relaxed/simple; h=Content-Type:Originator:Recipient:iSchedule-Version:iSchedule-Message-ID; bh=abc; b="""
</span><span class="cx"> ),
</span><span class="cx"> # Exact count on Recipient
</span><del>- ("""Host:example.com
</del><ins>+ (
+ """Host:example.com
</ins><span class="cx"> Content-Type: text/calendar ; charset = "utf-8"
</span><span class="cx"> Originator: mailto:user01@example.com
</span><span class="cx"> Recipient: mailto:user02@example.com ,\t mailto:user03@example.com\t\t
</span><span class="lines">@@ -354,14 +356,15 @@
</span><span class="cx"> Cache-Control:no-cache
</span><span class="cx"> Connection:close
</span><span class="cx"> """,
</span><del>- """content-type:text/calendar ; charset = "utf-8"
</del><ins>+ """content-type:text/calendar ; charset = "utf-8"
</ins><span class="cx"> originator:mailto:user01@example.com
</span><span class="cx"> recipient:mailto:user02@example.com,mailto:user03@example.com,mailto:user04@example.com
</span><span class="cx"> ischedule-version:1.0
</span><span class="cx"> dkim-signature:v=1; d=example.com; s = dkim; t = 1234; a=rsa-sha1; q=dns/txt:http/well-known ; c=ischedule-relaxed/simple; h=Content-Type:Originator:Recipient:iSchedule-Version:iSchedule-Message-ID; bh=abc; b="""
</span><span class="cx"> ),
</span><span class="cx"> # Re-ordered Content-Type
</span><del>- ("""Host:example.com
</del><ins>+ (
+ """Host:example.com
</ins><span class="cx"> iSchedule-Version: 1.0
</span><span class="cx"> Originator: mailto:user01@example.com
</span><span class="cx"> Recipient: mailto:user02@example.com ,\t mailto:user03@example.com\t\t
</span><span class="lines">@@ -370,7 +373,7 @@
</span><span class="cx"> Cache-Control:no-cache
</span><span class="cx"> Connection:close
</span><span class="cx"> """,
</span><del>- """content-type:text/calendar ; charset = "utf-8"
</del><ins>+ """content-type:text/calendar ; charset = "utf-8"
</ins><span class="cx"> originator:mailto:user01@example.com
</span><span class="cx"> recipient:mailto:user02@example.com,mailto:user03@example.com
</span><span class="cx"> ischedule-version:1.0
</span><span class="lines">@@ -393,7 +396,8 @@
</span><span class="cx">
</span><span class="cx"> data = (
</span><span class="cx"> # Valid
</span><del>- ("""Host:example.com
</del><ins>+ (
+ """Host:example.com
</ins><span class="cx"> Content-Type: text/calendar ; charset = "utf-8"
</span><span class="cx"> Originator: mailto:user01@example.com
</span><span class="cx"> Recipient: mailto:user02@example.com ,\t mailto:user03@example.com\t\t
</span><span class="lines">@@ -401,11 +405,12 @@
</span><span class="cx"> Cache-Control:no-cache
</span><span class="cx"> Connection:close
</span><span class="cx"> """,
</span><del>- [DKIMUtils.extractTags("v=DKIM1; p=%s" % (self.public_key_data,))],
- True,
</del><ins>+ [DKIMUtils.extractTags("v=DKIM1; p=%s" % (self.public_key_data,))],
+ True,
</ins><span class="cx"> ),
</span><span class="cx"> # Invalid - no method
</span><del>- ("""Host:example.com
</del><ins>+ (
+ """Host:example.com
</ins><span class="cx"> Content-Type: text/calendar ; charset = "utf-8"
</span><span class="cx"> Originator: mailto:user01@example.com
</span><span class="cx"> Recipient: mailto:user02@example.com ,\t mailto:user03@example.com\t\t
</span><span class="lines">@@ -413,11 +418,12 @@
</span><span class="cx"> Cache-Control:no-cache
</span><span class="cx"> Connection:close
</span><span class="cx"> """,
</span><del>- [DKIMUtils.extractTags("v=DKIM1; p=%s" % (self.public_key_data,))],
- False,
</del><ins>+ [DKIMUtils.extractTags("v=DKIM1; p=%s" % (self.public_key_data,))],
+ False,
</ins><span class="cx"> ),
</span><span class="cx"> # Invalid - wrong algorithm
</span><del>- ("""Host:example.com
</del><ins>+ (
+ """Host:example.com
</ins><span class="cx"> Content-Type: text/calendar ; charset = "utf-8"
</span><span class="cx"> Originator: mailto:user01@example.com
</span><span class="cx"> Recipient: mailto:user02@example.com ,\t mailto:user03@example.com\t\t
</span><span class="lines">@@ -425,8 +431,8 @@
</span><span class="cx"> Cache-Control:no-cache
</span><span class="cx"> Connection:close
</span><span class="cx"> """,
</span><del>- [DKIMUtils.extractTags("v=DKIM1; h=sha-1; p=%s" % (self.public_key_data,))],
- False,
</del><ins>+ [DKIMUtils.extractTags("v=DKIM1; h=sha-1; p=%s" % (self.public_key_data,))],
+ False,
</ins><span class="cx"> ),
</span><span class="cx"> )
</span><span class="cx">
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingischeduletesttest_remoteserverspy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_remoteservers.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_remoteservers.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_remoteservers.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -27,8 +27,7 @@
</span><span class="cx"> def test_readXML(self):
</span><span class="cx">
</span><span class="cx"> fp = FilePath(self.mktemp())
</span><del>- fp.open("w").write(
-"""<?xml version="1.0" encoding="utf-8"?>
</del><ins>+ fp.open("w").write("""<?xml version="1.0" encoding="utf-8"?>
</ins><span class="cx"> <!DOCTYPE servers SYSTEM "servertoserver.dtd">
</span><span class="cx"> <servers>
</span><span class="cx"> <server>
</span><span class="lines">@@ -43,8 +42,7 @@
</span><span class="cx"> </hosts>
</span><span class="cx"> </server>
</span><span class="cx"> </servers>
</span><del>-"""
-)
</del><ins>+""")
</ins><span class="cx">
</span><span class="cx"> parser = IScheduleServersParser(fp)
</span><span class="cx"> self.assertEqual(len(parser.servers), 1)
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingischeduletesttest_resourcepy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_resource.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_resource.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_resource.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -69,25 +69,25 @@
</span><span class="cx"> @classproperty(cache=False)
</span><span class="cx"> def requirements(cls): #@NoSelf
</span><span class="cx"> return {
</span><del>- "user01": {
- "calendar_1": {
</del><ins>+ "user01": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
</del><ins>+ "user02": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- },
- "user02": {
- "calendar_1": {
</del><ins>+ "user03": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
- },
- },
- "user03": {
- "calendar_1": {
- },
- "inbox": {
- },
- },
- }
</del><ins>+ }
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> @inlineCallbacks
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingischeduleutilspy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/utils.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/utils.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/utils.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -66,9 +66,10 @@
</span><span class="cx"> log.debug("DNS SRV: lookup failed: {exc}", exc=e)
</span><span class="cx"> returnValue(None)
</span><span class="cx">
</span><del>- if len(answers) == 1 and answers[0].type == dns.SRV \
- and answers[0].payload \
- and answers[0].payload.target == dns.Name('.'):
</del><ins>+ if (
+ len(answers) == 1 and answers[0].type == dns.SRV and answers[0].payload
+ and answers[0].payload.target == dns.Name('.')
+ ):
</ins><span class="cx"> # decidedly not available
</span><span class="cx"> log.debug("DNS SRV: disabled: {l}", l=lookup)
</span><span class="cx"> returnValue(None)
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingschedulerpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/scheduler.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/scheduler.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/scheduler.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -751,7 +751,8 @@
</span><span class="cx"> recipient = self.recipient_mapper(recipient)
</span><span class="cx">
</span><span class="cx"> if not suppressErrorLog and code > 400: # Error codes only
</span><del>- self.log.error("Error during {method} for {r}: {msg}",
</del><ins>+ self.log.error(
+ "Error during {method} for {r}: {msg}",
</ins><span class="cx"> method=self.method,
</span><span class="cx"> r=recipient,
</span><span class="cx"> msg=message,
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingtesttest_freebusypy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_freebusy.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_freebusy.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_freebusy.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -290,25 +290,25 @@
</span><span class="cx"> @classproperty(cache=False)
</span><span class="cx"> def requirements(cls): #@NoSelf
</span><span class="cx"> return {
</span><del>- "user01": {
- "calendar_1": {
</del><ins>+ "user01": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
</del><ins>+ "user02": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- },
- "user02": {
- "calendar_1": {
</del><ins>+ "user03": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
- },
- },
- "user03": {
- "calendar_1": {
- },
- "inbox": {
- },
- },
- }
</del><ins>+ }
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> def storeUnderTest(self):
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingtesttest_icalsplitterpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_icalsplitter.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_icalsplitter.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_icalsplitter.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -210,7 +210,7 @@
</span><span class="cx"> END:VEVENT
</span><span class="cx"> END:VCALENDAR
</span><span class="cx"> """,
</span><del>- False,
</del><ins>+ False,
</ins><span class="cx"> ),
</span><span class="cx"> (
</span><span class="cx"> "#2.4 Small, all cancelled, simple recurring component",
</span><span class="lines">@@ -230,7 +230,7 @@
</span><span class="cx"> END:VEVENT
</span><span class="cx"> END:VCALENDAR
</span><span class="cx"> """,
</span><del>- False,
</del><ins>+ False,
</ins><span class="cx"> ),
</span><span class="cx"> (
</span><span class="cx"> "#3.1 Small, old, recurring with future override",
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingtesttest_implicitpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_implicit.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_implicit.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_implicit.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -896,25 +896,25 @@
</span><span class="cx"> @classproperty(cache=False)
</span><span class="cx"> def requirements(cls): #@NoSelf
</span><span class="cx"> return {
</span><del>- "user01": {
- "calendar_1": {
</del><ins>+ "user01": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
</del><ins>+ "user02": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- },
- "user02": {
- "calendar_1": {
</del><ins>+ "user03": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
- },
- },
- "user03": {
- "calendar_1": {
- },
- "inbox": {
- },
- },
- }
</del><ins>+ }
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> @inlineCallbacks
</span><span class="lines">@@ -1656,28 +1656,28 @@
</span><span class="cx"> @classproperty(cache=False)
</span><span class="cx"> def requirements(cls): #@NoSelf
</span><span class="cx"> return {
</span><del>- "user01": {
- "calendar_1": {
- "organizer.ics": (cls.organizer_data, cls.metadata),
</del><ins>+ "user01": {
+ "calendar_1": {
+ "organizer.ics": (cls.organizer_data, cls.metadata),
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
</del><ins>+ "user02": {
+ "calendar_1": {
+ "attendee2.ics": (cls.attendee2_data, cls.metadata),
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- },
- "user02": {
- "calendar_1": {
- "attendee2.ics": (cls.attendee2_data, cls.metadata),
</del><ins>+ "user03": {
+ "calendar_1": {
+ "attendee3.ics": (cls.attendee3_data, cls.metadata),
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
- },
- },
- "user03": {
- "calendar_1": {
- "attendee3.ics": (cls.attendee3_data, cls.metadata),
- },
- "inbox": {
- },
- },
- }
</del><ins>+ }
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingtesttest_workpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_work.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_work.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/test/test_work.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -226,8 +226,7 @@
</span><span class="cx"> {attendees}
</span><span class="cx"> END:VEVENT
</span><span class="cx"> END:VCALENDAR
</span><del>-""".format(attendees="\n".join(["ATTENDEE:urn:x-uid:user%02d" % i for i in range(1, 100)]))
-)
</del><ins>+""".format(attendees="\n".join(["ATTENDEE:urn:x-uid:user%02d" % i for i in range(1, 100)])))
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> @inlineCallbacks
</span><span class="lines">@@ -260,7 +259,7 @@
</span><span class="cx"> home2 = yield self.calendarUnderTest(home="user02", name="calendar")
</span><span class="cx"> cobjs = yield home2.calendarObjects()
</span><span class="cx"> self.assertEqual(len(cobjs), 1)
</span><del>- #cal2 = yield cobjs[0].component()
</del><ins>+ # cal2 = yield cobjs[0].component()
</ins><span class="cx">
</span><span class="cx"> yield work.delete()
</span><span class="cx"> yield jobs[0].delete()
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreschedulingutilspy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/utils.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/utils.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/utils.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -62,9 +62,11 @@
</span><span class="cx"> lower = addr.lower()
</span><span class="cx"> if lower.startswith("mailto:"):
</span><span class="cx"> addr = lower
</span><del>- if (addr.startswith("/") or
</del><ins>+ if (
+ addr.startswith("/") or
</ins><span class="cx"> addr.startswith("http:") or
</span><del>- addr.startswith("https:")):
</del><ins>+ addr.startswith("https:")
+ ):
</ins><span class="cx"> return addr.rstrip("/")
</span><span class="cx"> else:
</span><span class="cx"> return addr
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoretestcommonpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/test/common.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/test/common.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/common.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -241,49 +241,50 @@
</span><span class="cx"> metadata3 = cls.metadata3.copy()
</span><span class="cx"> metadata4 = cls.metadata4.copy()
</span><span class="cx"> return {
</span><del>- "home1": {
- "calendar_1": {
- "1.ics": (cal1Root.child("1.ics").getContent(), metadata1),
- "2.ics": (cal1Root.child("2.ics").getContent(), metadata2),
- "3.ics": (cal1Root.child("3.ics").getContent(), metadata3),
- "4.ics": (cal1Root.child("4.ics").getContent(), metadata4),
</del><ins>+ "home1": {
+ "calendar_1": {
+ "1.ics": (cal1Root.child("1.ics").getContent(), metadata1),
+ "2.ics": (cal1Root.child("2.ics").getContent(), metadata2),
+ "3.ics": (cal1Root.child("3.ics").getContent(), metadata3),
+ "4.ics": (cal1Root.child("4.ics").getContent(), metadata4),
+ },
+ "calendar_2": {},
+ "calendar_empty": {},
+ "not_a_calendar": None
</ins><span class="cx"> },
</span><del>- "calendar_2": {},
- "calendar_empty": {},
- "not_a_calendar": None
- },
- "home_splits": {
- "calendar_1": {
- "1.ics": (cal1SplitsRoot.child("1.ics").getContent(), metadata1),
- "2.ics": (cal1SplitsRoot.child("2.ics").getContent(), metadata2),
- "3.ics": (cal1SplitsRoot.child("3.ics").getContent(), metadata3),
</del><ins>+ "home_splits": {
+ "calendar_1": {
+ "1.ics": (cal1SplitsRoot.child("1.ics").getContent(), metadata1),
+ "2.ics": (cal1SplitsRoot.child("2.ics").getContent(), metadata2),
+ "3.ics": (cal1SplitsRoot.child("3.ics").getContent(), metadata3),
+ },
+ "calendar_2": {
+ "1.ics": (cal2SplitsRoot.child("1.ics").getContent(), metadata1),
+ "2.ics": (cal2SplitsRoot.child("2.ics").getContent(), metadata2),
+ "3.ics": (cal2SplitsRoot.child("3.ics").getContent(), metadata3),
+ "4.ics": (cal2SplitsRoot.child("4.ics").getContent(), metadata4),
+ "5.ics": (cal2SplitsRoot.child("5.ics").getContent(), metadata4),
+ },
</ins><span class="cx"> },
</span><del>- "calendar_2": {
- "1.ics": (cal2SplitsRoot.child("1.ics").getContent(), metadata1),
- "2.ics": (cal2SplitsRoot.child("2.ics").getContent(), metadata2),
- "3.ics": (cal2SplitsRoot.child("3.ics").getContent(), metadata3),
- "4.ics": (cal2SplitsRoot.child("4.ics").getContent(), metadata4),
- "5.ics": (cal2SplitsRoot.child("5.ics").getContent(), metadata4),
</del><ins>+ "home_no_splits": {
+ "calendar_1": {
+ "1.ics": (cal1NoSplitsRoot.child("1.ics").getContent(), metadata1),
+ "2.ics": (cal1NoSplitsRoot.child("2.ics").getContent(), metadata2),
+ "3.ics": (cal1NoSplitsRoot.child("3.ics").getContent(), metadata3),
+ },
</ins><span class="cx"> },
</span><del>- },
- "home_no_splits": {
- "calendar_1": {
- "1.ics": (cal1NoSplitsRoot.child("1.ics").getContent(), metadata1),
- "2.ics": (cal1NoSplitsRoot.child("2.ics").getContent(), metadata2),
- "3.ics": (cal1NoSplitsRoot.child("3.ics").getContent(), metadata3),
</del><ins>+ "home_splits_shared": {
+ "calendar_1": {},
</ins><span class="cx"> },
</span><del>- },
- "home_splits_shared": {
- "calendar_1": {},
- },
- "home_defaults": {
- "calendar_1": {
- "1.ics": (cal1DefaultsRoot.child("1.ics").getContent(), metadata1),
- "3.ics": (cal1DefaultsRoot.child("3.ics").getContent(), metadata3),
</del><ins>+ "home_defaults": {
+ "calendar_1": {
+ "1.ics": (cal1DefaultsRoot.child("1.ics").getContent(), metadata1),
+ "3.ics": (cal1DefaultsRoot.child("3.ics").getContent(), metadata3),
+ },
+ "inbox" : {},
</ins><span class="cx"> },
</span><del>- "inbox" : {},
- },
- }
</del><ins>+ }
+
</ins><span class="cx"> md5s = {
</span><span class="cx"> "home1": {
</span><span class="cx"> "calendar_1": {
</span><span class="lines">@@ -1378,8 +1379,9 @@
</span><span class="cx"> text.
</span><span class="cx"> """
</span><span class="cx"> yield self.failUnlessFailure(
</span><del>- maybeDeferred((yield self.calendarUnderTest()).createCalendarObjectWithName,
- "new", VComponent.fromString(test_event_notCalDAV_text)),
</del><ins>+ maybeDeferred(
+ (yield self.calendarUnderTest()).createCalendarObjectWithName,
+ "new", VComponent.fromString(test_event_notCalDAV_text)),
</ins><span class="cx"> InvalidObjectResourceError,
</span><span class="cx"> InvalidComponentForStoreError,
</span><span class="cx"> )
</span><span class="lines">@@ -1590,9 +1592,8 @@
</span><span class="cx"> cal = yield self.calendarUnderTest()
</span><span class="cx"> st = yield home.syncToken()
</span><span class="cx"> yield cal.createCalendarObjectWithName("new.ics", VComponent.fromString(
</span><del>- test_event_text
- )
- )
</del><ins>+ test_event_text
+ ))
</ins><span class="cx">
</span><span class="cx"> obj1 = yield cal.calendarObjectWithName("2.ics")
</span><span class="cx"> yield obj1.remove()
</span><span class="lines">@@ -1629,9 +1630,8 @@
</span><span class="cx"> st = yield cal.syncToken()
</span><span class="cx"> rev = self.token2revision(st)
</span><span class="cx"> yield cal.createCalendarObjectWithName("new.ics", VComponent.fromString(
</span><del>- test_event_text
- )
- )
</del><ins>+ test_event_text
+ ))
</ins><span class="cx"> obj1 = yield cal.calendarObjectWithName("2.ics")
</span><span class="cx"> yield obj1.remove()
</span><span class="cx"> st2 = yield cal.syncToken()
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoretesttest_attachmentspy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/test/test_attachments.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/test/test_attachments.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/test_attachments.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -113,15 +113,15 @@
</span><span class="cx"> metadata3 = cls.metadata3.copy()
</span><span class="cx"> metadata4 = cls.metadata4.copy()
</span><span class="cx"> return {
</span><del>- "home1": {
- "calendar_1": {
- "1.ics": (cal1Root.child("1.ics").getContent(), metadata1),
- "2.ics": (cal1Root.child("2.ics").getContent(), metadata2),
- "3.ics": (cal1Root.child("3.ics").getContent(), metadata3),
- "4.ics": (cal1Root.child("4.ics").getContent(), metadata4),
</del><ins>+ "home1": {
+ "calendar_1": {
+ "1.ics": (cal1Root.child("1.ics").getContent(), metadata1),
+ "2.ics": (cal1Root.child("2.ics").getContent(), metadata2),
+ "3.ics": (cal1Root.child("3.ics").getContent(), metadata3),
+ "4.ics": (cal1Root.child("4.ics").getContent(), metadata4),
+ },
</ins><span class="cx"> },
</span><del>- },
- }
</del><ins>+ }
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> def storeUnderTest(self):
</span><span class="lines">@@ -291,9 +291,8 @@
</span><span class="cx"> """
</span><span class="cx"> cal = yield self.calendarUnderTest()
</span><span class="cx"> yield cal.createCalendarObjectWithName("drop.ics", Component.fromString(
</span><del>- self.eventWithDropbox
- )
- )
</del><ins>+ self.eventWithDropbox
+ ))
</ins><span class="cx"> obj = yield cal.calendarObjectWithName("drop.ics")
</span><span class="cx"> self.assertEquals((yield obj.dropboxID()), "some-dropbox-id")
</span><span class="cx">
</span><span class="lines">@@ -1706,7 +1705,7 @@
</span><span class="cx"> txn = self._sqlCalendarStore.newTransaction()
</span><span class="cx"> calstore = CalendarStoreFeatures(self._sqlCalendarStore)
</span><span class="cx">
</span><del>- for dropbox_id, result_count, result_names in (
</del><ins>+ for dropbox_id, result_count, result_names in (
</ins><span class="cx"> ("1.2", 1, ("1.2.ics",)),
</span><span class="cx"> ("1.3", 2, ("1.3.ics", "2-2.3.ics",)),
</span><span class="cx"> ("1.4", 4, ("1.4.ics", "1.5.ics", "2-3.2.ics", "2-3.3.ics",)),
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoretesttest_implicitpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/test/test_implicit.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/test/test_implicit.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/test_implicit.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -54,19 +54,19 @@
</span><span class="cx"> @classproperty(cache=False)
</span><span class="cx"> def requirements(cls): #@NoSelf
</span><span class="cx"> return {
</span><del>- "user01": {
- "calendar_1": {
</del><ins>+ "user01": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
</del><ins>+ "user02": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- },
- "user02": {
- "calendar_1": {
- },
- "inbox": {
- },
- },
- }
</del><ins>+ }
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> def storeUnderTest(self):
</span><span class="lines">@@ -183,7 +183,7 @@
</span><span class="cx"> END:VCALENDAR
</span><span class="cx"> """),
</span><span class="cx">
</span><del>- Component.fromString("""BEGIN:VCALENDAR
</del><ins>+ Component.fromString("""BEGIN:VCALENDAR
</ins><span class="cx"> VERSION:2.0
</span><span class="cx"> PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
</span><span class="cx"> METHOD:PUBLISH
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoretesttest_index_filepy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/test/test_index_file.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/test/test_index_file.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/test_index_file.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -469,17 +469,17 @@
</span><span class="cx">
</span><span class="cx"> # Create fake filter element to match time-range
</span><span class="cx"> filter = caldavxml.Filter(
</span><del>- caldavxml.ComponentFilter(
- caldavxml.ComponentFilter(
- TimeRange(
- start=trstart,
- end=trend,
- ),
- name=("VEVENT", "VFREEBUSY", "VAVAILABILITY"),
- ),
- name="VCALENDAR",
- )
- )
</del><ins>+ caldavxml.ComponentFilter(
+ caldavxml.ComponentFilter(
+ TimeRange(
+ start=trstart,
+ end=trend,
+ ),
+ name=("VEVENT", "VFREEBUSY", "VAVAILABILITY"),
+ ),
+ name="VCALENDAR",
+ )
+ )
</ins><span class="cx"> filter = Filter(filter)
</span><span class="cx">
</span><span class="cx"> resources = yield self.db.indexedSearch(filter)
</span><span class="lines">@@ -655,17 +655,17 @@
</span><span class="cx">
</span><span class="cx"> # Create fake filter element to match time-range
</span><span class="cx"> filter = caldavxml.Filter(
</span><del>- caldavxml.ComponentFilter(
- caldavxml.ComponentFilter(
- TimeRange(
- start=trstart,
- end=trend,
- ),
- name=("VEVENT", "VFREEBUSY", "VAVAILABILITY"),
- ),
- name="VCALENDAR",
- )
- )
</del><ins>+ caldavxml.ComponentFilter(
+ caldavxml.ComponentFilter(
+ TimeRange(
+ start=trstart,
+ end=trend,
+ ),
+ name=("VEVENT", "VFREEBUSY", "VAVAILABILITY"),
+ ),
+ name="VCALENDAR",
+ )
+ )
</ins><span class="cx"> filter = Filter(filter)
</span><span class="cx">
</span><span class="cx"> resources = yield self.db.indexedSearch(filter, fbtype=True)
</span><span class="lines">@@ -1062,17 +1062,17 @@
</span><span class="cx">
</span><span class="cx"> # Create fake filter element to match time-range
</span><span class="cx"> filter = caldavxml.Filter(
</span><del>- caldavxml.ComponentFilter(
- caldavxml.ComponentFilter(
- TimeRange(
- start=trstart,
- end=trend,
- ),
- name=("VEVENT", "VFREEBUSY", "VAVAILABILITY"),
- ),
- name="VCALENDAR",
- )
- )
</del><ins>+ caldavxml.ComponentFilter(
+ caldavxml.ComponentFilter(
+ TimeRange(
+ start=trstart,
+ end=trend,
+ ),
+ name=("VEVENT", "VFREEBUSY", "VAVAILABILITY"),
+ ),
+ name="VCALENDAR",
+ )
+ )
</ins><span class="cx"> filter = Filter(filter)
</span><span class="cx">
</span><span class="cx"> for useruid, instances in peruserinstances:
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoretesttest_queue_schedulingpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/test/test_queue_scheduling.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/test/test_queue_scheduling.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/test_queue_scheduling.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -45,25 +45,25 @@
</span><span class="cx"> @classproperty(cache=False)
</span><span class="cx"> def requirements(cls): #@NoSelf
</span><span class="cx"> return {
</span><del>- "user01": {
- "calendar": {
</del><ins>+ "user01": {
+ "calendar": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
</del><ins>+ "user02": {
+ "calendar": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- },
- "user02": {
- "calendar": {
</del><ins>+ "user03": {
+ "calendar": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
- },
- },
- "user03": {
- "calendar": {
- },
- "inbox": {
- },
- },
- }
</del><ins>+ }
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> @inlineCallbacks
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoretesttest_sql_externalpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/test/test_sql_external.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/test/test_sql_external.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/test_sql_external.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -59,26 +59,26 @@
</span><span class="cx"> @classproperty(cache=False)
</span><span class="cx"> def requirements(cls): #@NoSelf
</span><span class="cx"> return {
</span><del>- "user01": {
- "calendar": {
- "cal1.ics": (cls.cal1, None,),
</del><ins>+ "user01": {
+ "calendar": {
+ "cal1.ics": (cls.cal1, None,),
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
</del><ins>+ "user02": {
+ "calendar": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- },
- "user02": {
- "calendar": {
</del><ins>+ "user03": {
+ "calendar": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
- },
- },
- "user03": {
- "calendar": {
- },
- "inbox": {
- },
- },
- }
</del><ins>+ }
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoretesttest_sql_sharingpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/test/test_sql_sharing.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/test/test_sql_sharing.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/test_sql_sharing.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -71,26 +71,26 @@
</span><span class="cx"> @classproperty(cache=False)
</span><span class="cx"> def requirements(cls): #@NoSelf
</span><span class="cx"> return {
</span><del>- "user01": {
- "calendar": {
- "cal1.ics": (cls.cal1, None,),
</del><ins>+ "user01": {
+ "calendar": {
+ "cal1.ics": (cls.cal1, None,),
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
</del><ins>+ "user02": {
+ "calendar": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- },
- "user02": {
- "calendar": {
</del><ins>+ "user03": {
+ "calendar": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
- },
- },
- "user03": {
- "calendar": {
- },
- "inbox": {
- },
- },
- }
</del><ins>+ }
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> def storeUnderTest(self):
</span><span class="lines">@@ -602,7 +602,7 @@
</span><span class="cx"> )
</span><span class="cx"> yield self.buildStoreAndDirectory(
</span><span class="cx"> accounts=accountsFilePath.child("groupShareeAccounts.xml"),
</span><del>- #resources=accountsFilePath.child("resources.xml"),
</del><ins>+ # resources=accountsFilePath.child("resources.xml"),
</ins><span class="cx"> )
</span><span class="cx"> yield self.populate()
</span><span class="cx">
</span><span class="lines">@@ -1805,15 +1805,14 @@
</span><span class="cx"> self.assertEqual(len(invalid), 0)
</span><span class="cx">
</span><span class="cx"> for depth, result in (
</span><del>- ("1", [otherCal.name() + '/',
- 'calendar/',
- 'inbox/'],
- ),
- ("infinity", [otherCal.name() + '/',
- otherCal.name() + '/cal1.ics',
- 'calendar/',
- 'inbox/'],
- )):
</del><ins>+ ("1", [otherCal.name() + '/', 'calendar/', 'inbox/'],),
+ (
+ "infinity", [
+ otherCal.name() + '/', otherCal.name() + '/cal1.ics',
+ 'calendar/', 'inbox/'
+ ],
+ )
+ ):
</ins><span class="cx"> changed, deleted, invalid = yield otherHome.resourceNamesSinceRevision(0, depth)
</span><span class="cx"> self.assertEqual(set(changed), set(result))
</span><span class="cx"> self.assertEqual(len(deleted), 0)
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoretestutilpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/test/util.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/test/util.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/util.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -45,28 +45,28 @@
</span><span class="cx"> @classproperty(cache=False)
</span><span class="cx"> def requirements(cls): #@NoSelf
</span><span class="cx"> return {
</span><del>- "user01": {
- "calendar_1": {
</del><ins>+ "user01": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
</del><ins>+ "user02": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- },
- "user02": {
- "calendar_1": {
</del><ins>+ "user03": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- "inbox": {
</del><ins>+ "user04": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
</ins><span class="cx"> },
</span><del>- },
- "user03": {
- "calendar_1": {
- },
- "inbox": {
- },
- },
- "user04": {
- "calendar_1": {
- },
- "inbox": {
- },
- },
- }
</del><ins>+ }
</ins></span></pre></div>
<a id="CalendarServertrunktxdavcaldavdatastoreutilpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/datastore/util.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/datastore/util.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/datastore/util.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -141,8 +141,7 @@
</span><span class="cx"> """
</span><span class="cx">
</span><span class="cx"> # Try "X-APPLE-DROPBOX" first
</span><del>- dropboxProperty = (yield calendarObject.component(
- )).getFirstPropertyInAnyComponent("X-APPLE-DROPBOX")
</del><ins>+ dropboxProperty = (yield calendarObject.component()).getFirstPropertyInAnyComponent("X-APPLE-DROPBOX")
</ins><span class="cx"> if dropboxProperty is not None and dropboxProperty.value():
</span><span class="cx"> componentDropboxID = dropboxProperty.value().rstrip("/").split("/")[-1]
</span><span class="cx"> returnValue(componentDropboxID)
</span></span></pre></div>
<a id="CalendarServertrunktxdavcaldavicalendarstorepy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/caldav/icalendarstore.py (13798 => 13799)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/caldav/icalendarstore.py        2014-07-27 17:05:00 UTC (rev 13798)
+++ CalendarServer/trunk/txdav/caldav/icalendarstore.py        2014-07-28 15:18:44 UTC (rev 13799)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> "IAttachment",
</span><span class="cx">
</span><span class="cx"> # Exceptions
</span><del>- #"InvalidCalendarComponentError",
</del><ins>+ # "InvalidCalendarComponentError",
</ins><span class="cx"> "InvalidCalendarAccessError",
</span><span class="cx"> "TooManyAttendeesError",
</span><span class="cx"> "ResourceDeletedError",
</span></span></pre>
</div>
</div>
</body>
</html>