[CalendarServer-changes] [14215] CalendarServer/trunk

source_changes at macosforge.org source_changes at macosforge.org
Wed Dec 10 14:33:11 PST 2014


Revision: 14215
          http://trac.calendarserver.org//changeset/14215
Author:   cdaboo at apple.com
Date:     2014-12-10 14:33:11 -0800 (Wed, 10 Dec 2014)
Log Message:
-----------
Fix for use with latest Twisted.

Modified Paths:
--------------
    CalendarServer/trunk/.project
    CalendarServer/trunk/calendarserver/tools/shell/test/test_cmd.py
    CalendarServer/trunk/contrib/performance/loadtest/test_ical.py
    CalendarServer/trunk/requirements-stable.txt
    CalendarServer/trunk/setup.py
    CalendarServer/trunk/twistedcaldav/scheduling_store/caldav/test/test_resource.py
    CalendarServer/trunk/twistedcaldav/test/test_database.py
    CalendarServer/trunk/twistedcaldav/test/test_upgrade.py
    CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/inbound.py
    CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_inbound.py
    CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/dkim.py
    CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_dkim.py
    CalendarServer/trunk/txdav/caldav/datastore/test/common.py
    CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py
    CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py
    CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py
    CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py
    CalendarServer/trunk/txdav/common/datastore/test/accounts/accounts.xml
    CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py
    CalendarServer/trunk/txdav/dps/test/test_client.py
    CalendarServer/trunk/txdav/who/cache.py
    CalendarServer/trunk/txdav/who/test/test_cache.py
    CalendarServer/trunk/txdav/who/test/test_groups.py

Added Paths:
-----------
    CalendarServer/trunk/txdav/caldav/datastore/test/calendar_store/ho/me/home1/calendar_1/5.ics

Modified: CalendarServer/trunk/.project
===================================================================
--- CalendarServer/trunk/.project	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/.project	2014-12-10 22:33:11 UTC (rev 14215)
@@ -11,7 +11,9 @@
 		<project>pycparser</project>
 		<project>pycrypto</project>
 		<project>PyGreSQL</project>
+		<project>pyOpenSSL</project>
 		<project>python-ldap</project>
+		<project>service_identity</project>
 		<project>sqlparse</project>
 		<project>twextpy</project>
 		<project>Twisted</project>

Modified: CalendarServer/trunk/calendarserver/tools/shell/test/test_cmd.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/shell/test/test_cmd.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/calendarserver/tools/shell/test/test_cmd.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -40,7 +40,7 @@
 
 
     def test_getTargetMissing(self):
-        self.assertFailure(self.commands.getTarget(["/foo"]), NotFoundError)
+        return self.assertFailure(self.commands.getTarget(["/foo"]), NotFoundError)
 
 
     @inlineCallbacks

Modified: CalendarServer/trunk/contrib/performance/loadtest/test_ical.py
===================================================================
--- CalendarServer/trunk/contrib/performance/loadtest/test_ical.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/contrib/performance/loadtest/test_ical.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -1279,6 +1279,7 @@
         self.assertEqual({}, self.client.xmpp)
 
 
+    @inlineCallbacks
     def test_changeEventAttendee(self):
         """
         OS_X_10_6.changeEventAttendee removes one attendee from an
@@ -1291,7 +1292,7 @@
         old = attendees[0]
         new = old.duplicate()
         new.setParameter('CN', 'Some Other Guy')
-        event = Event(None, u'/some/calendar/1234.ics', None, vevent)
+        event = Event(self.client.serializeLocation(), u'/some/calendar/1234.ics', None, vevent)
         self.client._events[event.url] = event
         self.client.changeEventAttendee(event.url, old, new)
 

Modified: CalendarServer/trunk/requirements-stable.txt
===================================================================
--- CalendarServer/trunk/requirements-stable.txt	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/requirements-stable.txt	2014-12-10 22:33:11 UTC (rev 14215)
@@ -5,16 +5,18 @@
 # For CalendarServer development, don't try to get these projects from PyPI; use svn.
 
 -e .
--e svn+http://svn.calendarserver.org/repository/calendarserver/twext/trunk@14208#egg=twextpy
+-e svn+http://svn.calendarserver.org/repository/calendarserver/twext/trunk@14214#egg=twextpy
 -e svn+http://svn.calendarserver.org/repository/calendarserver/PyKerberos/trunk@13420#egg=kerberos
 -e svn+http://svn.calendarserver.org/repository/calendarserver/PyCalendar/trunk@14025#egg=pycalendar
 
 # Specify specific versions of our dependencies so that we're all testing the same config.
 
 cffi==0.8.6
+characteristic==14.0.0
 funcparserlib==0.3.6
 psutil==2.1.3
 pyasn1==0.1.7
+pyasn1_modules==0.0.5
 pycparser==2.10
 pycrypto==2.6.1
 PyGreSQL==4.1.1
@@ -25,6 +27,7 @@
 python-dateutil==1.5  # Note: v2.0+ is for Python 3
 python-ldap==2.4.18
 pytz==2014.10
+service_identity==14.0.0
 setproctitle==1.1.8
 sqlparse==0.1.14
 Twisted==14.0.2

Modified: CalendarServer/trunk/setup.py
===================================================================
--- CalendarServer/trunk/setup.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/setup.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -239,6 +239,8 @@
     "service_identity",
     "pycrypto",
     "pyasn1",
+    "pyasn1_modules",
+    "characteristic",
     "kerberos",
 
     # Data store

Modified: CalendarServer/trunk/twistedcaldav/scheduling_store/caldav/test/test_resource.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/scheduling_store/caldav/test/test_resource.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/twistedcaldav/scheduling_store/caldav/test/test_resource.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -118,7 +118,7 @@
         newfbset.add("/calendar-broken")
         newset = caldavxml.CalendarFreeBusySet(*[davxml.HRef(url) for url in newfbset])
 
-        self.failUnlessFailure(inbox.writeProperty(newset, request), HTTPError)
+        yield self.failUnlessFailure(inbox.writeProperty(newset, request), HTTPError)
 
 
 

Modified: CalendarServer/trunk/twistedcaldav/test/test_database.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_database.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/twistedcaldav/test/test_database.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -191,6 +191,7 @@
         self.assertEqual(items, ())
 
 
+    @inlineCallbacks
     def test_version_upgrade_persistent(self):
         """
         Connect to database and create table
@@ -198,9 +199,9 @@
         db_file = self.mktemp()
         db = Database.TestDB(db_file, persistent=True)
         yield db.open()
-        yield db.execute("INSERT into TESTTYPE (KEY, VALUE) values (:1, :2)", "FOO", "BAR")
+        yield db.execute("INSERT into TESTTYPE (KEY, VALUE) values (:1, :2)", ("FOO", "BAR",))
         items = (yield db.query("SELECT * from TESTTYPE"))
-        self.assertEqual(items, (("FOO", "BAR")))
+        self.assertEqual(items, (("FOO", "BAR"),))
         db.close()
         db = None
 
@@ -210,26 +211,27 @@
         db.close()
         db = None
 
-        db = Database.TestDB(db_file, persistent=True, autocommit=True)
+        db = Database.TestDB(db_file, persistent=True)
         yield db.open()
         items = (yield db.query("SELECT * from TESTTYPE"))
-        self.assertEqual(items, (("FOO", "BAR")))
+        self.assertEqual(items, (("FOO", "BAR"),))
 
 
+    @inlineCallbacks
     def test_version_upgrade_persistent_add_index(self):
         """
         Connect to database and create table
         """
         db_file = self.mktemp()
-        db = Database.TestDB(db_file, persistent=True, autocommit=True)
+        db = Database.TestDB(db_file, persistent=True)
         yield db.open()
-        yield db.execute("INSERT into TESTTYPE (KEY, VALUE) values (:1, :2)", "FOO", "BAR")
+        yield db.execute("INSERT into TESTTYPE (KEY, VALUE) values (:1, :2)", ("FOO", "BAR",))
         items = (yield db.query("SELECT * from TESTTYPE"))
-        self.assertEqual(items, (("FOO", "BAR")))
+        self.assertEqual(items, (("FOO", "BAR"),))
         db.close()
         db = None
 
-        db = Database.TestDBCreateIndexOnUpgrade(db_file, persistent=True, autocommit=True)
+        db = Database.TestDBCreateIndexOnUpgrade(db_file, persistent=True)
         yield db.open()
         items = (yield db.query("SELECT * from TESTTYPE"))
-        self.assertEqual(items, (("FOO", "BAR")))
+        self.assertEqual(items, (("FOO", "BAR"),))

Modified: CalendarServer/trunk/twistedcaldav/test/test_upgrade.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_upgrade.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/twistedcaldav/test/test_upgrade.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -180,6 +180,7 @@
         self.assertTrue(os.path.exists(os.path.join(config.DataRoot, NEWPROXYFILE)))
 
 
+    @inlineCallbacks
     def test_freeBusyUpgrade(self):
         """
         Test the updating of calendar-free-busy-set xattrs on inboxes

Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/inbound.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/inbound.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/inbound.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -367,7 +367,7 @@
             del msg["To"]
             msg["To"] = toAddr
             log.warn("Mail gateway forwarding reply back to organizer")
-            yield smtpSender.sendMessage(fromAddr, toAddr, messageid(), msg)
+            yield smtpSender.sendMessage(fromAddr, toAddr, messageid(), msg.as_string())
             returnValue(self.REPLY_FORWARDED_TO_ORGANIZER)
 
         # Process the imip attachment; inject to calendar server

Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_inbound.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_inbound.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/imip/test/test_inbound.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -29,7 +29,6 @@
 from txdav.caldav.datastore.scheduling.imip.inbound import injectMessage
 from txdav.caldav.datastore.scheduling.imip.inbound import shouldDeleteAllMail
 from txdav.caldav.datastore.scheduling.imip.inbound import IMAP4DownloadProtocol
-from txdav.caldav.datastore.scheduling.itip import iTIPRequestStatus
 from txdav.common.datastore.test.util import CommonCommonTests
 
 from twext.enterprise.jobqueue import JobItem
@@ -177,7 +176,7 @@
         # Make sure a known token *is* processed
         txn = self.store.newTransaction()
         token = (yield txn.imipCreateToken(
-            "urn:uuid:5A985493-EE2C-4665-94CF-4DFEA3A89500",
+            "urn:x-uid:5A985493-EE2C-4665-94CF-4DFEA3A89500",
             "mailto:user02 at example.com",
             "1E71F9C8-AEDA-48EB-98D0-76E898F6BB5C"
         ))
@@ -200,7 +199,7 @@
         # Make sure a known token *is* processed
         txn = self.store.newTransaction()
         yield txn.imipCreateToken(
-            "urn:uuid:5A985493-EE2C-4665-94CF-4DFEA3A89500",
+            "urn:x-uid:5A985493-EE2C-4665-94CF-4DFEA3A89500",
             "mailto:xyzzy at example.com",
             "1E71F9C8-AEDA-48EB-98D0-76E898F6BB5C",
             token="d7cdf68d-8b73-4df1-ad3b-f08002fb285f"
@@ -213,13 +212,14 @@
         yield JobItem.waitEmpty(self.store.newTransaction, reactor, 60)
 
 
+    @inlineCallbacks
     def test_processReplyMissingOrganizer(self):
         msg = email.message_from_string(self.dataFile('reply_missing_organizer'))
 
         # stick the token in the database first
         txn = self.store.newTransaction()
         yield txn.imipCreateToken(
-            "urn:uuid:5A985493-EE2C-4665-94CF-4DFEA3A89500",
+            "urn:x-uid:5A985493-EE2C-4665-94CF-4DFEA3A89500",
             "mailto:xyzzy at example.com",
             "1E71F9C8-AEDA-48EB-98D0-76E898F6BB5C",
             token="d7cdf68d-8b73-4df1-ad3b-f08002fb285f"
@@ -227,19 +227,18 @@
         yield txn.commit()
 
         result = (yield self.receiver.processReply(msg))
-        organizer, _ignore_attendee, calendar = result
-        organizerProp = calendar.mainComponent().getOrganizerProperty()
-        self.assertTrue(organizerProp is not None)
-        self.assertEquals(organizer,
-                          "urn:uuid:5A985493-EE2C-4665-94CF-4DFEA3A89500")
+        self.assertEquals(result, MailReceiver.INJECTION_SUBMITTED)
 
+        yield JobItem.waitEmpty(self.store.newTransaction, reactor, 60)
 
+
+    @inlineCallbacks
     def test_processReplyMissingAttendee(self):
         msg = email.message_from_string(self.dataFile('reply_missing_attendee'))
 
         txn = self.store.newTransaction()
         yield txn.imipCreateToken(
-            "urn:uuid:5A985493-EE2C-4665-94CF-4DFEA3A89500",
+            "urn:x-uid:5A985493-EE2C-4665-94CF-4DFEA3A89500",
             "mailto:xyzzy at example.com",
             "1E71F9C8-AEDA-48EB-98D0-76E898F6BB5C",
             token="d7cdf68d-8b73-4df1-ad3b-f08002fb285f"
@@ -247,16 +246,12 @@
         yield txn.commit()
 
         result = (yield self.receiver.processReply(msg))
-        _ignore_organizer, attendee, calendar = result
+        self.assertEquals(result, MailReceiver.INJECTION_SUBMITTED)
 
-        # Since the expected attendee was missing, the reply processor should
-        # have added an attendee back in with a "5.1;Service unavailable"
-        # schedule-status
-        attendeeProp = calendar.mainComponent().getAttendeeProperty([attendee])
-        self.assertEquals(attendeeProp.parameterValue("SCHEDULE-STATUS"),
-                          iTIPRequestStatus.SERVICE_UNAVAILABLE)
+        yield JobItem.waitEmpty(self.store.newTransaction, reactor, 60)
 
 
+    @inlineCallbacks
     def test_processReplyMissingAttachment(self):
 
         msg = email.message_from_string(
@@ -266,7 +261,7 @@
         # stick the token in the database first
         txn = self.store.newTransaction()
         yield txn.imipCreateToken(
-            "urn:uuid:5A985493-EE2C-4665-94CF-4DFEA3A89500",
+            "urn:x-uid:5A985493-EE2C-4665-94CF-4DFEA3A89500",
             "mailto:xyzzy at example.com",
             "1E71F9C8-AEDA-48EB-98D0-76E898F6BB5C",
             token="d7cdf68d-8b73-4df1-ad3b-f08002fb285f"
@@ -276,7 +271,9 @@
         result = (yield self.receiver.processReply(msg))
         self.assertEquals(result, MailReceiver.REPLY_FORWARDED_TO_ORGANIZER)
 
+        yield JobItem.waitEmpty(self.store.newTransaction, reactor, 60)
 
+
     @inlineCallbacks
     def test_injectMessage(self):
 

Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/dkim.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/dkim.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/dkim.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -812,7 +812,8 @@
             return None
 
 
-    def flushCache(self):
+    @staticmethod
+    def flushCache():
         PublicKeyLookup.keyCache = {}
 
 

Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_dkim.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_dkim.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/test/test_dkim.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -389,6 +389,7 @@
             self.assertEqual(extracted, result.replace("\n", "\r\n"))
 
 
+    @inlineCallbacks
     def test_locate_public_key(self):
         """
         L{DKIMVerifier.locatePublicKey} correctly finds key matching headers.
@@ -439,13 +440,14 @@
         for hdrs, keys, result in data:
             headers = [hdr.split(":", 1) for hdr in hdrs.splitlines()]
             TestPublicKeyLookup.PublicKeyLookup_Testing.keys = keys
+            TestPublicKeyLookup.PublicKeyLookup_Testing.flushCache()
             verifier = DKIMVerifier(self._makeHeaders(headers), "", key_lookup=(TestPublicKeyLookup.PublicKeyLookup_Testing,))
             verifier.processDKIMHeader()
             pkey = (yield verifier.locatePublicKey())
             if result:
-                self.assertNotEqual(pkey, None)
+                self.assertTrue(pkey is not None)
             else:
-                self.assertEqual(pkey, None)
+                self.assertTrue(pkey is None)
 
 
     @inlineCallbacks
@@ -473,7 +475,7 @@
                 TestPublicKeyLookup.PublicKeyLookup_Testing.keys = keys
                 data = (yield allDataFromStream(request.stream))
                 verifier = DKIMVerifier(request.headers, data, key_lookup=(TestPublicKeyLookup.PublicKeyLookup_Testing,))
-                TestPublicKeyLookup.PublicKeyLookup_Testing({}).flushCache()
+                TestPublicKeyLookup.PublicKeyLookup_Testing.flushCache()
                 try:
                     yield verifier.verify()
                 except Exception, e:

Added: CalendarServer/trunk/txdav/caldav/datastore/test/calendar_store/ho/me/home1/calendar_1/5.ics
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/test/calendar_store/ho/me/home1/calendar_1/5.ics	                        (rev 0)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/calendar_store/ho/me/home1/calendar_1/5.ics	2014-12-10 22:33:11 UTC (rev 14215)
@@ -0,0 +1,42 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Apple Inc.//iCal 4.0.1//EN
+CALSCALE:GREGORIAN
+BEGIN:VTIMEZONE
+TZID:US/Pacific
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0800
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+DTSTART:20070311T020000
+TZNAME:PDT
+TZOFFSETTO:-0700
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0700
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+DTSTART:20071104T020000
+TZNAME:PST
+TZOFFSETTO:-0800
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTEND;TZID=US/Pacific:%(now)s0324T124500
+TRANSP:OPAQUE
+UID:uid5
+DTSTAMP:20090326T145447Z
+LOCATION:Wilfredo's Office
+ORGANIZER:mailto:wsanchez at example.com
+SEQUENCE:2
+X-APPLE-EWS-BUSYSTATUS:BUSY
+X-APPLE-DROPBOX:/calendars/__uids__/user01/dropbox/FE5CDC6F-7776-4607-83
+ A9-B90FF7ACC8D0.dropbox
+SUMMARY:CalDAV protocol updates
+DTSTART;TZID=US/Pacific:%(now)s0324T121500
+CREATED:20090326T145440Z
+BEGIN:VALARM
+X-WR-ALARMUID:DB39AB67-449C-441C-89D2-D740B5F41A73
+TRIGGER;VALUE=DATE-TIME:%(now)s0324T180009Z
+ACTION:AUDIO
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Modified: CalendarServer/trunk/txdav/caldav/datastore/test/common.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/test/common.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/common.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -76,6 +76,7 @@
     "2.ics",
     "3.ics",
     "4.ics",
+    "5.ics",
 ]
 
 home1_calendarNames = [
@@ -240,6 +241,7 @@
         metadata2 = cls.metadata2.copy()
         metadata3 = cls.metadata3.copy()
         metadata4 = cls.metadata4.copy()
+        metadata5 = cls.metadata5.copy()
         return {
             "home1": {
                 "calendar_1": {
@@ -247,6 +249,7 @@
                     "2.ics": (cal1Root.child("2.ics").getContent(), metadata2),
                     "3.ics": (cal1Root.child("3.ics").getContent(), metadata3),
                     "4.ics": (cal1Root.child("4.ics").getContent(), metadata4),
+                    "5.ics": (cal1Root.child("5.ics").getContent(), metadata5),
                 },
                 "calendar_2": {},
                 "calendar_empty": {},
@@ -1233,14 +1236,18 @@
         )
 
 
+    @inlineCallbacks
     def test_organizer(self):
         """
         L{ICalendarObject.organizer} returns a C{str} describing the calendar
         user address of the C{ORGANIZER} property of the calendar object's
         component.
         """
+
+        calobj = yield self.calendarObjectUnderTest(name="5.ics")
+        organizer = yield calobj.organizer()
         self.assertEquals(
-            (yield self.calendarObjectUnderTest()).organizer(),
+            organizer,
             "mailto:wsanchez at example.com"
         )
 

Modified: CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -534,25 +534,26 @@
         self.assertEqual(supported_components, set(ical.allowedStoreComponents))
 
 
+    @inlineCallbacks
     def test_calendarHomeVersion(self):
         """
         The DATAVERSION column for new calendar homes must match the
         CALENDAR-DATAVERSION value.
         """
 
-        home = yield self.transactionUnderTest().calendarHomeWithUID("home_version")
+        home = yield self.transactionUnderTest().calendarHomeWithUID("home_version", create=True)
         self.assertTrue(home is not None)
         yield self.transactionUnderTest().commit
 
         txn = yield self.transactionUnderTest()
-        version = yield txn.calendarserverValue("CALENDAR-DATAVERSION")[0][0]
+        version = yield txn.calendarserverValue("CALENDAR-DATAVERSION")
         ch = schema.CALENDAR_HOME
-        homeVersion = yield Select(
+        homeVersion = (yield Select(
             [ch.DATAVERSION, ],
             From=ch,
             Where=ch.OWNER_UID == "home_version",
-        ).on(txn)[0][0]
-        self.assertEqual(int(homeVersion, version))
+        ).on(txn))[0][0]
+        self.assertEqual(int(homeVersion), int(version))
 
 
     @inlineCallbacks

Modified: CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -355,20 +355,21 @@
         )
 
 
+    @inlineCallbacks
     def test_modifyAddressBookObjectCaches(self):
         """
         Modifying a addressbook object should cache the modified component in
         memory, to avoid unnecessary parsing round-trips.
         """
         modifiedComponent = VComponent.fromString(vcard1modified_text)
-        (yield self.addressbook1.addressbookObjectWithName("1.vcf")).setComponent(
-            modifiedComponent
+        obj = yield self.addressbook1.addressbookObjectWithName("1.vcf")
+        yield obj.setComponent(modifiedComponent)
+        comp = yield obj.component()
+        self.assertEqual(
+            str(modifiedComponent),
+            str(comp)
         )
-        self.assertIdentical(
-            modifiedComponent,
-            (yield self.addressbook1.addressbookObjectWithName("1.vcf")).component()
-        )
-        self.txn.commit()
+        yield self.txn.commit()
 
 
     @testUnimplemented

Modified: CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -204,25 +204,26 @@
         self.assertPropertiesSimilar(fromHome, toHome,)
 
 
+    @inlineCallbacks
     def test_addressBookHomeVersion(self):
         """
         The DATAVERSION column for new addressbook homes must match the
         ADDRESSBOOK-DATAVERSION value.
         """
 
-        home = yield self.transactionUnderTest().addressbookHomeWithUID("home_version")
+        home = yield self.transactionUnderTest().addressbookHomeWithUID("home_version", create=True)
         self.assertTrue(home is not None)
         yield self.transactionUnderTest().commit
 
         txn = yield self.transactionUnderTest()
-        version = yield txn.calendarserverValue("ADDRESSBOOK-DATAVERSION")[0][0]
+        version = yield txn.calendarserverValue("ADDRESSBOOK-DATAVERSION")
         ch = schema.ADDRESSBOOK_HOME
-        homeVersion = yield Select(
+        homeVersion = (yield Select(
             [ch.DATAVERSION, ],
             From=ch,
             Where=ch.OWNER_UID == "home_version",
-        ).on(txn)[0][0]
-        self.assertEqual(int(homeVersion, version))
+        ).on(txn))[0][0]
+        self.assertEqual(int(homeVersion), int(version))
 
 
     @inlineCallbacks

Modified: CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -114,17 +114,17 @@
         self.assertTrue(r1 is not None)
         self.assertTrue(r2 is not None)
 
-        self.assertFailure(
+        yield self.assertFailure(
             conduit.validRequest("bogus01", "user02"),
             DirectoryRecordNotFoundError
         )
 
-        self.assertFailure(
+        yield self.assertFailure(
             conduit.validRequest("user01", "bogus02"),
             DirectoryRecordNotFoundError
         )
 
-        self.assertFailure(
+        yield self.assertFailure(
             conduit.validRequest("user01", "user02"),
             FailedCrossPodRequestError
         )

Modified: CalendarServer/trunk/txdav/common/datastore/test/accounts/accounts.xml
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/test/accounts/accounts.xml	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/common/datastore/test/accounts/accounts.xml	2014-12-10 22:33:11 UTC (rev 14215)
@@ -165,6 +165,13 @@
     <email>home_attachments at example.com</email>
   </record>
   <record type="user">
+    <uid>home_version</uid>
+    <short-name>home_version</short-name>
+    <password>home_version</password>
+    <full-name>Home Version</full-name>
+    <email>home_version at example.com</email>
+  </record>
+  <record type="user">
     <uid>xyzzy</uid>
     <short-name>xyzzy</short-name>
     <password>xyzzy</password>

Modified: CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -284,7 +284,7 @@
 
         # old sync token fails
         calendar = yield self.calendarUnderTest(home="user01", name="calendar")
-        self.failUnlessFailure(calendar.resourceNamesSinceToken(token), SyncTokenValidException)
+        yield self.failUnlessFailure(calendar.resourceNamesSinceToken(token), SyncTokenValidException)
 
 
     @inlineCallbacks
@@ -332,8 +332,8 @@
 
         # old sync token fails
         home = yield self.homeUnderTest(name="user01")
-        self.failUnlessFailure(home.resourceNamesSinceToken(token, "1"), SyncTokenValidException)
-        self.failUnlessFailure(home.resourceNamesSinceToken(token, "infinity"), SyncTokenValidException)
+        yield self.failUnlessFailure(home.resourceNamesSinceToken(token, "1"), SyncTokenValidException)
+        yield self.failUnlessFailure(home.resourceNamesSinceToken(token, "infinity"), SyncTokenValidException)
 
 
     @inlineCallbacks
@@ -384,7 +384,7 @@
 
         # old sync token fails
         addressbook = yield self.addressbookUnderTest(home="user01", name="addressbook")
-        self.failUnlessFailure(addressbook.resourceNamesSinceToken(token), SyncTokenValidException)
+        yield self.failUnlessFailure(addressbook.resourceNamesSinceToken(token), SyncTokenValidException)
 
 
     @inlineCallbacks
@@ -470,4 +470,4 @@
 
         # old sync token fails
         addressbook = yield self.addressbookUnderTest(home="user01", name="addressbook")
-        self.failUnlessFailure(addressbook.resourceNamesSinceToken(token), SyncTokenValidException)
+        yield self.failUnlessFailure(addressbook.resourceNamesSinceToken(token), SyncTokenValidException)

Modified: CalendarServer/trunk/txdav/dps/test/test_client.py
===================================================================
--- CalendarServer/trunk/txdav/dps/test/test_client.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/dps/test/test_client.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -125,6 +125,7 @@
         self.assertEquals(record.uid, testUID)
 
 
+    @inlineCallbacks
     def test_guid(self):
         if testMode == "od":
             record = (yield self.directory.recordWithGUID(testUID))
@@ -454,6 +455,7 @@
         self.assertEquals(record.uid, self.wsanchezUID)
 
 
+    @inlineCallbacks
     def test_guid(self):
         record = yield self.client.recordWithGUID(self.wsanchezUID)
         self.assertTrue(u"wsanchez" in record.shortNames)
@@ -464,7 +466,7 @@
         records = (yield self.client.recordsWithRecordType(
             RecordType.user
         ))
-        self.assertEquals(len(records), 243)
+        self.assertEquals(len(records), 244)
 
 
     @inlineCallbacks

Modified: CalendarServer/trunk/txdav/who/cache.py
===================================================================
--- CalendarServer/trunk/txdav/who/cache.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/who/cache.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -87,7 +87,13 @@
         self._expireSeconds = expireSeconds
         self.resetCache()
 
+#        from txdav.who.augment import AugmentedDirectoryService
+#        if isinstance(self._directory, AugmentedDirectoryService):
+#            for ds in self._directory._directory.services:
+#                if hasattr(ds, "setMasterDirectory"):
+#                    ds.setMasterDirectory(self)
 
+
     def _addTiming(self, key, duration):
         if self._directoryTiming:
             self._directory._addTiming(key, duration)

Modified: CalendarServer/trunk/txdav/who/test/test_cache.py
===================================================================
--- CalendarServer/trunk/txdav/who/test/test_cache.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/who/test/test_cache.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -60,7 +60,7 @@
         self.assertTrue(CalRecordType.resource in dir.recordTypes())
 
         records = yield dir.recordsWithRecordType(RecordType.user)
-        self.assertEquals(len(records), 243)
+        self.assertEquals(len(records), 244)
 
         record = yield dir.recordWithGUID(uuid.UUID("8166C681-2D08-4846-90F7-97023A6EDDC5"))
         self.assertEquals(record.uid, u"cache-uid-1")

Modified: CalendarServer/trunk/txdav/who/test/test_groups.py
===================================================================
--- CalendarServer/trunk/txdav/who/test/test_groups.py	2014-12-10 22:30:11 UTC (rev 14214)
+++ CalendarServer/trunk/txdav/who/test/test_groups.py	2014-12-10 22:33:11 UTC (rev 14215)
@@ -163,7 +163,7 @@
         txn = store.newTransaction()
 
         # Non-existent groupID
-        self.failUnlessFailure(txn.groupByID(42), NotFoundError)
+        yield self.failUnlessFailure(txn.groupByID(42), NotFoundError)
 
         uid = u"__top_group_1__"
         hash = "553eb54e3bbb26582198ee04541dbee4"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20141210/4d5faada/attachment-0001.html>


More information about the calendarserver-changes mailing list