<!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(&quot;X-APPLE-DROPBOX&quot;) or
-                    component.hasPropertyInAnyComponent(&quot;ATTACH&quot;)):
</del><ins>+                if (
+                    component.hasPropertyInAnyComponent(&quot;X-APPLE-DROPBOX&quot;) or
+                    component.hasPropertyInAnyComponent(&quot;ATTACH&quot;)
+                ):
</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(&quot;Reserving UID %r @ %r&quot; % (
</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">                     &quot;UID %s already reserved for calendar collection %s.&quot;
</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(&quot;Unreserving UID %r @ %r&quot; % (
</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">                     &quot;UID %s is not reserved for calendar collection %s.&quot;
</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(&quot;Is reserved UID %r @ %r&quot; % (
</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">                     &quot;UID %s is not reserved for calendar collection %s.&quot;
</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(&quot;Non-calendar resource: %s&quot; % (name,))
</span><span class="cx">             else:
</span><del>-                #log.info(&quot;Indexing resource: %s&quot; % (name,))
</del><ins>+                # og.info(&quot;Indexing resource: %s&quot; % (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(&quot;Non-calendar resource: %s&quot; % (name,))
</span><span class="cx">             else:
</span><del>-                #log.info(&quot;Indexing resource: %s&quot; % (name,))
</del><ins>+                # log.info(&quot;Indexing resource: %s&quot; % (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 &quot;License&quot;);
</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>-                    **{&quot;name&quot;:(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</del><ins>+                    **{&quot;name&quot;: (&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</ins><span class="cx">                 )],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;}
</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(**{&quot;start&quot;:&quot;20060605T160000Z&quot;, &quot;end&quot;:&quot;20060605T170000Z&quot;})],
-                    **{&quot;name&quot;:(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</del><ins>+                    *[caldavxml.TimeRange(**{&quot;start&quot;: &quot;20060605T160000Z&quot;, &quot;end&quot;: &quot;20060605T170000Z&quot;})],
+                    **{&quot;name&quot;: (&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</ins><span class="cx">                 )],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;}
</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(**{&quot;start&quot;:&quot;20060605T160000Z&quot;, &quot;end&quot;:&quot;20060605T170000Z&quot;})],
-                    **{&quot;name&quot;:(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</del><ins>+                    *[caldavxml.TimeRange(**{&quot;start&quot;: &quot;20060605T160000Z&quot;, &quot;end&quot;: &quot;20060605T170000Z&quot;})],
+                    **{&quot;name&quot;: (&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</ins><span class="cx">                 )],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;}
</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>-                        **{&quot;name&quot;:(&quot;VEVENT&quot;)}
</del><ins>+                        **{&quot;name&quot;: (&quot;VEVENT&quot;)}
</ins><span class="cx">                     ),
</span><span class="cx">                     caldavxml.ComponentFilter(
</span><del>-                        **{&quot;name&quot;:(&quot;VTODO&quot;)}
</del><ins>+                        **{&quot;name&quot;: (&quot;VTODO&quot;)}
</ins><span class="cx">                     ),
</span><span class="cx">                 ],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;}
</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(**{&quot;start&quot;:&quot;20060605T160000Z&quot;, })],
-                        **{&quot;name&quot;:(&quot;VEVENT&quot;)}
</del><ins>+                        *[caldavxml.TimeRange(**{&quot;start&quot;: &quot;20060605T160000Z&quot;, })],
+                        **{&quot;name&quot;: (&quot;VEVENT&quot;)}
</ins><span class="cx">                     ),
</span><span class="cx">                     caldavxml.ComponentFilter(
</span><del>-                        **{&quot;name&quot;:(&quot;VTODO&quot;)}
</del><ins>+                        **{&quot;name&quot;: (&quot;VTODO&quot;)}
</ins><span class="cx">                     ),
</span><span class="cx">                 ],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;, &quot;test&quot;: &quot;anyof&quot;}
</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>-                    **{&quot;name&quot;:(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</del><ins>+                    **{&quot;name&quot;: (&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</ins><span class="cx">                 )],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;}
</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>-                    **{&quot;name&quot;:(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</del><ins>+                    **{&quot;name&quot;: (&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</ins><span class="cx">                 )],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;}
</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(**{&quot;start&quot;:&quot;20060605T160000Z&quot;, &quot;end&quot;:&quot;20060605T170000Z&quot;})],
-                    **{&quot;name&quot;:(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</del><ins>+                    *[caldavxml.TimeRange(**{&quot;start&quot;: &quot;20060605T160000Z&quot;, &quot;end&quot;: &quot;20060605T170000Z&quot;})],
+                    **{&quot;name&quot;: (&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;)}
</ins><span class="cx">                 )],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;}
</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>-                        **{&quot;name&quot;:(&quot;VEVENT&quot;)}
</del><ins>+                        **{&quot;name&quot;: (&quot;VEVENT&quot;)}
</ins><span class="cx">                     ),
</span><span class="cx">                     caldavxml.ComponentFilter(
</span><del>-                        **{&quot;name&quot;:(&quot;VTODO&quot;)}
</del><ins>+                        **{&quot;name&quot;: (&quot;VTODO&quot;)}
</ins><span class="cx">                     ),
</span><span class="cx">                 ],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;}
</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(**{&quot;start&quot;:&quot;20060605T160000Z&quot;, })],
-                        **{&quot;name&quot;:(&quot;VEVENT&quot;)}
</del><ins>+                        *[caldavxml.TimeRange(**{&quot;start&quot;: &quot;20060605T160000Z&quot;, })],
+                        **{&quot;name&quot;: (&quot;VEVENT&quot;)}
</ins><span class="cx">                     ),
</span><span class="cx">                     caldavxml.ComponentFilter(
</span><del>-                        **{&quot;name&quot;:(&quot;VTODO&quot;)}
</del><ins>+                        **{&quot;name&quot;: (&quot;VTODO&quot;)}
</ins><span class="cx">                     ),
</span><span class="cx">                 ],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;, &quot;test&quot;: &quot;anyof&quot;}
</span><span class="lines">@@ -349,7 +349,7 @@
</span><span class="cx">                             caldavxml.TextMatch.fromString(&quot;1234&quot;, False),
</span><span class="cx">                             name=&quot;UID&quot;,
</span><span class="cx">                         ),
</span><del>-                        **{&quot;name&quot;:(&quot;VEVENT&quot;)}
</del><ins>+                        **{&quot;name&quot;: (&quot;VEVENT&quot;)}
</ins><span class="cx">                     ),
</span><span class="cx">                 ],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;, &quot;test&quot;: &quot;anyof&quot;}
</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>-                        **{&quot;name&quot;:&quot;VALARM&quot;}
</del><ins>+                        **{&quot;name&quot;: &quot;VALARM&quot;}
</ins><span class="cx">                     )],
</span><del>-                    **{&quot;name&quot;:&quot;VEVENT&quot;}
</del><ins>+                    **{&quot;name&quot;: &quot;VEVENT&quot;}
</ins><span class="cx">                 )],
</span><span class="cx">                 **{&quot;name&quot;: &quot;VCALENDAR&quot;}
</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>-&quot;&quot;&quot;
-        )))
</del><ins>+&quot;&quot;&quot;)))
</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, &quot;_calendarHome&quot;)
-    ):
</del><ins>+class ImplicitCalendarHome(proxyForInterface(ICalendarHome, &quot;_calendarHome&quot;)):
</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">         &quot;&quot;&quot;
</span><span class="cx">         Wrap an underlying L{ITransaction}.
</span><span class="cx">         &quot;&quot;&quot;
</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>-        &quot;user01&quot;: {
-            &quot;calendar_1&quot;: {
</del><ins>+            &quot;user01&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
</del><ins>+            &quot;user02&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;user02&quot;: {
-            &quot;calendar_1&quot;: {
</del><ins>+            &quot;user03&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
-            },
-        },
-        &quot;user03&quot;: {
-            &quot;calendar_1&quot;: {
-            },
-            &quot;inbox&quot;: {
-            },
-        },
-    }
</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>-&quot;&quot;&quot; % {
-    &quot;now&quot;: self.now.getText(),
-    &quot;now_1D&quot;: self.now_1D.getText(),
-    &quot;now_12H&quot;: self.now_12H.getText(),
-    &quot;now_13H&quot;: self.now_13H.getText(),
-}
</del><ins>+&quot;&quot;&quot; % {&quot;now&quot;: self.now.getText(), &quot;now_1D&quot;: self.now_1D.getText(), &quot;now_12H&quot;: self.now_12H.getText(), &quot;now_13H&quot;: self.now_13H.getText(), }
</ins><span class="cx"> 
</span><span class="cx">         scheduler = CalDAVScheduler(self.transactionUnderTest(), &quot;user01&quot;)
</span><span class="cx">         result = (yield scheduler.doSchedulingViaPOST(&quot;mailto:user01@example.com&quot;, [&quot;mailto:user01@example.com&quot;, ], 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[&quot;UseSSL&quot;]:
</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 == &quot;message/rfc822&quot;:
</span><del>-                #original = part
</del><ins>+                # original = part
</ins><span class="cx">                 continue
</span><span class="cx">             elif contentType == &quot;text/calendar&quot;:
</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(&quot;Mail gateway found a token (%s) but didn't &quot;
-                           &quot;recognize it in message %s&quot;
-                           % (token, msgId))
</del><ins>+            log.error(
+                &quot;Mail gateway found a token (%s) but didn't recognize it in message %s&quot;
+                % (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() == &quot;VEVENT&quot;:
</span><del>-                comp.addProperty(Property(&quot;REQUEST-STATUS&quot;,
</del><ins>+                comp.addProperty(Property(
+                    &quot;REQUEST-STATUS&quot;,
</ins><span class="cx">                     [&quot;5.1&quot;, &quot;Service unavailable&quot;]))
</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(&quot;Mail gateway processing DSN %s&quot; % (msgId,))
</span><span class="cx">         txn = self.store.newTransaction(label=&quot;MailReceiver.processDSN&quot;)
</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(&quot;Mail gateway didn't find a token in message &quot;
-                               &quot;%s (%s)&quot; % (msg['Message-ID'], msg['To']))
</del><ins>+                log.error(
+                    &quot;Mail gateway didn't find a token in message &quot;
+                    &quot;%s (%s)&quot; % (msg['Message-ID'], msg['To']))
</ins><span class="cx">                 returnValue(self.NO_TOKEN)
</span><span class="cx">         else:
</span><del>-            log.error(&quot;Mail gateway couldn't parse To: address (%s) in &quot;
-                           &quot;message %s&quot; % (msg['To'], msg['Message-ID']))
</del><ins>+            log.error(
+                &quot;Mail gateway couldn't parse To: address (%s) in &quot;
+                &quot;message %s&quot; % (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=&quot;MailReceiver.processReply&quot;)
</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(&quot;Mail gateway found a token (%s) but didn't &quot;
-                           &quot;recognize it in message %s&quot;
-                           % (token, msg['Message-ID']))
</del><ins>+            log.error(
+                &quot;Mail gateway found a token (%s) but didn't &quot;
+                &quot;recognize it in message %s&quot;
+                % (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(&quot;Mail gateway didn't find an icalendar attachment &quot;
-                          &quot;in message %s&quot; % (msg['Message-ID'],))
</del><ins>+            log.warn(
+                &quot;Mail gateway didn't find an icalendar attachment &quot;
+                &quot;in message %s&quot; % (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(&quot;Don't have an email address for the organizer; &quot;
-                               &quot;ignoring reply.&quot;)
</del><ins>+                log.error(
+                    &quot;Don't have an email address for the organizer; &quot;
+                    &quot;ignoring reply.&quot;)
</ins><span class="cx">                 returnValue(self.NO_ORGANIZER_ADDRESS)
</span><span class="cx"> 
</span><span class="cx">             settings = config.Scheduling[&quot;iMIP&quot;][&quot;Sending&quot;]
</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[&quot;From&quot;]
</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(&quot;Mail gateway didn't find an ORGANIZER in REPLY %s&quot;
-                          % (msg['Message-ID'],))
</del><ins>+            log.warn(
+                &quot;Mail gateway didn't find an ORGANIZER in REPLY %s&quot;
+                % (msg['Message-ID'],))
</ins><span class="cx">             event.addProperty(Property(&quot;ORGANIZER&quot;, 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(&quot;ATTENDEE&quot;, attendee,
</del><ins>+            attendeeProp = Property(
+                &quot;ATTENDEE&quot;, attendee,
</ins><span class="cx">                 params={
</span><span class="cx">                     &quot;SCHEDULE-STATUS&quot;: 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=&quot;MailReceiver.processReply&quot;)
</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(&quot;Mail gateway can't process DSN %s&quot;
-                                   % (msg['Message-ID'],))
</del><ins>+                    log.error(
+                        &quot;Mail gateway can't process DSN %s&quot;
+                        % (msg['Message-ID'],))
</ins><span class="cx">                     return succeed(self.INCOMPLETE_DSN)
</span><span class="cx"> 
</span><del>-            log.info(&quot;Mail gateway received message %s from %s to %s&quot; %
</del><ins>+            log.info(
+                &quot;Mail gateway received message %s from %s to %s&quot; %
</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(&quot;POP servergreeting&quot;)
</span><span class="cx">         pop3client.POP3Client.serverGreeting(self, greeting)
</span><del>-        login = self.login(self.factory.settings[&quot;Username&quot;],
</del><ins>+        login = self.login(
+            self.factory.settings[&quot;Username&quot;],
</ins><span class="cx">             self.factory.settings[&quot;Password&quot;])
</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(&quot;POP3 login failed for %s&quot; %
</del><ins>+        self.log.error(
+            &quot;POP3 login failed for %s&quot; %
</ins><span class="cx">             (self.factory.settings[&quot;Username&quot;],))
</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(&quot;IMAP servergreeting&quot;)
</span><del>-        return self.authenticate(self.factory.settings[&quot;Password&quot;]
-            ).addCallback(self.cbLoggedIn
-            ).addErrback(self.ebAuthenticateFailed)
</del><ins>+        return self.authenticate(
+            self.factory.settings[&quot;Password&quot;]
+        ).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(&quot;IMAP authenticate failed for {name}, trying login&quot;,
</del><ins>+        self.log.debug(
+            &quot;IMAP authenticate failed for {name}, trying login&quot;,
</ins><span class="cx">             name=self.factory.settings[&quot;Username&quot;])
</span><del>-        return self.login(self.factory.settings[&quot;Username&quot;],
</del><ins>+        return self.login(
+            self.factory.settings[&quot;Username&quot;],
</ins><span class="cx">             self.factory.settings[&quot;Password&quot;]
</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(&quot;Downloading message %d of %d (%s)&quot; %
-                (self.messageCount - len(self.messageUIDs), self.messageCount,
-                nextUID))
</del><ins>+            self.log.debug(
+                &quot;Downloading message %d of %d (%s)&quot; %
+                (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, (&quot;\\Deleted&quot;,),
-            uid=True).addCallback(self.cbMessageDeleted, messageList)
</del><ins>+        self.addFlags(
+            messageList, (&quot;\\Deleted&quot;,), 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(&quot;mailto:%s&quot; % (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(&quot;Failed to send IMIP message (%s)&quot; % (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[&quot;From&quot;] = fromAddress
</span><span class="lines">@@ -581,7 +586,8 @@
</span><span class="cx">         method = calendar.propertyValue(&quot;METHOD&quot;).lower()
</span><span class="cx">         msgIcal.set_param(&quot;method&quot;, method)
</span><span class="cx">         msgIcal.add_header(&quot;Content-ID&quot;, &quot;&lt;invitation.ics&gt;&quot;)
</span><del>-        msgIcal.add_header(&quot;Content-Disposition&quot;,
</del><ins>+        msgIcal.add_header(
+            &quot;Content-Disposition&quot;,
</ins><span class="cx">             &quot;inline;filename=invitation.ics&quot;)
</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
-                    &quot;%s &lt;%s&gt;&quot; % (cn, mailto))
</del><ins>+                plainAttendeeList.append(
+                    cn if not mailto else &quot;%s &lt;%s&gt;&quot; % (cn, mailto)
+                )
</ins><span class="cx">             elif mailto:
</span><span class="cx">                 plainAttendeeList.append(&quot;&lt;%s&gt;&quot; % (mailto,))
</span><span class="cx"> 
</span><span class="cx">         details['plainAttendees'] = &quot;, &quot;.join(plainAttendeeList)
</span><span class="cx"> 
</span><del>-        details['plainOrganizer'] = (orgCN if not orgEmail else
-            &quot;%s &lt;%s&gt;&quot; % (orgCN, orgEmail))
</del><ins>+        details['plainOrganizer'] = (
+            orgCN if not orgEmail else &quot;%s &lt;%s&gt;&quot; % (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">                 &quot;Type&quot; : &quot;pop&quot;,
</span><span class="cx">                 &quot;UseSSL&quot; : 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,
-                &quot;urn:x-uid:user01&quot;,
-                &quot;mailto:xyzzy@example.com&quot;,
-                calendar
-            )
-        )
</del><ins>+            txn,
+            &quot;urn:x-uid:user01&quot;,
+            &quot;mailto:xyzzy@example.com&quot;,
+            calendar
+        ))
</ins><span class="cx">         yield txn.commit()
</span><span class="cx">         self.assertEquals(
</span><span class="cx">             &quot;1.2;Scheduling message has been delivered&quot;,
</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,
-                &quot;urn:x-uid:unknown_user&quot;,
-                &quot;mailto:xyzzy@example.com&quot;,
-                calendar
-            )
-        )
</del><ins>+            txn,
+            &quot;urn:x-uid:unknown_user&quot;,
+            &quot;mailto:xyzzy@example.com&quot;,
+            calendar
+        ))
</ins><span class="cx">         yield txn.commit()
</span><span class="cx">         self.assertEquals(
</span><span class="cx">             &quot;3.7;Invalid Calendar User&quot;,
</span><span class="lines">@@ -360,7 +359,8 @@
</span><span class="cx"> END:VCALENDAR
</span><span class="cx"> &quot;&quot;&quot;
</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=&quot;urn:x-uid:user01&quot;,
</span><span class="cx">             attendee=&quot;mailto:xyzzy@example.com&quot;,
</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(&quot;calendar.example.com&quot;,
-            &quot;calendar.example.com&quot;, &quot;com.apple.calendarserver&quot;))
-        self.assertTrue(shouldDeleteAllMail(&quot;calendar.example.com&quot;,
-            &quot;localhost&quot;, &quot;com.apple.calendarserver&quot;))
</del><ins>+        self.assertTrue(shouldDeleteAllMail(
+            &quot;calendar.example.com&quot;,
+            &quot;calendar.example.com&quot;,
+            &quot;com.apple.calendarserver&quot;
+        ))
+        self.assertTrue(shouldDeleteAllMail(
+            &quot;calendar.example.com&quot;,
+            &quot;localhost&quot;,
+            &quot;com.apple.calendarserver&quot;
+        ))
</ins><span class="cx"> 
</span><span class="cx">         # Don't delete all otherwise:
</span><del>-        self.assertFalse(shouldDeleteAllMail(&quot;calendar.example.com&quot;,
-            &quot;calendar.example.com&quot;, &quot;not_ours&quot;))
-        self.assertFalse(shouldDeleteAllMail(&quot;calendar.example.com&quot;,
-            &quot;localhost&quot;, &quot;not_ours&quot;))
-        self.assertFalse(shouldDeleteAllMail(&quot;calendar.example.com&quot;,
-            &quot;mail.example.com&quot;, &quot;com.apple.calendarserver&quot;))
</del><ins>+        self.assertFalse(shouldDeleteAllMail(
+            &quot;calendar.example.com&quot;,
+            &quot;calendar.example.com&quot;,
+            &quot;not_ours&quot;
+        ))
+        self.assertFalse(shouldDeleteAllMail(
+            &quot;calendar.example.com&quot;,
+            &quot;localhost&quot;,
+            &quot;not_ours&quot;
+        ))
+        self.assertFalse(shouldDeleteAllMail(
+            &quot;calendar.example.com&quot;,
+            &quot;mail.example.com&quot;,
+            &quot;com.apple.calendarserver&quot;
+        ))
</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(&quot;urn:uuid:user01&quot;, &quot;mailto:attendee@example.com&quot;,
</del><ins>+        oldDB.createToken(
+            &quot;urn:uuid:user01&quot;, &quot;mailto:attendee@example.com&quot;,
</ins><span class="cx">             &quot;icaluid1&quot;, token=&quot;token1&quot;)
</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(&quot;server@example.com&quot;, 7, DummySMTPSender(),
</del><ins>+        self.sender = MailSender(
+            &quot;server@example.com&quot;, 7, DummySMTPSender(),
</ins><span class="cx">             language=&quot;en&quot;)
</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(&quot;\n&quot;, &quot;\r\n&quot;),
</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(&quot;\n&quot;, &quot;\r\n&quot;),
</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=&quot;en&quot;):
</del><ins>+    def _interceptEmail(
+        self, inviteState, calendar, orgEmail, orgCn,
+        attendees, fromAddress, replyToAddress, toAddress, language=&quot;en&quot;
+    ):
</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[&quot;Reply-To&quot;],
</del><ins>+                self.assertEquals(
+                    msg[&quot;Reply-To&quot;],
</ins><span class="cx">                     &quot;server+%s@example.com&quot; % (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">             [[&quot;organizer&quot;, &quot;attendee&quot;, &quot;icaluid&quot;]])
</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">             &quot;mailto:attendee@example.com&quot;,
</span><span class="cx">             &quot;CFDD5E46-4F74-478A-9311-B3FF905449C3&quot;
</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 = &quot;mailto:attendee@example.com&quot;
</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(&quot;\n&quot;, &quot;\r\n&quot;)),
</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">     &quot;IScheduleInboxResource&quot;,
</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>-            (&quot;&quot;&quot;Host:example.com
</del><ins>+            (
+                &quot;&quot;&quot;Host:example.com
</ins><span class="cx"> Content-Type: text/calendar  ; charset =  &quot;utf-8&quot;
</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"> &quot;&quot;&quot;,
</span><del>-            &quot;&quot;&quot;content-type:text/calendar ; charset = &quot;utf-8&quot;
</del><ins>+                &quot;&quot;&quot;content-type:text/calendar ; charset = &quot;utf-8&quot;
</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=&quot;&quot;&quot;
</span><span class="cx">             ),
</span><span class="cx">             # Exact count on Recipient
</span><del>-            (&quot;&quot;&quot;Host:example.com
</del><ins>+            (
+                &quot;&quot;&quot;Host:example.com
</ins><span class="cx"> Content-Type: text/calendar  ; charset =  &quot;utf-8&quot;
</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"> &quot;&quot;&quot;,
</span><del>-            &quot;&quot;&quot;content-type:text/calendar ; charset = &quot;utf-8&quot;
</del><ins>+                &quot;&quot;&quot;content-type:text/calendar ; charset = &quot;utf-8&quot;
</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=&quot;&quot;&quot;
</span><span class="cx">             ),
</span><span class="cx">             # Re-ordered Content-Type
</span><del>-            (&quot;&quot;&quot;Host:example.com
</del><ins>+            (
+                &quot;&quot;&quot;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"> &quot;&quot;&quot;,
</span><del>-            &quot;&quot;&quot;content-type:text/calendar ; charset = &quot;utf-8&quot;
</del><ins>+                &quot;&quot;&quot;content-type:text/calendar ; charset = &quot;utf-8&quot;
</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>-            (&quot;&quot;&quot;Host:example.com
</del><ins>+            (
+                &quot;&quot;&quot;Host:example.com
</ins><span class="cx"> Content-Type: text/calendar  ; charset =  &quot;utf-8&quot;
</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"> &quot;&quot;&quot;,
</span><del>-            [DKIMUtils.extractTags(&quot;v=DKIM1; p=%s&quot; % (self.public_key_data,))],
-            True,
</del><ins>+                [DKIMUtils.extractTags(&quot;v=DKIM1; p=%s&quot; % (self.public_key_data,))],
+                True,
</ins><span class="cx">             ),
</span><span class="cx">             # Invalid - no method
</span><del>-            (&quot;&quot;&quot;Host:example.com
</del><ins>+            (
+                &quot;&quot;&quot;Host:example.com
</ins><span class="cx"> Content-Type: text/calendar  ; charset =  &quot;utf-8&quot;
</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"> &quot;&quot;&quot;,
</span><del>-            [DKIMUtils.extractTags(&quot;v=DKIM1; p=%s&quot; % (self.public_key_data,))],
-            False,
</del><ins>+                [DKIMUtils.extractTags(&quot;v=DKIM1; p=%s&quot; % (self.public_key_data,))],
+                False,
</ins><span class="cx">             ),
</span><span class="cx">             # Invalid - wrong algorithm
</span><del>-            (&quot;&quot;&quot;Host:example.com
</del><ins>+            (
+                &quot;&quot;&quot;Host:example.com
</ins><span class="cx"> Content-Type: text/calendar  ; charset =  &quot;utf-8&quot;
</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"> &quot;&quot;&quot;,
</span><del>-            [DKIMUtils.extractTags(&quot;v=DKIM1; h=sha-1; p=%s&quot; % (self.public_key_data,))],
-            False,
</del><ins>+                [DKIMUtils.extractTags(&quot;v=DKIM1; h=sha-1; p=%s&quot; % (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(&quot;w&quot;).write(
-&quot;&quot;&quot;&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
</del><ins>+        fp.open(&quot;w&quot;).write(&quot;&quot;&quot;&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
</ins><span class="cx"> &lt;!DOCTYPE servers SYSTEM &quot;servertoserver.dtd&quot;&gt;
</span><span class="cx"> &lt;servers&gt;
</span><span class="cx">   &lt;server&gt;
</span><span class="lines">@@ -43,8 +42,7 @@
</span><span class="cx">     &lt;/hosts&gt;
</span><span class="cx">   &lt;/server&gt;
</span><span class="cx"> &lt;/servers&gt;
</span><del>-&quot;&quot;&quot;
-)
</del><ins>+&quot;&quot;&quot;)
</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>-        &quot;user01&quot;: {
-            &quot;calendar_1&quot;: {
</del><ins>+            &quot;user01&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
</del><ins>+            &quot;user02&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;user02&quot;: {
-            &quot;calendar_1&quot;: {
</del><ins>+            &quot;user03&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
-            },
-        },
-        &quot;user03&quot;: {
-            &quot;calendar_1&quot;: {
-            },
-            &quot;inbox&quot;: {
-            },
-        },
-    }
</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(&quot;DNS SRV: lookup failed: {exc}&quot;, 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(&quot;DNS SRV: disabled: {l}&quot;, 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 &gt; 400: # Error codes only
</span><del>-            self.log.error(&quot;Error during {method} for {r}: {msg}&quot;,
</del><ins>+            self.log.error(
+                &quot;Error during {method} for {r}: {msg}&quot;,
</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>-        &quot;user01&quot;: {
-            &quot;calendar_1&quot;: {
</del><ins>+            &quot;user01&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
</del><ins>+            &quot;user02&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;user02&quot;: {
-            &quot;calendar_1&quot;: {
</del><ins>+            &quot;user03&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
-            },
-        },
-        &quot;user03&quot;: {
-            &quot;calendar_1&quot;: {
-            },
-            &quot;inbox&quot;: {
-            },
-        },
-    }
</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"> &quot;&quot;&quot;,
</span><del>-               False,
</del><ins>+                False,
</ins><span class="cx">             ),
</span><span class="cx">             (
</span><span class="cx">                 &quot;#2.4 Small, all cancelled, simple recurring component&quot;,
</span><span class="lines">@@ -230,7 +230,7 @@
</span><span class="cx"> END:VEVENT
</span><span class="cx"> END:VCALENDAR
</span><span class="cx"> &quot;&quot;&quot;,
</span><del>-                 False,
</del><ins>+                False,
</ins><span class="cx">             ),
</span><span class="cx">             (
</span><span class="cx">                 &quot;#3.1 Small, old, recurring with future override&quot;,
</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>-        &quot;user01&quot;: {
-            &quot;calendar_1&quot;: {
</del><ins>+            &quot;user01&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
</del><ins>+            &quot;user02&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;user02&quot;: {
-            &quot;calendar_1&quot;: {
</del><ins>+            &quot;user03&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
-            },
-        },
-        &quot;user03&quot;: {
-            &quot;calendar_1&quot;: {
-            },
-            &quot;inbox&quot;: {
-            },
-        },
-    }
</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>-        &quot;user01&quot;: {
-            &quot;calendar_1&quot;: {
-                &quot;organizer.ics&quot;: (cls.organizer_data, cls.metadata),
</del><ins>+            &quot;user01&quot;: {
+                &quot;calendar_1&quot;: {
+                    &quot;organizer.ics&quot;: (cls.organizer_data, cls.metadata),
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
</del><ins>+            &quot;user02&quot;: {
+                &quot;calendar_1&quot;: {
+                    &quot;attendee2.ics&quot;: (cls.attendee2_data, cls.metadata),
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;user02&quot;: {
-            &quot;calendar_1&quot;: {
-                &quot;attendee2.ics&quot;: (cls.attendee2_data, cls.metadata),
</del><ins>+            &quot;user03&quot;: {
+                &quot;calendar_1&quot;: {
+                    &quot;attendee3.ics&quot;: (cls.attendee3_data, cls.metadata),
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
-            },
-        },
-        &quot;user03&quot;: {
-            &quot;calendar_1&quot;: {
-                &quot;attendee3.ics&quot;: (cls.attendee3_data, cls.metadata),
-            },
-            &quot;inbox&quot;: {
-            },
-        },
-    }
</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>-&quot;&quot;&quot;.format(attendees=&quot;\n&quot;.join([&quot;ATTENDEE:urn:x-uid:user%02d&quot; % i for i in range(1, 100)]))
-)
</del><ins>+&quot;&quot;&quot;.format(attendees=&quot;\n&quot;.join([&quot;ATTENDEE:urn:x-uid:user%02d&quot; % 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=&quot;user02&quot;, name=&quot;calendar&quot;)
</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(&quot;mailto:&quot;):
</span><span class="cx">         addr = lower
</span><del>-    if (addr.startswith(&quot;/&quot;) or
</del><ins>+    if (
+        addr.startswith(&quot;/&quot;) or
</ins><span class="cx">         addr.startswith(&quot;http:&quot;) or
</span><del>-        addr.startswith(&quot;https:&quot;)):
</del><ins>+        addr.startswith(&quot;https:&quot;)
+    ):
</ins><span class="cx">         return addr.rstrip(&quot;/&quot;)
</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>-        &quot;home1&quot;: {
-            &quot;calendar_1&quot;: {
-                &quot;1.ics&quot;: (cal1Root.child(&quot;1.ics&quot;).getContent(), metadata1),
-                &quot;2.ics&quot;: (cal1Root.child(&quot;2.ics&quot;).getContent(), metadata2),
-                &quot;3.ics&quot;: (cal1Root.child(&quot;3.ics&quot;).getContent(), metadata3),
-                &quot;4.ics&quot;: (cal1Root.child(&quot;4.ics&quot;).getContent(), metadata4),
</del><ins>+            &quot;home1&quot;: {
+                &quot;calendar_1&quot;: {
+                    &quot;1.ics&quot;: (cal1Root.child(&quot;1.ics&quot;).getContent(), metadata1),
+                    &quot;2.ics&quot;: (cal1Root.child(&quot;2.ics&quot;).getContent(), metadata2),
+                    &quot;3.ics&quot;: (cal1Root.child(&quot;3.ics&quot;).getContent(), metadata3),
+                    &quot;4.ics&quot;: (cal1Root.child(&quot;4.ics&quot;).getContent(), metadata4),
+                },
+                &quot;calendar_2&quot;: {},
+                &quot;calendar_empty&quot;: {},
+                &quot;not_a_calendar&quot;: None
</ins><span class="cx">             },
</span><del>-            &quot;calendar_2&quot;: {},
-            &quot;calendar_empty&quot;: {},
-            &quot;not_a_calendar&quot;: None
-        },
-        &quot;home_splits&quot;: {
-            &quot;calendar_1&quot;: {
-                &quot;1.ics&quot;: (cal1SplitsRoot.child(&quot;1.ics&quot;).getContent(), metadata1),
-                &quot;2.ics&quot;: (cal1SplitsRoot.child(&quot;2.ics&quot;).getContent(), metadata2),
-                &quot;3.ics&quot;: (cal1SplitsRoot.child(&quot;3.ics&quot;).getContent(), metadata3),
</del><ins>+            &quot;home_splits&quot;: {
+                &quot;calendar_1&quot;: {
+                    &quot;1.ics&quot;: (cal1SplitsRoot.child(&quot;1.ics&quot;).getContent(), metadata1),
+                    &quot;2.ics&quot;: (cal1SplitsRoot.child(&quot;2.ics&quot;).getContent(), metadata2),
+                    &quot;3.ics&quot;: (cal1SplitsRoot.child(&quot;3.ics&quot;).getContent(), metadata3),
+                },
+                &quot;calendar_2&quot;: {
+                    &quot;1.ics&quot;: (cal2SplitsRoot.child(&quot;1.ics&quot;).getContent(), metadata1),
+                    &quot;2.ics&quot;: (cal2SplitsRoot.child(&quot;2.ics&quot;).getContent(), metadata2),
+                    &quot;3.ics&quot;: (cal2SplitsRoot.child(&quot;3.ics&quot;).getContent(), metadata3),
+                    &quot;4.ics&quot;: (cal2SplitsRoot.child(&quot;4.ics&quot;).getContent(), metadata4),
+                    &quot;5.ics&quot;: (cal2SplitsRoot.child(&quot;5.ics&quot;).getContent(), metadata4),
+                },
</ins><span class="cx">             },
</span><del>-            &quot;calendar_2&quot;: {
-                &quot;1.ics&quot;: (cal2SplitsRoot.child(&quot;1.ics&quot;).getContent(), metadata1),
-                &quot;2.ics&quot;: (cal2SplitsRoot.child(&quot;2.ics&quot;).getContent(), metadata2),
-                &quot;3.ics&quot;: (cal2SplitsRoot.child(&quot;3.ics&quot;).getContent(), metadata3),
-                &quot;4.ics&quot;: (cal2SplitsRoot.child(&quot;4.ics&quot;).getContent(), metadata4),
-                &quot;5.ics&quot;: (cal2SplitsRoot.child(&quot;5.ics&quot;).getContent(), metadata4),
</del><ins>+            &quot;home_no_splits&quot;: {
+                &quot;calendar_1&quot;: {
+                    &quot;1.ics&quot;: (cal1NoSplitsRoot.child(&quot;1.ics&quot;).getContent(), metadata1),
+                    &quot;2.ics&quot;: (cal1NoSplitsRoot.child(&quot;2.ics&quot;).getContent(), metadata2),
+                    &quot;3.ics&quot;: (cal1NoSplitsRoot.child(&quot;3.ics&quot;).getContent(), metadata3),
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;home_no_splits&quot;: {
-            &quot;calendar_1&quot;: {
-                &quot;1.ics&quot;: (cal1NoSplitsRoot.child(&quot;1.ics&quot;).getContent(), metadata1),
-                &quot;2.ics&quot;: (cal1NoSplitsRoot.child(&quot;2.ics&quot;).getContent(), metadata2),
-                &quot;3.ics&quot;: (cal1NoSplitsRoot.child(&quot;3.ics&quot;).getContent(), metadata3),
</del><ins>+            &quot;home_splits_shared&quot;: {
+                &quot;calendar_1&quot;: {},
</ins><span class="cx">             },
</span><del>-        },
-        &quot;home_splits_shared&quot;: {
-            &quot;calendar_1&quot;: {},
-        },
-        &quot;home_defaults&quot;: {
-            &quot;calendar_1&quot;: {
-                &quot;1.ics&quot;: (cal1DefaultsRoot.child(&quot;1.ics&quot;).getContent(), metadata1),
-                &quot;3.ics&quot;: (cal1DefaultsRoot.child(&quot;3.ics&quot;).getContent(), metadata3),
</del><ins>+            &quot;home_defaults&quot;: {
+                &quot;calendar_1&quot;: {
+                    &quot;1.ics&quot;: (cal1DefaultsRoot.child(&quot;1.ics&quot;).getContent(), metadata1),
+                    &quot;3.ics&quot;: (cal1DefaultsRoot.child(&quot;3.ics&quot;).getContent(), metadata3),
+                },
+                &quot;inbox&quot; : {},
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot; : {},
-        },
-    }
</del><ins>+        }
+
</ins><span class="cx">     md5s = {
</span><span class="cx">         &quot;home1&quot;: {
</span><span class="cx">             &quot;calendar_1&quot;: {
</span><span class="lines">@@ -1378,8 +1379,9 @@
</span><span class="cx">         text.
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         yield self.failUnlessFailure(
</span><del>-            maybeDeferred((yield self.calendarUnderTest()).createCalendarObjectWithName,
-            &quot;new&quot;, VComponent.fromString(test_event_notCalDAV_text)),
</del><ins>+            maybeDeferred(
+                (yield self.calendarUnderTest()).createCalendarObjectWithName,
+                &quot;new&quot;, 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(&quot;new.ics&quot;, VComponent.fromString(
</span><del>-                test_event_text
-            )
-        )
</del><ins>+            test_event_text
+        ))
</ins><span class="cx"> 
</span><span class="cx">         obj1 = yield cal.calendarObjectWithName(&quot;2.ics&quot;)
</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(&quot;new.ics&quot;, VComponent.fromString(
</span><del>-                test_event_text
-            )
-        )
</del><ins>+            test_event_text
+        ))
</ins><span class="cx">         obj1 = yield cal.calendarObjectWithName(&quot;2.ics&quot;)
</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>-        &quot;home1&quot;: {
-            &quot;calendar_1&quot;: {
-                &quot;1.ics&quot;: (cal1Root.child(&quot;1.ics&quot;).getContent(), metadata1),
-                &quot;2.ics&quot;: (cal1Root.child(&quot;2.ics&quot;).getContent(), metadata2),
-                &quot;3.ics&quot;: (cal1Root.child(&quot;3.ics&quot;).getContent(), metadata3),
-                &quot;4.ics&quot;: (cal1Root.child(&quot;4.ics&quot;).getContent(), metadata4),
</del><ins>+            &quot;home1&quot;: {
+                &quot;calendar_1&quot;: {
+                    &quot;1.ics&quot;: (cal1Root.child(&quot;1.ics&quot;).getContent(), metadata1),
+                    &quot;2.ics&quot;: (cal1Root.child(&quot;2.ics&quot;).getContent(), metadata2),
+                    &quot;3.ics&quot;: (cal1Root.child(&quot;3.ics&quot;).getContent(), metadata3),
+                    &quot;4.ics&quot;: (cal1Root.child(&quot;4.ics&quot;).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">         &quot;&quot;&quot;
</span><span class="cx">         cal = yield self.calendarUnderTest()
</span><span class="cx">         yield cal.createCalendarObjectWithName(&quot;drop.ics&quot;, Component.fromString(
</span><del>-                self.eventWithDropbox
-            )
-        )
</del><ins>+            self.eventWithDropbox
+        ))
</ins><span class="cx">         obj = yield cal.calendarObjectWithName(&quot;drop.ics&quot;)
</span><span class="cx">         self.assertEquals((yield obj.dropboxID()), &quot;some-dropbox-id&quot;)
</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">             (&quot;1.2&quot;, 1, (&quot;1.2.ics&quot;,)),
</span><span class="cx">             (&quot;1.3&quot;, 2, (&quot;1.3.ics&quot;, &quot;2-2.3.ics&quot;,)),
</span><span class="cx">             (&quot;1.4&quot;, 4, (&quot;1.4.ics&quot;, &quot;1.5.ics&quot;, &quot;2-3.2.ics&quot;, &quot;2-3.3.ics&quot;,)),
</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>-        &quot;user01&quot;: {
-            &quot;calendar_1&quot;: {
</del><ins>+            &quot;user01&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
</del><ins>+            &quot;user02&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;user02&quot;: {
-            &quot;calendar_1&quot;: {
-            },
-            &quot;inbox&quot;: {
-            },
-        },
-    }
</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"> &quot;&quot;&quot;),
</span><span class="cx"> 
</span><del>-        Component.fromString(&quot;&quot;&quot;BEGIN:VCALENDAR
</del><ins>+            Component.fromString(&quot;&quot;&quot;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=(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;),
-                      ),
-                      name=&quot;VCALENDAR&quot;,
-                   )
-              )
</del><ins>+                caldavxml.ComponentFilter(
+                    caldavxml.ComponentFilter(
+                        TimeRange(
+                            start=trstart,
+                            end=trend,
+                        ),
+                        name=(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;),
+                    ),
+                    name=&quot;VCALENDAR&quot;,
+                )
+            )
</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=(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;),
-                      ),
-                      name=&quot;VCALENDAR&quot;,
-                   )
-              )
</del><ins>+                caldavxml.ComponentFilter(
+                    caldavxml.ComponentFilter(
+                        TimeRange(
+                            start=trstart,
+                            end=trend,
+                        ),
+                        name=(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;),
+                    ),
+                    name=&quot;VCALENDAR&quot;,
+                )
+            )
</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=(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;),
-                      ),
-                      name=&quot;VCALENDAR&quot;,
-                   )
-              )
</del><ins>+                caldavxml.ComponentFilter(
+                    caldavxml.ComponentFilter(
+                        TimeRange(
+                            start=trstart,
+                            end=trend,
+                        ),
+                        name=(&quot;VEVENT&quot;, &quot;VFREEBUSY&quot;, &quot;VAVAILABILITY&quot;),
+                    ),
+                    name=&quot;VCALENDAR&quot;,
+                )
+            )
</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>-        &quot;user01&quot;: {
-            &quot;calendar&quot;: {
</del><ins>+            &quot;user01&quot;: {
+                &quot;calendar&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
</del><ins>+            &quot;user02&quot;: {
+                &quot;calendar&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;user02&quot;: {
-            &quot;calendar&quot;: {
</del><ins>+            &quot;user03&quot;: {
+                &quot;calendar&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
-            },
-        },
-        &quot;user03&quot;: {
-            &quot;calendar&quot;: {
-            },
-            &quot;inbox&quot;: {
-            },
-        },
-    }
</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>-        &quot;user01&quot;: {
-            &quot;calendar&quot;: {
-                &quot;cal1.ics&quot;: (cls.cal1, None,),
</del><ins>+            &quot;user01&quot;: {
+                &quot;calendar&quot;: {
+                    &quot;cal1.ics&quot;: (cls.cal1, None,),
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
</del><ins>+            &quot;user02&quot;: {
+                &quot;calendar&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;user02&quot;: {
-            &quot;calendar&quot;: {
</del><ins>+            &quot;user03&quot;: {
+                &quot;calendar&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
-            },
-        },
-        &quot;user03&quot;: {
-            &quot;calendar&quot;: {
-            },
-            &quot;inbox&quot;: {
-            },
-        },
-    }
</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>-        &quot;user01&quot;: {
-            &quot;calendar&quot;: {
-                &quot;cal1.ics&quot;: (cls.cal1, None,),
</del><ins>+            &quot;user01&quot;: {
+                &quot;calendar&quot;: {
+                    &quot;cal1.ics&quot;: (cls.cal1, None,),
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
</del><ins>+            &quot;user02&quot;: {
+                &quot;calendar&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;user02&quot;: {
-            &quot;calendar&quot;: {
</del><ins>+            &quot;user03&quot;: {
+                &quot;calendar&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
-            },
-        },
-        &quot;user03&quot;: {
-            &quot;calendar&quot;: {
-            },
-            &quot;inbox&quot;: {
-            },
-        },
-    }
</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(&quot;groupShareeAccounts.xml&quot;),
</span><del>-            #resources=accountsFilePath.child(&quot;resources.xml&quot;),
</del><ins>+            # resources=accountsFilePath.child(&quot;resources.xml&quot;),
</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>-            (&quot;1&quot;, [otherCal.name() + '/',
-                   'calendar/',
-                   'inbox/'],
-            ),
-            (&quot;infinity&quot;, [otherCal.name() + '/',
-                         otherCal.name() + '/cal1.ics',
-                         'calendar/',
-                         'inbox/'],
-             )):
</del><ins>+            (&quot;1&quot;, [otherCal.name() + '/', 'calendar/', 'inbox/'],),
+            (
+                &quot;infinity&quot;, [
+                    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>-        &quot;user01&quot;: {
-            &quot;calendar_1&quot;: {
</del><ins>+            &quot;user01&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
</del><ins>+            &quot;user02&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;user02&quot;: {
-            &quot;calendar_1&quot;: {
</del><ins>+            &quot;user03&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-            &quot;inbox&quot;: {
</del><ins>+            &quot;user04&quot;: {
+                &quot;calendar_1&quot;: {
+                },
+                &quot;inbox&quot;: {
+                },
</ins><span class="cx">             },
</span><del>-        },
-        &quot;user03&quot;: {
-            &quot;calendar_1&quot;: {
-            },
-            &quot;inbox&quot;: {
-            },
-        },
-        &quot;user04&quot;: {
-            &quot;calendar_1&quot;: {
-            },
-            &quot;inbox&quot;: {
-            },
-        },
-    }
</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">     &quot;&quot;&quot;
</span><span class="cx"> 
</span><span class="cx">     # Try &quot;X-APPLE-DROPBOX&quot; first
</span><del>-    dropboxProperty = (yield calendarObject.component(
-        )).getFirstPropertyInAnyComponent(&quot;X-APPLE-DROPBOX&quot;)
</del><ins>+    dropboxProperty = (yield calendarObject.component()).getFirstPropertyInAnyComponent(&quot;X-APPLE-DROPBOX&quot;)
</ins><span class="cx">     if dropboxProperty is not None and dropboxProperty.value():
</span><span class="cx">         componentDropboxID = dropboxProperty.value().rstrip(&quot;/&quot;).split(&quot;/&quot;)[-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">     &quot;IAttachment&quot;,
</span><span class="cx"> 
</span><span class="cx">     # Exceptions
</span><del>-   #&quot;InvalidCalendarComponentError&quot;,
</del><ins>+    # &quot;InvalidCalendarComponentError&quot;,
</ins><span class="cx">     &quot;InvalidCalendarAccessError&quot;,
</span><span class="cx">     &quot;TooManyAttendeesError&quot;,
</span><span class="cx">     &quot;ResourceDeletedError&quot;,
</span></span></pre>
</div>
</div>

</body>
</html>