[CalendarServer-changes] [13809] CalendarServer/trunk/txdav
source_changes at macosforge.org
source_changes at macosforge.org
Thu Jul 31 13:15:15 PDT 2014
Revision: 13809
http://trac.calendarserver.org//changeset/13809
Author: cdaboo at apple.com
Date: 2014-07-31 13:15:15 -0700 (Thu, 31 Jul 2014)
Log Message:
-----------
Whitespace.
Modified Paths:
--------------
CalendarServer/trunk/txdav/carddav/datastore/index_file.py
CalendarServer/trunk/txdav/carddav/datastore/query/test/test_filter.py
CalendarServer/trunk/txdav/carddav/datastore/sql.py
CalendarServer/trunk/txdav/carddav/datastore/test/common.py
CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py
CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py
CalendarServer/trunk/txdav/carddav/datastore/test/test_sql_sharing.py
CalendarServer/trunk/txdav/carddav/datastore/util.py
CalendarServer/trunk/txdav/common/datastore/file.py
CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py
CalendarServer/trunk/txdav/common/datastore/podding/test/test_resource.py
CalendarServer/trunk/txdav/common/datastore/sql.py
CalendarServer/trunk/txdav/common/datastore/sql_tables.py
CalendarServer/trunk/txdav/common/datastore/test/test_sql.py
CalendarServer/trunk/txdav/common/datastore/test/test_sql_schema_files.py
CalendarServer/trunk/txdav/common/datastore/test/test_sql_tables.py
CalendarServer/trunk/txdav/common/datastore/test/util.py
CalendarServer/trunk/txdav/common/datastore/upgrade/migrate.py
CalendarServer/trunk/txdav/common/datastore/upgrade/sql/test/test_upgrade.py
CalendarServer/trunk/txdav/common/datastore/upgrade/sql/upgrades/addressbook_upgrade_from_1_to_2.py
CalendarServer/trunk/txdav/common/datastore/upgrade/test/test_migrate.py
CalendarServer/trunk/txdav/common/datastore/work/revision_cleanup.py
CalendarServer/trunk/txdav/common/datastore/work/test/test_inbox_cleanup.py
CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py
CalendarServer/trunk/txdav/dps/client.py
CalendarServer/trunk/txdav/dps/server.py
CalendarServer/trunk/txdav/dps/test/test_client.py
CalendarServer/trunk/txdav/who/augment.py
CalendarServer/trunk/txdav/who/directory.py
CalendarServer/trunk/txdav/who/test/support.py
CalendarServer/trunk/txdav/who/test/test_group_attendees.py
CalendarServer/trunk/txdav/who/test/test_group_sharees.py
CalendarServer/trunk/txdav/who/vcard.py
CalendarServer/trunk/txdav/xml/base.py
CalendarServer/trunk/txdav/xml/parser_sax.py
CalendarServer/trunk/txdav/xml/rfc2518.py
CalendarServer/trunk/txdav/xml/rfc5842.py
CalendarServer/trunk/txdav/xml/test/test_xml.py
CalendarServer/trunk/txdav/xml/xmlext.py
Modified: CalendarServer/trunk/txdav/carddav/datastore/index_file.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/index_file.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/index_file.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -81,15 +81,16 @@
def reserveUID(self, uid):
uid = uid.encode('utf-8')
self.log.debug("Reserving UID %r @ %r" % (
- uid,
- self.index.resource.fp.path))
+ uid,
+ self.index.resource.fp.path
+ ))
def _handleFalse(result):
if result is False:
raise ReservationError(
"UID %s already reserved for address book collection %s."
% (uid, self.index.resource)
- )
+ )
d = self.getCachePool().add(self._key(uid),
'reserved',
@@ -101,15 +102,16 @@
def unreserveUID(self, uid):
uid = uid.encode('utf-8')
self.log.debug("Unreserving UID %r @ %r" % (
- uid,
- self.index.resource.fp.path))
+ uid,
+ self.index.resource.fp.path
+ ))
def _handleFalse(result):
if result is False:
raise ReservationError(
"UID %s is not reserved for address book collection %s."
% (uid, self.index.resource)
- )
+ )
d = self.getCachePool().delete(self._key(uid))
d.addCallback(_handleFalse)
@@ -119,8 +121,9 @@
def isReservedUID(self, uid):
uid = uid.encode('utf-8')
self.log.debug("Is reserved UID %r @ %r" % (
- uid,
- self.index.resource.fp.path))
+ uid,
+ self.index.resource.fp.path
+ ))
def _checkValue((flags, value)):
if value is None:
@@ -174,7 +177,7 @@
raise ReservationError(
"UID %s is not reserved for address book collection %s."
% (uid, self.index.resource)
- )
+ )
else:
try:
self.index._db_execute(
@@ -647,7 +650,7 @@
except ValueError:
log.error("Non-addressbook resource: %s" % (name,))
else:
- #log.info("Indexing resource: %s" % (name,))
+ # log.info("Indexing resource: %s" % (name,))
self.addResource(name, vcard, True)
finally:
stream.close()
Modified: CalendarServer/trunk/txdav/carddav/datastore/query/test/test_filter.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/query/test/test_filter.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/query/test/test_filter.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -42,7 +42,7 @@
filter = carddavxml.Filter(
*[carddavxml.PropertyFilter(
carddavxml.TextMatch.fromString("Example"),
- **{"name":"UID"}
+ **{"name": "UID"}
)]
)
filter = Filter(filter)
@@ -64,7 +64,7 @@
filter = carddavxml.Filter(
*[carddavxml.PropertyFilter(
carddavxml.TextMatch.fromString("Example"),
- **{"name":"UID"}
+ **{"name": "UID"}
)]
)
filter = Filter(filter)
@@ -85,7 +85,7 @@
filter = carddavxml.Filter(
*[carddavxml.PropertyFilter(
carddavxml.TextMatch.fromString("Example"),
- **{"name":"UID"}
+ **{"name": "UID"}
)]
)
filter = Filter(filter)
Modified: CalendarServer/trunk/txdav/carddav/datastore/sql.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/sql.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/sql.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -576,12 +576,18 @@
@classproperty
def _deleteBumpTokenQuery(cls): #@NoSelf
rev = cls._revisionsSchema
- return Update({rev.REVISION: schema.REVISION_SEQ,
- rev.OBJECT_RESOURCE_ID: Parameter("id"),
- rev.DELETED: True},
- Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
- rev.RESOURCE_NAME == Parameter("name")),
- Return=rev.REVISION)
+ return Update(
+ {
+ rev.REVISION: schema.REVISION_SEQ,
+ rev.OBJECT_RESOURCE_ID: Parameter("id"),
+ rev.DELETED: True
+ },
+ Where=(
+ rev.RESOURCE_ID == Parameter("resourceID")).And(
+ rev.RESOURCE_NAME == Parameter("name")
+ ),
+ Return=rev.REVISION
+ )
@inlineCallbacks
@@ -694,7 +700,7 @@
bindRevisions = [self._bindRevision] if self.fullyShared() else []
groupBindRows = yield AddressBookObject._acceptedBindForHomeIDAndAddressBookID.on(
- self._txn, homeID=self._home._resourceID, addressbookID=self._resourceID
+ self._txn, homeID=self._home._resourceID, addressbookID=self._resourceID
)
if groupBindRows:
bindRevisions += [groupBindRow[self.bindColumns().index(self._bindSchema.BIND_REVISION)] for groupBindRow in groupBindRows]
@@ -731,17 +737,17 @@
# get revision table changes
rev = self._revisionsSchema
results = [(
- name,
- id,
- wasdeleted,
- ) for name, id, wasdeleted in (
- yield Select(
- [rev.RESOURCE_NAME, rev.OBJECT_RESOURCE_ID, rev.DELETED],
- From=rev,
- Where=(rev.REVISION > revision).And(
+ name,
+ id,
+ wasdeleted,
+ ) for name, id, wasdeleted in (
+ yield Select(
+ [rev.RESOURCE_NAME, rev.OBJECT_RESOURCE_ID, rev.DELETED],
+ From=rev,
+ Where=(rev.REVISION > revision).And(
rev.RESOURCE_ID == self._resourceID)
- ).on(self._txn)
- ) if name
+ ).on(self._txn)
+ ) if name
]
# get deleted object names if any
@@ -874,7 +880,7 @@
self._objects.pop(child.uid(), None)
if self._objectNames and child.name() in self._objectNames:
self._objectNames.remove(child.name())
- #yield self._deleteRevision(child.name())
+ # yield self._deleteRevision(child.name())
yield self.notifyChanged()
@@ -1016,11 +1022,12 @@
X-ADDRESSBOOKSERVER-KIND:group
END:VCARD
""".replace("\n", "\r\n").format(
- prodid=vCardProductID,
- uid=uid,
- fn=fn,
- n=n,
- ))
+ prodid=vCardProductID,
+ uid=uid,
+ fn=fn,
+ n=n,
+ )
+ )
# then get member UIDs
abo = schema.ADDRESSBOOK_OBJECT
@@ -1282,10 +1289,11 @@
DAL query to find members and revisions
"""
aboMembers = schema.ABO_MEMBERS
- return Select([aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
- From=aboMembers,
- Where=aboMembers.GROUP_ID.In(Parameter("groupIDs", len(groupIDs))),
- )
+ return Select(
+ [aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
+ From=aboMembers,
+ Where=aboMembers.GROUP_ID.In(Parameter("groupIDs", len(groupIDs))),
+ )
@classmethod
@@ -1294,11 +1302,12 @@
DAL query to find members and revisions
"""
aboMembers = schema.ABO_MEMBERS
- return Select([aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
- From=aboMembers,
- Where=aboMembers.GROUP_ID.In(Parameter("groupIDs", len(groupIDs)))
- .And(aboMembers.REVISION <= Parameter("revision")),
- )
+ return Select(
+ [aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
+ From=aboMembers,
+ Where=aboMembers.GROUP_ID.In(Parameter("groupIDs", len(groupIDs))).And(
+ aboMembers.REVISION <= Parameter("revision")),
+ )
@classmethod
@@ -1761,7 +1770,7 @@
acceptedBindCount = 1 if addressbookAsShared.fullyShared() else 0
groupBindRows = yield AddressBookObject._acceptedBindForHomeIDAndAddressBookID.on(
- self._txn, homeID=shareeHome._resourceID, addressbookID=addressbookAsShared._resourceID
+ self._txn, homeID=shareeHome._resourceID, addressbookID=addressbookAsShared._resourceID
)
acceptedBindCount += len(groupBindRows)
if acceptedBindCount == 1:
@@ -1770,7 +1779,7 @@
shareeHome._children.pop(addressbookAsShared._resourceID, None)
else:
yield addressbookAsShared.notifyPropertyChanged()
- #update revision in all remaining bind table rows for this address book
+ # update revision in all remaining bind table rows for this address book
for groupBindRow in groupBindRows:
groupObject = yield addressbookAsShared.objectResourceWithID(
groupBindRow[self.bindColumns().index(self._bindSchema.RESOURCE_ID)]
@@ -1784,7 +1793,8 @@
yield shareeHome.notifyChanged()
# delete bind table rows for this share
- yield self._deleteBindForResourceIDAndHomeID.on(self._txn,
+ yield self._deleteBindForResourceIDAndHomeID.on(
+ self._txn,
resourceID=self._resourceID, homeID=shareeHome._resourceID
)
@@ -2044,8 +2054,10 @@
if partiallyShared:
readWriteGroupIDs = yield self.addressbook().readWriteGroupIDs()
readWriteObjectIDs = (
- set((yield self.addressbook().expandGroupIDs(self._txn, readWriteGroupIDs)))
- if readWriteGroupIDs else set()
+ set(
+ (yield self.addressbook().expandGroupIDs(self._txn, readWriteGroupIDs))
+ )
+ if readWriteGroupIDs else set()
)
# can't delete item in read-only shared group, even if user has addressbook unbind
if self._resourceID not in readWriteObjectIDs:
@@ -2056,7 +2068,8 @@
# get groups where this object was once a member and version info
aboMembers = schema.ABO_MEMBERS
- groupRows = yield Select([aboMembers.GROUP_ID, aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
+ groupRows = yield Select(
+ [aboMembers.GROUP_ID, aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
From=aboMembers,
Where=aboMembers.MEMBER_ID == self._resourceID,
).on(self._txn)
@@ -2071,7 +2084,7 @@
# see if this object is in current version
groupIDs = set([
groupID for groupID, memberRows in groupIDToMemberRowMap.iteritems()
- if self._resourceID in AddressBook._currentMemberIDsFromMemberIDRemovedRevisionRows(memberRows)
+ if self._resourceID in AddressBook._currentMemberIDsFromMemberIDRemovedRevisionRows(memberRows)
])
if partiallyShared:
@@ -2082,7 +2095,8 @@
# add to member table rows marked removed
for groupIDToRemoveFrom in groupIDsToRemoveFrom:
- yield self._insertMemberIDQuery.on(self._txn,
+ yield self._insertMemberIDQuery.on(
+ self._txn,
groupID=groupIDToRemoveFrom,
addressbookID=self._ownerAddressBookResourceID,
memberID=self._resourceID,
@@ -2252,7 +2266,7 @@
"_created",
"_modified",
"_dataversion",
- )
+ )
@classmethod
@@ -2431,12 +2445,12 @@
@classmethod
def _resourceIDAndUIDForUIDsAndAddressBookResourceIDQuery(cls, uids):
abo = schema.ADDRESSBOOK_OBJECT
- return Select([abo.RESOURCE_ID, abo.VCARD_UID],
- From=abo,
- Where=((abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookResourceID")
- ).And(
- abo.VCARD_UID.In(Parameter("uids", len(uids))))),
- )
+ return Select(
+ [abo.RESOURCE_ID, abo.VCARD_UID],
+ From=abo,
+ Where=((abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookResourceID")).And(
+ abo.VCARD_UID.In(Parameter("uids", len(uids))))),
+ )
@classmethod
@@ -2445,7 +2459,8 @@
return Delete(
aboForeignMembers,
Where=(aboForeignMembers.GROUP_ID == groupID).And(
- aboForeignMembers.MEMBER_ADDRESS.In(Parameter("memberAddrs", len(memberAddrs)))))
+ aboForeignMembers.MEMBER_ADDRESS.In(Parameter("memberAddrs", len(memberAddrs))))
+ )
@classproperty
@@ -2469,7 +2484,8 @@
abo.RESOURCE_ID,
abo.CREATED,
abo.MODIFIED
- ))
+ )
+ )
@classproperty
@@ -2610,7 +2626,8 @@
# add to member table rows
for groupID in groupIDs:
- yield self._insertMemberIDQuery.on(self._txn,
+ yield self._insertMemberIDQuery.on(
+ self._txn,
groupID=groupID,
addressbookID=self._ownerAddressBookResourceID,
memberID=self._resourceID,
@@ -2653,8 +2670,8 @@
# get current foreign members
currentForeignMemberRows = yield Select(
[aboForeignMembers.MEMBER_ADDRESS],
- From=aboForeignMembers,
- Where=aboForeignMembers.GROUP_ID == self._resourceID,
+ From=aboForeignMembers,
+ Where=aboForeignMembers.GROUP_ID == self._resourceID,
).on(self._txn)
currentForeignMemberAddrs = [currentForeignMemberRow[0] for currentForeignMemberRow in currentForeignMemberRows]
@@ -2731,9 +2748,9 @@
# get foreign members
aboForeignMembers = schema.ABO_FOREIGN_MEMBERS
foreignMemberRows = yield Select(
- [aboForeignMembers.MEMBER_ADDRESS],
- From=aboForeignMembers,
- Where=aboForeignMembers.GROUP_ID == self._resourceID,
+ [aboForeignMembers.MEMBER_ADDRESS],
+ From=aboForeignMembers,
+ Where=aboForeignMembers.GROUP_ID == self._resourceID,
).on(self._txn)
foreignMembers = [foreignMemberRow[0] for foreignMemberRow in foreignMemberRows]
@@ -2788,12 +2805,14 @@
bind = cls._bindSchema
child = cls._objectSchema
columns = cls.bindColumns() + cls.additionalBindColumns() + cls.metadataColumns()
- return Select(columns,
- From=child.join(
- bind, child.RESOURCE_ID == bind.RESOURCE_ID,
- 'left outer'),
- Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")
- ).And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED))
+ return Select(
+ columns,
+ From=child.join(
+ bind, child.RESOURCE_ID == bind.RESOURCE_ID,
+ 'left outer'),
+ Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")).And(
+ bind.BIND_STATUS == _BIND_STATUS_ACCEPTED)
+ )
def notifyPropertyChanged(self):
@@ -2806,10 +2825,11 @@
@classproperty
def _addressbookIDForResourceID(cls): #@NoSelf
obj = cls._objectSchema
- return Select([obj.PARENT_RESOURCE_ID],
- From=obj,
- Where=obj.RESOURCE_ID == Parameter("resourceID")
- )
+ return Select(
+ [obj.PARENT_RESOURCE_ID],
+ From=obj,
+ Where=obj.RESOURCE_ID == Parameter("resourceID")
+ )
@classmethod
@@ -2824,12 +2844,12 @@
bind = cls._bindSchema
abo = cls._objectSchema
return Select(
- cls.bindColumns() + cls.additionalBindColumns(),
- From=bind.join(abo),
- Where=(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED)
- .And(bind.RESOURCE_ID == abo.RESOURCE_ID)
- .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
- .And(abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
+ cls.bindColumns() + cls.additionalBindColumns(),
+ From=bind.join(abo),
+ Where=(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED).And(
+ bind.RESOURCE_ID == abo.RESOURCE_ID).And(
+ bind.HOME_RESOURCE_ID == Parameter("homeID")).And(
+ abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
)
@@ -2838,12 +2858,12 @@
bind = cls._bindSchema
abo = cls._objectSchema
return Select(
- cls.bindColumns() + cls.additionalBindColumns(),
- From=bind.join(abo),
- Where=(bind.BIND_STATUS != _BIND_STATUS_ACCEPTED)
- .And(bind.RESOURCE_ID == abo.RESOURCE_ID)
- .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
- .And(abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
+ cls.bindColumns() + cls.additionalBindColumns(),
+ From=bind.join(abo),
+ Where=(bind.BIND_STATUS != _BIND_STATUS_ACCEPTED).And(
+ bind.RESOURCE_ID == abo.RESOURCE_ID).And(
+ bind.HOME_RESOURCE_ID == Parameter("homeID")).And(
+ abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
)
@@ -2852,11 +2872,11 @@
bind = cls._bindSchema
abo = cls._objectSchema
return Select(
- cls.bindColumns() + cls.additionalBindColumns(),
- From=bind.join(abo),
- Where=(bind.RESOURCE_ID == abo.RESOURCE_ID)
- .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
- .And(abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
+ cls.bindColumns() + cls.additionalBindColumns(),
+ From=bind.join(abo),
+ Where=(bind.RESOURCE_ID == abo.RESOURCE_ID).And(
+ bind.HOME_RESOURCE_ID == Parameter("homeID")).And(
+ abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
)
Modified: CalendarServer/trunk/txdav/carddav/datastore/test/common.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/test/common.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/test/common.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -109,7 +109,7 @@
vcard4notCardDAV_text = (# Missing UID, N and FN
-"""BEGIN:VCARD
+ """BEGIN:VCARD
VERSION:3.0
EMAIL;type=INTERNET;type=WORK;type=pref:lthompson at example.com
TEL;type=WORK;type=pref:1-555-555-5555
@@ -208,8 +208,8 @@
"""
return (
txn.addressbookHomeWithUID(name if name else "home1")
- if txn
- else self.transactionUnderTest().addressbookHomeWithUID(name if name else "home1")
+ if txn
+ else self.transactionUnderTest().addressbookHomeWithUID(name if name else "home1")
)
@@ -218,8 +218,10 @@
"""
Get the addressbook detailed by C{requirements['home1']['addressbook']}.
"""
- returnValue((yield (yield self.homeUnderTest(txn=txn, name=home))
- .addressbookWithName(name if name else "addressbook")))
+ returnValue((
+ yield (yield self.homeUnderTest(txn=txn, name=home))
+ .addressbookWithName(name if name else "addressbook")
+ ))
@inlineCallbacks
@@ -294,8 +296,10 @@
provides L{IAddressBookHome} and has a C{uid()} method that returns the
same value that was passed in.
"""
- addressbookHome = (yield self.transactionUnderTest()
- .addressbookHomeWithUID("home1"))
+ addressbookHome = (
+ yield self.transactionUnderTest()
+ .addressbookHomeWithUID("home1")
+ )
self.assertEquals(addressbookHome.uid(), "home1")
self.assertProvides(IAddressBookHome, addressbookHome)
@@ -357,7 +361,7 @@
"""
home = yield self.homeUnderTest()
name = "addressbook"
- #self.assertIdentical((yield home.addressbookWithName(name)), None)
+ # self.assertIdentical((yield home.addressbookWithName(name)), None)
yield home.removeAddressBookWithName(name)
self.assertNotIdentical((yield home.addressbookWithName(name)), None)
# notify is called prior to commit
@@ -713,9 +717,11 @@
text.
"""
yield self.failUnlessFailure(
- maybeDeferred((yield self.addressbookUnderTest())
+ maybeDeferred(
+ (yield self.addressbookUnderTest())
.createAddressBookObjectWithName,
- "new", VComponent.fromString(vcard4notCardDAV_text)),
+ "new", VComponent.fromString(vcard4notCardDAV_text)
+ ),
InvalidObjectResourceError
)
@@ -728,8 +734,10 @@
"""
addressbookObject = (yield self.addressbookObjectUnderTest())
yield self.failUnlessFailure(
- maybeDeferred(addressbookObject.setComponent,
- VComponent.fromString(vcard4notCardDAV_text)),
+ maybeDeferred(
+ addressbookObject.setComponent,
+ VComponent.fromString(vcard4notCardDAV_text)
+ ),
InvalidObjectResourceError
)
Modified: CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -99,9 +99,10 @@
Filenames starting with "." are reserved by this
implementation, so no UIDs may start with ".".
"""
- self.assertEquals(
- (yield self.addressbookStore.newTransaction(self.id()
- ).addressbookHomeWithUID(".xyzzy")),
+ self.assertEquals((
+ yield self.addressbookStore.newTransaction(
+ self.id())
+ .addressbookHomeWithUID(".xyzzy")),
None
)
@@ -235,8 +236,7 @@
)
self.assertEquals(
addressbookObject.component(),
- (yield self.addressbook1.addressbookObjectWithName("1.vcf")
- ).component()
+ (yield self.addressbook1.addressbookObjectWithName("1.vcf")).component()
)
Modified: CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -40,7 +40,7 @@
from txdav.common.icommondatastore import NoSuchObjectResourceError
from txdav.common.datastore.sql import EADDRESSBOOKTYPE, CommonObjectResource
-from txdav.common.datastore.sql_tables import _ABO_KIND_PERSON, _ABO_KIND_GROUP, schema
+from txdav.common.datastore.sql_tables import _ABO_KIND_PERSON, _ABO_KIND_GROUP, schema
from txdav.common.datastore.test.util import cleanStore
from txdav.carddav.datastore.sql import AddressBook
@@ -160,8 +160,8 @@
toHome = yield self.transactionUnderTest().addressbookHomeWithUID(
"new-home", create=True)
toAddressbook = yield toHome.addressbookWithName("addressbook")
- ok, bad = (yield _migrateAddressbook(fromAddressbook, toAddressbook,
- lambda x: x.component()))
+ ok, bad = (yield _migrateAddressbook(
+ fromAddressbook, toAddressbook, lambda x: x.component()))
self.assertEqual(ok, 1)
self.assertEqual(bad, 1)
@@ -362,7 +362,7 @@
txn2 = addressbookStore.newTransaction()
notification_uid1_1 = yield txn1.notificationsWithUID(
- "uid1",
+ "uid1",
)
@inlineCallbacks
@@ -415,7 +415,7 @@
UID:uid1
END:VCARD
""".replace("\n", "\r\n")
- )
+ )
self.assertEqual(person.resourceUID(), "uid1")
abObject = yield adbk.createAddressBookObjectWithName("1.vcf", person)
self.assertEqual(abObject.uid(), "uid1")
@@ -461,7 +461,7 @@
UID:uid1
END:VCARD
""".replace("\n", "\r\n")
- )
+ )
self.assertEqual(person.resourceKind(), None)
abObject = yield adbk.createAddressBookObjectWithName("p.vcf", person)
self.assertEqual(abObject.kind(), _ABO_KIND_PERSON)
@@ -478,7 +478,7 @@
X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:uid1
END:VCARD
""".replace("\n", "\r\n")
- )
+ )
abObject = self.assertEqual(group.resourceKind(), "group")
abObject = yield adbk.createAddressBookObjectWithName("g.vcf", group)
self.assertEqual(abObject.kind(), _ABO_KIND_GROUP)
@@ -495,7 +495,7 @@
X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:uid1
END:VCARD
""".replace("\n", "\r\n")
- )
+ )
abObject = self.assertEqual(badgroup.resourceKind(), "badgroup")
abObject = yield adbk.createAddressBookObjectWithName("bg.vcf", badgroup)
self.assertEqual(abObject.kind(), _ABO_KIND_PERSON)
@@ -553,7 +553,7 @@
UID:uid1
END:VCARD
""".replace("\n", "\r\n")
- )
+ )
self.assertEqual(person.resourceKind(), None)
personObject = yield adbk.createAddressBookObjectWithName("p.vcf", person)
@@ -569,7 +569,7 @@
X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:uid3
END:VCARD
""".replace("\n", "\r\n")
- )
+ )
groupObject = yield adbk.createAddressBookObjectWithName("g.vcf", group)
aboMembers = schema.ABO_MEMBERS
@@ -592,14 +592,14 @@
X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:uid1
END:VCARD
""".replace("\n", "\r\n")
- )
+ )
subgroupObject = yield adbk.createAddressBookObjectWithName("sg.vcf", subgroup)
memberRows = yield Select([aboMembers.GROUP_ID, aboMembers.MEMBER_ID], From=aboMembers, Where=aboMembers.REMOVED == False).on(txn)
self.assertEqual(sorted(memberRows), sorted([
- [groupObject._resourceID, subgroupObject._resourceID],
- [subgroupObject._resourceID, personObject._resourceID],
- ]))
+ [groupObject._resourceID, subgroupObject._resourceID],
+ [subgroupObject._resourceID, personObject._resourceID],
+ ]))
foreignMemberRows = yield Select([aboForeignMembers.GROUP_ID, aboForeignMembers.MEMBER_ADDRESS], From=aboForeignMembers).on(txn)
self.assertEqual(foreignMemberRows, [])
@@ -617,7 +617,7 @@
# see if this object is in current version
groupIDs = set([
groupID for groupID, memberIDRemovedRevisionRows in groupIDToMemberRowMap.iteritems()
- if AddressBook._currentMemberIDsFromMemberIDRemovedRevisionRows(memberIDRemovedRevisionRows)
+ if AddressBook._currentMemberIDsFromMemberIDRemovedRevisionRows(memberIDRemovedRevisionRows)
])
self.assertEqual(len(groupIDs), 0)
@@ -639,9 +639,11 @@
"""
prop = schema.RESOURCE_PROPERTY
- _allWithID = Select([prop.NAME, prop.VIEWER_UID, prop.VALUE],
- From=prop,
- Where=prop.RESOURCE_ID == Parameter("resourceID"))
+ _allWithID = Select(
+ [prop.NAME, prop.VIEWER_UID, prop.VALUE],
+ From=prop,
+ Where=prop.RESOURCE_ID == Parameter("resourceID")
+ )
# Create address book and add a property
home = yield self.homeUnderTest()
@@ -691,9 +693,11 @@
resourceID = addressobject._resourceID
prop = schema.RESOURCE_PROPERTY
- _allWithID = Select([prop.NAME, prop.VIEWER_UID, prop.VALUE],
- From=prop,
- Where=prop.RESOURCE_ID == Parameter("resourceID"))
+ _allWithID = Select(
+ [prop.NAME, prop.VIEWER_UID, prop.VALUE],
+ From=prop,
+ Where=prop.RESOURCE_ID == Parameter("resourceID")
+ )
# No properties on existing address book object
rows = yield _allWithID.on(self.transactionUnderTest(), resourceID=resourceID)
Modified: CalendarServer/trunk/txdav/carddav/datastore/test/test_sql_sharing.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/test/test_sql_sharing.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/test/test_sql_sharing.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -111,24 +111,24 @@
@classproperty(cache=False)
def requirements(cls): #@NoSelf
return {
- "user01": {
- "addressbook": {
- "card1.vcf": cls.card1,
- "card2.vcf": cls.card2,
- "card3.vcf": cls.card3,
- "group1.vcf": cls.group1,
- "group2.vcf": cls.group2,
+ "user01": {
+ "addressbook": {
+ "card1.vcf": cls.card1,
+ "card2.vcf": cls.card2,
+ "card3.vcf": cls.card3,
+ "group1.vcf": cls.group1,
+ "group2.vcf": cls.group2,
+ },
},
- },
- "user02": {
- "addressbook": {
+ "user02": {
+ "addressbook": {
+ },
},
- },
- "user03": {
- "addressbook": {
+ "user03": {
+ "addressbook": {
+ },
},
- },
- }
+ }
fully_shared_children = ["addressbook.vcf", "group1.vcf", "group2.vcf", "card1.vcf", "card2.vcf", "card3.vcf", ]
all_children = ["group1.vcf", "group2.vcf", "card1.vcf", "card2.vcf", "card3.vcf", ]
@@ -1174,15 +1174,15 @@
self.assertEqual(len(invalid), 0)
for depth, result in (
- ("1", ['addressbook/',
- 'user01/', ]
- ),
- ("infinity", ['addressbook/',
- 'user01/',
- 'user01/card1.vcf',
- 'user01/card2.vcf',
- 'user01/group1.vcf']
- )):
+ ("1", ['addressbook/', 'user01/', ]),
+ ("infinity", [
+ 'addressbook/',
+ 'user01/',
+ 'user01/card1.vcf',
+ 'user01/card2.vcf',
+ 'user01/group1.vcf'
+ ])
+ ):
changed, deleted, invalid = yield otherAB.viewerHome().resourceNamesSinceRevision(0, depth)
self.assertEqual(set(changed), set(result))
self.assertEqual(len(deleted), 0)
Modified: CalendarServer/trunk/txdav/carddav/datastore/util.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/util.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/util.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -52,7 +52,7 @@
raise InvalidObjectResourceError(
"UID may not change (%s != %s)" % (
component.resourceUID(), addressbookObject.uid()
- )
+ )
)
except NoSuchObjectResourceError:
pass
Modified: CalendarServer/trunk/txdav/common/datastore/file.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/file.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/file.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -63,7 +63,6 @@
import uuid
from twistedcaldav.sql import AbstractSQLDatabase, db_prefix
import os
-import types
ECALENDARTYPE = 0
EADDRESSBOOKTYPE = 1
@@ -520,7 +519,8 @@
def addOrUpdateRecord(self, record):
- self._db_execute("""insert or replace into SHARES (SHAREUID, SHARETYPE, HOSTURL, LOCALNAME, SUMMARY)
+ self._db_execute(
+ """insert or replace into SHARES (SHAREUID, SHARETYPE, HOSTURL, LOCALNAME, SUMMARY)
values (:1, :2, :3, :4, :5)
""", record.shareuid, record.sharetype, record.hosturl, record.localname, record.summary,
)
@@ -613,7 +613,7 @@
def _makeRecord(self, row):
- return SharedCollectionRecord(*[str(item) if type(item) == types.UnicodeType else item for item in row])
+ return SharedCollectionRecord(*[str(item) if isinstance(item, unicode) else item for item in row])
@@ -758,7 +758,7 @@
self.childWithName(name)
for name in self._path.listdir()
if not name.startswith(".") and
- name not in self._removedChildren
+ name not in self._removedChildren
)
# For file store there is no efficient "bulk" load of all children so just
@@ -776,8 +776,8 @@
name
for name in self._path.listdir()
if not name.startswith(".") and
- self._path.child(name).isdir() and
- name not in self._removedChildren
+ self._path.child(name).isdir() and
+ name not in self._removedChildren
))
@@ -1535,8 +1535,7 @@
# Return undo
return lambda: home._path.child(collectionName).remove()
- txn.addOperation(do, "create notification child %r" %
- (collectionName,))
+ txn.addOperation(do, "create notification child %r" % (collectionName,))
return c
notificationObjects = CommonHomeChild.objectResources
Modified: CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -82,25 +82,25 @@
@classproperty(cache=False)
def requirements(cls): #@NoSelf
return {
- "user01": {
- "calendar_1": {
+ "user01": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
},
- "inbox": {
+ "user02": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
},
- },
- "user02": {
- "calendar_1": {
+ "user03": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
},
- "inbox": {
- },
- },
- "user03": {
- "calendar_1": {
- },
- "inbox": {
- },
- },
- }
+ }
@inlineCallbacks
@@ -274,7 +274,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- shared = yield calendar1.shareeView("puser01")
+ shared = yield calendar1.shareeView("puser01")
self.assertEqual(shared.shareStatus(), _BIND_STATUS_ACCEPTED)
yield self.commit()
@@ -306,7 +306,7 @@
yield self.otherCommit()
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
count = yield calendar1.countObjectResources()
self.assertEqual(count, 1)
yield self.commit()
@@ -318,7 +318,7 @@
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
- yield object1.remove()
+ yield object1.remove()
count = yield calendar1.countObjectResources()
self.assertEqual(count, 0)
yield self.commit()
@@ -343,8 +343,8 @@
yield self.otherCommit()
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
- yield calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
objects = yield calendar1.listObjectResources()
self.assertEqual(set(objects), set(("1.ics", "2.ics",)))
yield self.commit()
@@ -356,7 +356,7 @@
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
- yield object1.remove()
+ yield object1.remove()
objects = yield calendar1.listObjectResources()
self.assertEqual(set(objects), set(("2.ics",)))
yield self.commit()
@@ -386,7 +386,7 @@
self.assertEqual(token1_1, token2_1)
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
@@ -402,7 +402,7 @@
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
- yield object1.remove()
+ yield object1.remove()
count = yield calendar1.countObjectResources()
self.assertEqual(count, 0)
yield self.commit()
@@ -437,7 +437,7 @@
yield self.otherCommit()
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
@@ -454,7 +454,7 @@
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
- yield object1.remove()
+ yield object1.remove()
count = yield calendar1.countObjectResources()
self.assertEqual(count, 0)
yield self.commit()
@@ -491,7 +491,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
@@ -518,7 +518,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
@@ -545,13 +545,13 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
filter = caldavxml.Filter(
caldavxml.ComponentFilter(
*[caldavxml.ComponentFilter(
- **{"name":("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
+ **{"name": ("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
)],
**{"name": "VCALENDAR"}
)
@@ -578,9 +578,9 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- resource1 = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ resource1 = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
resource_id1 = resource1.id()
- resource2 = yield calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
+ resource2 = yield calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
resource_id2 = resource2.id()
yield self.commit()
@@ -614,7 +614,7 @@
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
- yield object1.remove()
+ yield object1.remove()
yield self.commit()
shared = yield self.calendarUnderTest(txn=self.newOtherTransaction(), home="puser01", name="shared-calendar")
@@ -655,10 +655,10 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- resource1 = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ resource1 = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
resource_id1 = resource1.id()
- yield calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
- resource3 = yield calendar1.createCalendarObjectWithName("3.ics", Component.fromString(self.caldata3))
+ yield calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
+ resource3 = yield calendar1.createCalendarObjectWithName("3.ics", Component.fromString(self.caldata3))
resource_id3 = resource3.id()
yield self.commit()
@@ -697,7 +697,7 @@
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
- yield object1.remove()
+ yield object1.remove()
yield self.commit()
shared = yield self.calendarUnderTest(txn=self.newOtherTransaction(), home="puser01", name="shared-calendar")
@@ -738,7 +738,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- resource = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ resource = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
resource_id = resource.id()
yield self.commit()
@@ -777,7 +777,7 @@
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
- yield object1.remove()
+ yield object1.remove()
yield self.commit()
shared = yield self.calendarUnderTest(txn=self.newOtherTransaction(), home="puser01", name="shared-calendar")
@@ -838,7 +838,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
shared = yield self.calendarUnderTest(txn=self.newOtherTransaction(), home="puser01", name="shared-calendar")
@@ -859,7 +859,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
shared_object = yield self.calendarObjectUnderTest(txn=self.newOtherTransaction(), home="puser01", calendar_name="shared-calendar", name="1.ics")
@@ -892,7 +892,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
shared_object = yield self.calendarObjectUnderTest(txn=self.newOtherTransaction(), home="puser01", calendar_name="shared-calendar", name="1.ics")
@@ -911,7 +911,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
shared_object = yield self.calendarObjectUnderTest(txn=self.newOtherTransaction(), home="puser01", calendar_name="shared-calendar", name="1.ics")
@@ -936,7 +936,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
fbstart = "{now:04d}0102T000000Z".format(**self.nowYear)
@@ -990,7 +990,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- object1 = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ object1 = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
resourceID = object1.id()
yield self.commit()
@@ -1020,7 +1020,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
@@ -1055,7 +1055,7 @@
yield self.createShare("user01", "puser01")
calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
- yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+ yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
yield self.commit()
object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
Modified: CalendarServer/trunk/txdav/common/datastore/podding/test/test_resource.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/podding/test/test_resource.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/podding/test/test_resource.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -66,25 +66,25 @@
@classproperty(cache=False)
def requirements(cls): #@NoSelf
return {
- "user01": {
- "calendar_1": {
+ "user01": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
},
- "inbox": {
+ "user02": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
},
- },
- "user02": {
- "calendar_1": {
+ "user03": {
+ "calendar_1": {
+ },
+ "inbox": {
+ },
},
- "inbox": {
- },
- },
- "user03": {
- "calendar_1": {
- },
- "inbox": {
- },
- },
- }
+ }
@inlineCallbacks
Modified: CalendarServer/trunk/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/sql.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/sql.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -783,39 +783,48 @@
@classproperty
def _insertAPNSubscriptionQuery(cls):
apn = schema.APN_SUBSCRIPTIONS
- return Insert({apn.TOKEN: Parameter("token"),
- apn.RESOURCE_KEY: Parameter("resourceKey"),
- apn.MODIFIED: Parameter("modified"),
- apn.SUBSCRIBER_GUID: Parameter("subscriber"),
- apn.USER_AGENT: Parameter("userAgent"),
- apn.IP_ADDR: Parameter("ipAddr")})
+ return Insert({
+ apn.TOKEN: Parameter("token"),
+ apn.RESOURCE_KEY: Parameter("resourceKey"),
+ apn.MODIFIED: Parameter("modified"),
+ apn.SUBSCRIBER_GUID: Parameter("subscriber"),
+ apn.USER_AGENT: Parameter("userAgent"),
+ apn.IP_ADDR: Parameter("ipAddr")
+ })
@classproperty
def _updateAPNSubscriptionQuery(cls):
apn = schema.APN_SUBSCRIPTIONS
- return Update({apn.MODIFIED: Parameter("modified"),
- apn.SUBSCRIBER_GUID: Parameter("subscriber"),
- apn.USER_AGENT: Parameter("userAgent"),
- apn.IP_ADDR: Parameter("ipAddr")},
- Where=(apn.TOKEN == Parameter("token")).And(
- apn.RESOURCE_KEY == Parameter("resourceKey")))
+ return Update(
+ {
+ apn.MODIFIED: Parameter("modified"),
+ apn.SUBSCRIBER_GUID: Parameter("subscriber"),
+ apn.USER_AGENT: Parameter("userAgent"),
+ apn.IP_ADDR: Parameter("ipAddr")
+ },
+ Where=(apn.TOKEN == Parameter("token")).And(
+ apn.RESOURCE_KEY == Parameter("resourceKey"))
+ )
@classproperty
def _selectAPNSubscriptionQuery(cls):
apn = schema.APN_SUBSCRIPTIONS
- return Select([apn.MODIFIED, apn.SUBSCRIBER_GUID], From=apn,
- Where=(
- apn.TOKEN == Parameter("token")).And(
- apn.RESOURCE_KEY == Parameter("resourceKey")
- )
+ return Select(
+ [apn.MODIFIED, apn.SUBSCRIBER_GUID],
+ From=apn,
+ Where=(apn.TOKEN == Parameter("token")).And(
+ apn.RESOURCE_KEY == Parameter("resourceKey")
)
+ )
@inlineCallbacks
- def addAPNSubscription(self, token, key, timestamp, subscriber,
- userAgent, ipAddr):
+ def addAPNSubscription(
+ self, token, key, timestamp, subscriber,
+ userAgent, ipAddr
+ ):
if not (token and key and timestamp and subscriber):
raise InvalidSubscriptionValues()
@@ -823,11 +832,14 @@
userAgent = userAgent[:255]
ipAddr = ipAddr[:255]
- row = yield self._selectAPNSubscriptionQuery.on(self,
- token=token, resourceKey=key)
+ row = yield self._selectAPNSubscriptionQuery.on(
+ self,
+ token=token, resourceKey=key
+ )
if not row: # Subscription does not yet exist
try:
- yield self._insertAPNSubscriptionQuery.on(self,
+ yield self._insertAPNSubscriptionQuery.on(
+ self,
token=token, resourceKey=key, modified=timestamp,
subscriber=subscriber, userAgent=userAgent,
ipAddr=ipAddr)
@@ -837,7 +849,8 @@
else: # Subscription exists, so update with new timestamp and subscriber
try:
- yield self._updateAPNSubscriptionQuery.on(self,
+ yield self._updateAPNSubscriptionQuery.on(
+ self,
token=token, resourceKey=key, modified=timestamp,
subscriber=subscriber, userAgent=userAgent,
ipAddr=ipAddr)
@@ -855,7 +868,8 @@
def removeAPNSubscription(self, token, key):
- return self._removeAPNSubscriptionQuery.on(self,
+ return self._removeAPNSubscriptionQuery.on(
+ self,
token=token, resourceKey=key)
@@ -867,7 +881,8 @@
def purgeOldAPNSubscriptions(self, olderThan):
- return self._purgeOldAPNSubscriptionQuery.on(self,
+ return self._purgeOldAPNSubscriptionQuery.on(
+ self,
olderThan=olderThan)
@@ -909,11 +924,12 @@
@classproperty
def _insertIMIPTokenQuery(cls):
imip = schema.IMIP_TOKENS
- return Insert({imip.TOKEN: Parameter("token"),
- imip.ORGANIZER: Parameter("organizer"),
- imip.ATTENDEE: Parameter("attendee"),
- imip.ICALUID: Parameter("icaluid"),
- })
+ return Insert({
+ imip.TOKEN: Parameter("token"),
+ imip.ORGANIZER: Parameter("organizer"),
+ imip.ATTENDEE: Parameter("attendee"),
+ imip.ICALUID: Parameter("icaluid"),
+ })
@inlineCallbacks
@@ -925,7 +941,8 @@
token = str(uuid4())
try:
- yield self._insertIMIPTokenQuery.on(self,
+ yield self._insertIMIPTokenQuery.on(
+ self,
token=token, organizer=organizer, attendee=attendee,
icaluid=icaluid)
except Exception:
@@ -952,29 +969,36 @@
@classproperty
def _selectIMIPTokenQuery(cls):
imip = schema.IMIP_TOKENS
- return Select([imip.TOKEN], From=imip,
- Where=(imip.ORGANIZER == Parameter("organizer")).And(
- imip.ATTENDEE == Parameter("attendee")).And(
- imip.ICALUID == Parameter("icaluid")))
+ return Select(
+ [imip.TOKEN],
+ From=imip,
+ Where=(imip.ORGANIZER == Parameter("organizer")).And(
+ imip.ATTENDEE == Parameter("attendee")).And(
+ imip.ICALUID == Parameter("icaluid"))
+ )
@classproperty
def _updateIMIPTokenQuery(cls):
imip = schema.IMIP_TOKENS
- return Update({imip.ACCESSED: utcNowSQL, },
- Where=(imip.ORGANIZER == Parameter("organizer")).And(
- imip.ATTENDEE == Parameter("attendee")).And(
- imip.ICALUID == Parameter("icaluid")))
+ return Update(
+ {imip.ACCESSED: utcNowSQL, },
+ Where=(imip.ORGANIZER == Parameter("organizer")).And(
+ imip.ATTENDEE == Parameter("attendee")).And(
+ imip.ICALUID == Parameter("icaluid"))
+ )
@inlineCallbacks
def imipGetToken(self, organizer, attendee, icaluid):
- row = (yield self._selectIMIPTokenQuery.on(self, organizer=organizer,
+ row = (yield self._selectIMIPTokenQuery.on(
+ self, organizer=organizer,
attendee=attendee, icaluid=icaluid))
if row:
token = row[0][0]
# update the timestamp
- yield self._updateIMIPTokenQuery.on(self, organizer=organizer,
+ yield self._updateIMIPTokenQuery.on(
+ self, organizer=organizer,
attendee=attendee, icaluid=icaluid)
else:
token = None
@@ -2661,8 +2685,8 @@
aboMembers,
Where=(aboMembers.GROUP_ID == groupID).And(
aboMembers.MEMBER_ID == memberID).And(
- aboMembers.REVISION.In(Parameter("revisionsToRemove", len(revisionsToRemove)))
- )
+ aboMembers.REVISION.In(Parameter("revisionsToRemove", len(revisionsToRemove)))
+ )
).on(self, revisionsToRemove=revisionsToRemove)
@@ -3588,9 +3612,10 @@
Do the changes query.
Subclasses may override.
"""
- result = yield self._changesQuery.on(self._txn,
- resourceID=self._resourceID,
- revision=revision)
+ result = yield self._changesQuery.on(
+ self._txn,
+ resourceID=self._resourceID,
+ revision=revision)
returnValue(result)
@@ -3616,8 +3641,8 @@
Now that we are truncating the revision table, we need to handle the full sync (revision == 0)
case a little differently as the revision table will not contain data for resources that exist,
but were last modified before the revision cut-off. Instead for revision == 0 we need to list
- all existing child resources.
-
+ all existing child resources.
+
We need to handle shared collection a little differently from owned ones. When a shared collection
is bound into a home we record a revision for it using the sharee home id and sharee collection name.
That revision is the "starting point" for changes: so if sync occurs with a revision earlier than
@@ -3700,8 +3725,6 @@
returnValue((changed, deleted, invalid,))
-
-
@inlineCallbacks
def resourceNamesSinceRevisionZero(self, depth):
"""
@@ -4139,10 +4162,10 @@
raise SyncTokenValidException
results = [
- (name if name else "", removed) for name, removed in
- (yield self._objectNamesSinceRevisionQuery().on(
+ (name if name else "", removed) for name, removed in (
+ yield self._objectNamesSinceRevisionQuery().on(
self._txn, revision=revision, resourceID=self._resourceID)
- )
+ )
]
results.sort(key=lambda x: x[1])
@@ -4169,14 +4192,18 @@
@classproperty
def _addNewRevision(cls):
rev = cls._revisionsSchema
- return Insert({rev.HOME_RESOURCE_ID: Parameter("homeID"),
- rev.RESOURCE_ID: Parameter("resourceID"),
- rev.COLLECTION_NAME: Parameter("collectionName"),
- rev.RESOURCE_NAME: None,
- # Always starts false; may be updated to be a tombstone
- # later.
- rev.DELETED: False},
- Return=[rev.REVISION])
+ return Insert(
+ {
+ rev.HOME_RESOURCE_ID: Parameter("homeID"),
+ rev.RESOURCE_ID: Parameter("resourceID"),
+ rev.COLLECTION_NAME: Parameter("collectionName"),
+ rev.RESOURCE_NAME: None,
+ # Always starts false; may be updated to be a tombstone
+ # later.
+ rev.DELETED: False
+ },
+ Return=[rev.REVISION]
+ )
@inlineCallbacks
@@ -4263,13 +4290,16 @@
DAL query to indicate a shared collection has been deleted.
"""
rev = cls._revisionsSchema
- return Update({rev.RESOURCE_ID: None,
- rev.REVISION: schema.REVISION_SEQ,
- rev.DELETED: True},
- Where=(rev.HOME_RESOURCE_ID == Parameter("homeID")).And(
- rev.RESOURCE_ID == Parameter("resourceID")).And(
- rev.RESOURCE_NAME == None)
- )
+ return Update(
+ {
+ rev.RESOURCE_ID: None,
+ rev.REVISION: schema.REVISION_SEQ,
+ rev.DELETED: True
+ },
+ Where=(rev.HOME_RESOURCE_ID == Parameter("homeID")).And(
+ rev.RESOURCE_ID == Parameter("resourceID")).And(
+ rev.RESOURCE_NAME == None)
+ )
@classproperty
@@ -4278,12 +4308,15 @@
DAL query to indicate an owned collection has been deleted.
"""
rev = cls._revisionsSchema
- return Update({rev.RESOURCE_ID: None,
- rev.REVISION: schema.REVISION_SEQ,
- rev.DELETED: True},
- Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
- rev.RESOURCE_NAME == None),
- )
+ return Update(
+ {
+ rev.RESOURCE_ID: None,
+ rev.REVISION: schema.REVISION_SEQ,
+ rev.DELETED: True
+ },
+ Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
+ rev.RESOURCE_NAME == None),
+ )
@inlineCallbacks
@@ -4330,49 +4363,60 @@
@classproperty
def _deleteBumpTokenQuery(cls):
rev = cls._revisionsSchema
- return Update({rev.REVISION: schema.REVISION_SEQ,
- rev.DELETED: True},
- Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
- rev.RESOURCE_NAME == Parameter("name")),
- Return=rev.REVISION)
+ return Update(
+ {rev.REVISION: schema.REVISION_SEQ, rev.DELETED: True},
+ Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
+ rev.RESOURCE_NAME == Parameter("name")),
+ Return=rev.REVISION
+ )
@classproperty
def _updateBumpTokenQuery(cls):
rev = cls._revisionsSchema
- return Update({rev.REVISION: schema.REVISION_SEQ},
- Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
- rev.RESOURCE_NAME == Parameter("name")),
- Return=rev.REVISION)
+ return Update(
+ {rev.REVISION: schema.REVISION_SEQ},
+ Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
+ rev.RESOURCE_NAME == Parameter("name")),
+ Return=rev.REVISION
+ )
@classproperty
def _insertFindPreviouslyNamedQuery(cls):
rev = cls._revisionsSchema
- return Select([rev.RESOURCE_ID], From=rev,
- Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
- rev.RESOURCE_NAME == Parameter("name")))
+ return Select(
+ [rev.RESOURCE_ID],
+ From=rev,
+ Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
+ rev.RESOURCE_NAME == Parameter("name"))
+ )
@classproperty
def _updatePreviouslyNamedQuery(cls):
rev = cls._revisionsSchema
- return Update({rev.REVISION: schema.REVISION_SEQ,
- rev.DELETED: False},
- Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
- rev.RESOURCE_NAME == Parameter("name")),
- Return=rev.REVISION)
+ return Update(
+ {rev.REVISION: schema.REVISION_SEQ, rev.DELETED: False},
+ Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
+ rev.RESOURCE_NAME == Parameter("name")),
+ Return=rev.REVISION
+ )
@classproperty
def _completelyNewRevisionQuery(cls):
rev = cls._revisionsSchema
- return Insert({rev.HOME_RESOURCE_ID: Parameter("homeID"),
- rev.RESOURCE_ID: Parameter("resourceID"),
- rev.RESOURCE_NAME: Parameter("name"),
- rev.REVISION: schema.REVISION_SEQ,
- rev.DELETED: False},
- Return=rev.REVISION)
+ return Insert(
+ {
+ rev.HOME_RESOURCE_ID: Parameter("homeID"),
+ rev.RESOURCE_ID: Parameter("resourceID"),
+ rev.RESOURCE_NAME: Parameter("name"),
+ rev.REVISION: schema.REVISION_SEQ,
+ rev.DELETED: False
+ },
+ Return=rev.REVISION
+ )
@inlineCallbacks
@@ -4463,8 +4507,8 @@
bind = cls._bindSchema
return Update(
columnMap,
- Where=(bind.RESOURCE_ID == Parameter("resourceID"))
- .And(bind.HOME_RESOURCE_ID == Parameter("homeID")),
+ Where=(bind.RESOURCE_ID == Parameter("resourceID")).And(
+ bind.HOME_RESOURCE_ID == Parameter("homeID")),
)
@@ -4473,8 +4517,8 @@
bind = cls._bindSchema
return Delete(
From=bind,
- Where=(bind.RESOURCE_ID == Parameter("resourceID"))
- .And(bind.HOME_RESOURCE_ID == Parameter("homeID")),
+ Where=(bind.RESOURCE_ID == Parameter("resourceID")).And(
+ bind.HOME_RESOURCE_ID == Parameter("homeID")),
)
@@ -5023,7 +5067,7 @@
# TODO: raise a nice exception if shareeView is not, in fact, a shared
# version of this same L{CommonHomeChild}
- #remove None parameters, and substitute None for empty string
+ # remove None parameters, and substitute None for empty string
bind = self._bindSchema
columnMap = {}
if mode != None and mode != self._bindMode:
@@ -5235,8 +5279,8 @@
bind = self._bindSchema
yield Update(
{bind.MESSAGE: self._bindMessage},
- Where=(bind.RESOURCE_ID == Parameter("resourceID"))
- .And(bind.HOME_RESOURCE_ID == Parameter("homeID")),
+ Where=(bind.RESOURCE_ID == Parameter("resourceID")).And(
+ bind.HOME_RESOURCE_ID == Parameter("homeID")),
).on(self._txn, resourceID=self._resourceID, homeID=self.viewerHome()._resourceID)
yield self.invalidateQueryCache()
@@ -5416,14 +5460,16 @@
childMetaData = cls._homeChildMetaDataSchema
columns = cls.bindColumns() + cls.additionalBindColumns() + cls.metadataColumns()
- return Select(columns,
- From=child.join(
- bind, child.RESOURCE_ID == bind.RESOURCE_ID,
- 'left outer').join(
- childMetaData, childMetaData.RESOURCE_ID == bind.RESOURCE_ID,
- 'left outer'),
- Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")
- ).And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED))
+ return Select(
+ columns,
+ From=child.join(
+ bind, child.RESOURCE_ID == bind.RESOURCE_ID,
+ 'left outer').join(
+ childMetaData, childMetaData.RESOURCE_ID == bind.RESOURCE_ID,
+ 'left outer'),
+ Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")).And(
+ bind.BIND_STATUS == _BIND_STATUS_ACCEPTED)
+ )
@classmethod
@@ -5432,8 +5478,8 @@
return Select(
[rev.RESOURCE_ID, Max(rev.REVISION)],
From=rev,
- Where=rev.RESOURCE_ID.In(Parameter("resourceIDs", len(resourceIDs))).
- And((rev.RESOURCE_NAME != None).Or(rev.DELETED == False)),
+ Where=rev.RESOURCE_ID.In(Parameter("resourceIDs", len(resourceIDs))).And(
+ (rev.RESOURCE_NAME != None).Or(rev.DELETED == False)),
GroupBy=rev.RESOURCE_ID
)
@@ -6095,8 +6141,8 @@
obj = cls._objectSchema
return Select(
[obj.RESOURCE_NAME], From=obj,
- Where=(obj.UID == Parameter("uid")
- ).And(obj.PARENT_RESOURCE_ID == Parameter("resourceID")))
+ Where=(obj.UID == Parameter("uid")).And(
+ obj.PARENT_RESOURCE_ID == Parameter("resourceID")))
@inlineCallbacks
@@ -6124,8 +6170,9 @@
obj = cls._objectSchema
return Select(
[obj.UID], From=obj,
- Where=(obj.RESOURCE_NAME == Parameter("name")
- ).And(obj.PARENT_RESOURCE_ID == Parameter("resourceID")))
+ Where=(obj.RESOURCE_NAME == Parameter("name")).And(
+ obj.PARENT_RESOURCE_ID == Parameter("resourceID"))
+ )
@inlineCallbacks
@@ -6437,7 +6484,7 @@
[rev.RESOURCE_NAME, rev.DELETED],
From=rev,
Where=(rev.REVISION > revision).And(
- rev.RESOURCE_ID == self._resourceID)
+ rev.RESOURCE_ID == self._resourceID)
).on(self._txn))
if name
]
@@ -8028,7 +8075,7 @@
From=schema.NOTIFICATION_HOME.join(
schema.NOTIFICATION,
on=schema.NOTIFICATION_HOME.RESOURCE_ID ==
- schema.NOTIFICATION.NOTIFICATION_HOME_RESOURCE_ID),
+ schema.NOTIFICATION.NOTIFICATION_HOME_RESOURCE_ID),
Where=schema.NOTIFICATION_HOME.OWNER_UID == uid
)
homeTypeName = {ECALENDARTYPE: "CALENDAR",
@@ -8039,9 +8086,9 @@
obj = getattr(schema, homeTypeName + "_OBJECT")
return Select(
[Max(obj.MODIFIED)],
- From=home.join(bind, on=bind.HOME_RESOURCE_ID == home.RESOURCE_ID)
- .join(child, on=child.RESOURCE_ID == bind.RESOURCE_ID)
- .join(obj, on=obj.PARENT_RESOURCE_ID == child.RESOURCE_ID),
+ From=home.join(bind, on=bind.HOME_RESOURCE_ID == home.RESOURCE_ID).join(
+ child, on=child.RESOURCE_ID == bind.RESOURCE_ID).join(
+ obj, on=obj.PARENT_RESOURCE_ID == child.RESOURCE_ID),
Where=(bind.BIND_MODE == 0).And(home.OWNER_UID == uid)
)
Modified: CalendarServer/trunk/txdav/common/datastore/sql_tables.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/sql_tables.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/sql_tables.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -365,12 +365,13 @@
elif default is False:
default = 0
out.write(" " + repr(default))
- if ((not column.model.canBeNull())
- # Oracle treats empty strings as NULLs, so we have to accept
- # NULL values in columns of a string type. Other types should
- # be okay though.
- and typeName not in ('varchar', 'nclob', 'char', 'nchar',
- 'nvarchar', 'nvarchar2')):
+ if (
+ (not column.model.canBeNull())
+ # Oracle treats empty strings as NULLs, so we have to accept
+ # NULL values in columns of a string type. Other types should
+ # be okay though.
+ and typeName not in ('varchar', 'nclob', 'char', 'nchar', 'nvarchar', 'nvarchar2')
+ ):
out.write(' not null')
if [column.model] in list(table.model.uniques()):
out.write(' unique')
@@ -461,7 +462,7 @@
aggregated += agg
continue
if inPlSQL is None:
- #if 'begin'.lower() in str(stmt).split()[0].lower():
+ # if 'begin'.lower() in str(stmt).split()[0].lower():
if str(stmt).lower().strip().startswith('begin'):
inPlSQL = True
aggregated += str(stmt)
Modified: CalendarServer/trunk/txdav/common/datastore/test/test_sql.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/test/test_sql.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/test/test_sql.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -71,10 +71,10 @@
txn = self.transactionUnderTest()
cs = schema.CALENDARSERVER
version = (yield Select(
- [cs.VALUE, ],
- From=cs,
- Where=cs.NAME == 'VERSION',
- ).on(txn))
+ [cs.VALUE, ],
+ From=cs,
+ Where=cs.NAME == 'VERSION',
+ ).on(txn))
self.assertNotEqual(version, None)
self.assertEqual(len(version), 1)
self.assertEqual(len(version[0]), 1)
@@ -350,23 +350,27 @@
rp = schema.RESOURCE_PROPERTY
txn = self.transactionUnderTest()
# setup
- yield Insert({rp.RESOURCE_ID: 1,
- rp.NAME: "asdf",
- rp.VALUE: "property-value",
- rp.VIEWER_UID: "not-a-uuid"}).on(txn)
- yield Insert({rp.RESOURCE_ID: 2,
- rp.NAME: "fdsa",
- rp.VALUE: "another-value",
- rp.VIEWER_UID: "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"}
- ).on(txn)
+ yield Insert({
+ rp.RESOURCE_ID: 1,
+ rp.NAME: "asdf",
+ rp.VALUE: "property-value",
+ rp.VIEWER_UID: "not-a-uuid"}).on(txn)
+ yield Insert({
+ rp.RESOURCE_ID: 2,
+ rp.NAME: "fdsa",
+ rp.VALUE: "another-value",
+ rp.VIEWER_UID: "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"}
+ ).on(txn)
# test
from txdav.common.datastore.sql import _normalizeColumnUUIDs
yield _normalizeColumnUUIDs(txn, rp.VIEWER_UID)
self.assertEqual(
- (yield Select([rp.RESOURCE_ID, rp.NAME,
- rp.VALUE, rp.VIEWER_UID], From=rp,
- OrderBy=rp.RESOURCE_ID, Ascending=True,
- ).on(txn)),
+ (yield Select(
+ [rp.RESOURCE_ID, rp.NAME,
+ rp.VALUE, rp.VIEWER_UID],
+ From=rp,
+ OrderBy=rp.RESOURCE_ID, Ascending=True,
+ ).on(txn)),
[[1, "asdf", "property-value", "not-a-uuid"],
[2, "fdsa", "another-value",
"AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"]]
Modified: CalendarServer/trunk/txdav/common/datastore/test/test_sql_schema_files.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/test/test_sql_schema_files.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/test/test_sql_schema_files.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -134,7 +134,7 @@
indexed_columns = set()
for index in schema.pseudoIndexes():
indexed_columns.add("%s.%s" % (index.table.name, index.columns[0].name,))
- #print indexed_columns
+ # print indexed_columns
# Look at each table
failures = []
Modified: CalendarServer/trunk/txdav/common/datastore/test/test_sql_tables.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/test/test_sql_tables.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/test/test_sql_tables.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -221,10 +221,10 @@
"""
self.assertSortaEquals(
self.translated(SchemaSyntax(self.schemaFromString(
- "create table alpha ( "
- 'beta integer, check (beta > 3)'
- " );"
- ))),
+ "create table alpha ( "
+ 'beta integer, check (beta > 3)'
+ " );"
+ ))),
"create table alpha ( "
'"beta" integer, check ("beta" > 3)'
" );"
@@ -238,10 +238,10 @@
"""
self.assertSortaEquals(
self.translated(SchemaSyntax(self.schemaFromString(
- "create table alpha ( "
- 'beta integer, constraint beta_lt_3 check (beta > 3)'
- " );"
- ))),
+ "create table alpha ( "
+ 'beta integer, constraint beta_lt_3 check (beta > 3)'
+ " );"
+ ))),
"create table alpha ( "
'"beta" integer, constraint "beta_lt_3" check ("beta" > 3)'
" );"
@@ -303,26 +303,26 @@
One complex sql statement yields a single string
"""
bigSQL = dedent(
- '''SELECT
- CL.CODE,
- CL.CATEGORY,
- FROM
- CLIENTS_SUPPLIERS CL
- INVOICES I
- WHERE
- CL.CODE = I.CODE AND
- CL.CATEGORY = I.CATEGORY AND
- CL.UP_DATE =
- (SELECT
- MAX(CL2.UP_DATE)
- FROM
- CLIENTS_SUPPLIERS CL2
- WHERE
- CL2.CODE = I.CODE AND
- CL2.CATEGORY = I.CATEGORY AND
- CL2.UP_DATE <= I.EMISSION
- ) AND
- I.EMISSION BETWEEN DATE1 AND DATE2;''')
+ '''SELECT
+ CL.CODE,
+ CL.CATEGORY,
+ FROM
+ CLIENTS_SUPPLIERS CL
+ INVOICES I
+ WHERE
+ CL.CODE = I.CODE AND
+ CL.CATEGORY = I.CATEGORY AND
+ CL.UP_DATE =
+ (SELECT
+ MAX(CL2.UP_DATE)
+ FROM
+ CLIENTS_SUPPLIERS CL2
+ WHERE
+ CL2.CODE = I.CODE AND
+ CL2.CATEGORY = I.CATEGORY AND
+ CL2.UP_DATE <= I.EMISSION
+ ) AND
+ I.EMISSION BETWEEN DATE1 AND DATE2;''')
result = splitSQLString(bigSQL)
r1 = result.next()
self.assertEquals(r1, bigSQL.rstrip(";"))
@@ -334,13 +334,13 @@
One pl/sql block yields a single string
"""
plsql = dedent(
- '''BEGIN
- LOOP
- INSERT INTO T1 VALUES(i,i);
- i := i+1;
- EXIT WHEN i>100;
- END LOOP;
- END;''')
+ '''BEGIN
+ LOOP
+ INSERT INTO T1 VALUES(i,i);
+ i := i+1;
+ EXIT WHEN i>100;
+ END LOOP;
+ END;''')
s1 = 'BEGIN\nLOOP\nINSERT INTO T1 VALUES(i,i);i := i+1;EXIT WHEN i>100;END LOOP;END;'
result = splitSQLString(plsql)
r1 = result.next()
@@ -353,23 +353,23 @@
One sql statement and one pl/sql statement yields two separate strings
"""
sql = dedent(
- '''SELECT EGM.Name, BioEntity.BioEntityId INTO AUX
- FROM EGM
- INNER JOIN BioEntity
- ON EGM.name LIKE BioEntity.Name AND EGM.TypeId = BioEntity.TypeId
- OPTION (MERGE JOIN);''')
+ '''SELECT EGM.Name, BioEntity.BioEntityId INTO AUX
+ FROM EGM
+ INNER JOIN BioEntity
+ ON EGM.name LIKE BioEntity.Name AND EGM.TypeId = BioEntity.TypeId
+ OPTION (MERGE JOIN);''')
plsql = dedent(
- '''BEGIN
- FOR i IN 1..10 LOOP
- IF MOD(i,2) = 0 THEN
- INSERT INTO temp VALUES (i, x, 'i is even');
- ELSE
- INSERT INTO temp VALUES (i, x, 'i is odd');
- END IF;
- x := x + 100;
- END LOOP;
- COMMIT;
- END;''')
+ '''BEGIN
+ FOR i IN 1..10 LOOP
+ IF MOD(i,2) = 0 THEN
+ INSERT INTO temp VALUES (i, x, 'i is even');
+ ELSE
+ INSERT INTO temp VALUES (i, x, 'i is odd');
+ END IF;
+ x := x + 100;
+ END LOOP;
+ COMMIT;
+ END;''')
s2 = "BEGIN\nFOR i IN 1..10 LOOP\nIF MOD(i,2) = 0 THEN\nINSERT INTO temp VALUES (i, x, 'i is even');ELSE\nINSERT INTO temp VALUES (i, x, 'i is odd');END IF;x := x + 100;END LOOP;COMMIT;END;"
result = splitSQLString(sql + plsql)
r1 = result.next()
@@ -384,32 +384,32 @@
One sql statement and one pl/sql statement yields two separate strings
"""
sql = dedent(
- '''SELECT EGM.Name, BioEntity.BioEntityId INTO AUX
- FROM EGM
- INNER JOIN BioEntity
- ON EGM.name LIKE BioEntity.Name AND EGM.TypeId = BioEntity.TypeId
- OPTION (MERGE JOIN);''')
+ '''SELECT EGM.Name, BioEntity.BioEntityId INTO AUX
+ FROM EGM
+ INNER JOIN BioEntity
+ ON EGM.name LIKE BioEntity.Name AND EGM.TypeId = BioEntity.TypeId
+ OPTION (MERGE JOIN);''')
sqlfn = dedent(
- '''CREATE or REPLACE FUNCTION foobar() RETURNS integer as $$
- DECLARE
- result integer;
- BEGIN
- SELECT ID into result from JOB;
- RETURN result;
- END
- $$ LANGUAGE plpgsql;''')
+ '''CREATE or REPLACE FUNCTION foobar() RETURNS integer as $$
+ DECLARE
+ result integer;
+ BEGIN
+ SELECT ID into result from JOB;
+ RETURN result;
+ END
+ $$ LANGUAGE plpgsql;''')
plsql = dedent(
- '''BEGIN
- FOR i IN 1..10 LOOP
- IF MOD(i,2) = 0 THEN
- INSERT INTO temp VALUES (i, x, 'i is even');
- ELSE
- INSERT INTO temp VALUES (i, x, 'i is odd');
- END IF;
- x := x + 100;
- END LOOP;
- COMMIT;
- END;''')
+ '''BEGIN
+ FOR i IN 1..10 LOOP
+ IF MOD(i,2) = 0 THEN
+ INSERT INTO temp VALUES (i, x, 'i is even');
+ ELSE
+ INSERT INTO temp VALUES (i, x, 'i is odd');
+ END IF;
+ x := x + 100;
+ END LOOP;
+ COMMIT;
+ END;''')
s3 = "BEGIN\nFOR i IN 1..10 LOOP\nIF MOD(i,2) = 0 THEN\nINSERT INTO temp VALUES (i, x, 'i is even');ELSE\nINSERT INTO temp VALUES (i, x, 'i is odd');END IF;x := x + 100;END LOOP;COMMIT;END;"
result = splitSQLString(sql + sqlfn + plsql)
r1 = result.next()
@@ -427,50 +427,50 @@
ignoring comments
"""
realsql = dedent(
- '''
- ----
- -- Copyright (c) 2011-2014 Apple Inc. All rights reserved.
- --
- -- Licensed under the Apache License, Version 2.0 (the "License");
- -- you may not use this file except in compliance with the License.
- -- You may obtain a copy of the License at
- --
- -- http://www.apache.org/licenses/LICENSE-2.0
- --
- -- Unless required by applicable law or agreed to in writing, software
- -- distributed under the License is distributed on an "AS IS" BASIS,
- -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- -- See the License for the specific language governing permissions and
- -- limitations under the License.
- ----
+ '''
+ ----
+ -- Copyright (c) 2011-2014 Apple Inc. All rights reserved.
+ --
+ -- Licensed under the Apache License, Version 2.0 (the "License");
+ -- you may not use this file except in compliance with the License.
+ -- You may obtain a copy of the License at
+ --
+ -- http://www.apache.org/licenses/LICENSE-2.0
+ --
+ -- Unless required by applicable law or agreed to in writing, software
+ -- distributed under the License is distributed on an "AS IS" BASIS,
+ -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ -- See the License for the specific language governing permissions and
+ -- limitations under the License.
+ ----
- ---------------------------------------------------
- -- Upgrade database schema from VERSION 16 to 17 --
- ---------------------------------------------------
+ ---------------------------------------------------
+ -- Upgrade database schema from VERSION 16 to 17 --
+ ---------------------------------------------------
- ------------------------------
- -- CALENDAR_OBJECT clean-up --
- ------------------------------
+ ------------------------------
+ -- CALENDAR_OBJECT clean-up --
+ ------------------------------
- begin
- for i in (select constraint_name from user_cons_columns where column_name = 'ORGANIZER_OBJECT')
- loop
- execute immediate 'alter table calendar_object drop constraint ' || i.constraint_name;
- end loop;
- end;
+ begin
+ for i in (select constraint_name from user_cons_columns where column_name = 'ORGANIZER_OBJECT')
+ loop
+ execute immediate 'alter table calendar_object drop constraint ' || i.constraint_name;
+ end loop;
+ end;
- alter table CALENDAR_OBJECT
- drop (ORGANIZER_OBJECT);
+ alter table CALENDAR_OBJECT
+ drop (ORGANIZER_OBJECT);
- create index CALENDAR_OBJECT_ICALE_82e731d5 on CALENDAR_OBJECT (
- ICALENDAR_UID
- );
+ create index CALENDAR_OBJECT_ICALE_82e731d5 on CALENDAR_OBJECT (
+ ICALENDAR_UID
+ );
- -- Now update the version
- update CALENDARSERVER set VALUE = '17' where NAME = 'VERSION';
- ''')
+ -- Now update the version
+ update CALENDARSERVER set VALUE = '17' where NAME = 'VERSION';
+ ''')
s1 = "begin\nfor i in (select constraint_name from user_cons_columns where column_name = 'ORGANIZER_OBJECT')\nloop\nexecute immediate 'alter table calendar_object drop constraint ' || i.constraint_name;end loop;end;"
s2 = 'alter table CALENDAR_OBJECT\n drop (ORGANIZER_OBJECT)'
s3 = 'create index CALENDAR_OBJECT_ICALE_82e731d5 on CALENDAR_OBJECT (\n ICALENDAR_UID\n)'
Modified: CalendarServer/trunk/txdav/common/datastore/test/util.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/test/util.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/test/util.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -265,6 +265,7 @@
@inlineCallbacks
def cleanStore(self, testCase, storeToClean):
+
cleanupTxn = storeToClean.sqlTxnFactory(
"%s schema-cleanup" % (testCase.id(),)
)
@@ -881,9 +882,9 @@
"""
Get the calendar detailed by C{requirements['home1']['calendar_1']}.
"""
- returnValue((yield
- (yield self.homeUnderTest(txn, home)).calendarWithName(name))
- )
+ returnValue((
+ yield (yield self.homeUnderTest(txn, home)).calendarWithName(name)
+ ))
@inlineCallbacks
@@ -910,9 +911,9 @@
"""
Get the addressbook detailed by C{requirements['home1']['addressbook']}.
"""
- returnValue((yield
- (yield self.addressbookHomeUnderTest(txn=txn, name=home)).addressbookWithName(name))
- )
+ returnValue((
+ yield (yield self.addressbookHomeUnderTest(txn=txn, name=home)).addressbookWithName(name)
+ ))
@inlineCallbacks
Modified: CalendarServer/trunk/txdav/common/datastore/upgrade/migrate.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/upgrade/migrate.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/upgrade/migrate.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -225,9 +225,10 @@
lambda fileHome:
self.upgrader.migrateOneHome(fileTxn, homeType, fileHome)
)
- .addCallbacks(lambda ignored: fileTxn.commit(),
- lambda err: fileTxn.abort()
- .addCallback(lambda ign: err))
+ .addCallbacks(
+ lambda ignored: fileTxn.commit(),
+ lambda err: fileTxn.abort()
+ .addCallback(lambda ign: err))
.addCallback(lambda ignored: {})
)
@@ -302,8 +303,9 @@
appropriateStoreClass = AppleDoubleStore
- return FileStore(path, None, None, True, True,
- propertyStoreClass=appropriateStoreClass)
+ return FileStore(
+ path, None, None, True, True,
+ propertyStoreClass=appropriateStoreClass)
return None
@@ -361,7 +363,7 @@
for homeType, eachFunc in [
("calendar", self.fileStore.withEachCalendarHomeDo),
("addressbook", self.fileStore.withEachAddressbookHomeDo),
- ]:
+ ]:
yield eachFunc(
lambda txn, home: self._upgradeAction(
txn, home, homeType
@@ -372,8 +374,10 @@
# since attachments started living outside the database directory
# created by initdb? default permissions might be correct now.
sqlAttachmentsPath = self.sqlStore.attachmentsPath
- if (sqlAttachmentsPath and sqlAttachmentsPath.exists() and
- (self.uid or self.gid)):
+ if (
+ sqlAttachmentsPath and sqlAttachmentsPath.exists() and
+ (self.uid or self.gid)
+ ):
uid = self.uid or -1
gid = self.gid or -1
for fp in sqlAttachmentsPath.walk():
@@ -421,7 +425,7 @@
# Now apply each required data upgrade
self.sqlStore.setUpgrading(True)
- for upgrade, description in (
+ for upgrade, description in (
(doCalendarUpgrade_1_to_2, "Calendar data upgrade from v1 to v2"),
(doCalendarUpgrade_2_to_3, "Calendar data upgrade from v2 to v3"),
(doCalendarUpgrade_3_to_4, "Calendar data upgrade from v3 to v4"),
Modified: CalendarServer/trunk/txdav/common/datastore/upgrade/sql/test/test_upgrade.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/upgrade/sql/test/test_upgrade.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/upgrade/sql/test/test_upgrade.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -57,13 +57,15 @@
upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema1")
files = upgrader.scanForUpgradeFiles("fake_dialect")
- self.assertEqual(files,
+ self.assertEqual(
+ files,
[(3, 4, upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql"))],
)
upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema2")
files = upgrader.scanForUpgradeFiles("fake_dialect")
- self.assertEqual(files,
+ self.assertEqual(
+ files,
[
(3, 4, upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql")),
(3, 5, upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_5.sql")),
@@ -79,7 +81,8 @@
upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema1")
files = upgrader.scanForUpgradeFiles("fake_dialect")
upgrades = upgrader.determineUpgradeSequence(3, 4, files, "fake_dialect")
- self.assertEqual(upgrades,
+ self.assertEqual(
+ upgrades,
[upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql")],
)
self.assertRaises(RuntimeError, upgrader.determineUpgradeSequence, 3, 5, files, "fake_dialect")
@@ -87,18 +90,21 @@
upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema2")
files = upgrader.scanForUpgradeFiles("fake_dialect")
upgrades = upgrader.determineUpgradeSequence(3, 5, files, "fake_dialect")
- self.assertEqual(upgrades,
+ self.assertEqual(
+ upgrades,
[upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_5.sql")]
)
upgrades = upgrader.determineUpgradeSequence(4, 5, files, "fake_dialect")
- self.assertEqual(upgrades,
+ self.assertEqual(
+ upgrades,
[upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_4_to_5.sql")]
)
upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema3")
files = upgrader.scanForUpgradeFiles("fake_dialect")
upgrades = upgrader.determineUpgradeSequence(3, 5, files, "fake_dialect")
- self.assertEqual(upgrades,
+ self.assertEqual(
+ upgrades,
[
upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql"),
upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_4_to_5.sql"),
Modified: CalendarServer/trunk/txdav/common/datastore/upgrade/sql/upgrades/addressbook_upgrade_from_1_to_2.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/upgrade/sql/upgrades/addressbook_upgrade_from_1_to_2.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/upgrade/sql/upgrades/addressbook_upgrade_from_1_to_2.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -67,11 +67,12 @@
if lcResourceKind == "group":
# update kind
abo = schema.ADDRESSBOOK_OBJECT
- yield Update({abo.KIND: _ABO_KIND_GROUP},
- Where=abo.RESOURCE_ID == abObject._resourceID,
- ).on(txn)
+ yield Update(
+ {abo.KIND: _ABO_KIND_GROUP},
+ Where=abo.RESOURCE_ID == abObject._resourceID,
+ ).on(txn)
abObject._kind = _ABO_KIND_GROUP
- #update rest
+ # update rest
yield abObject.setComponent(component)
logUpgradeStatus("Starting Addressbook Populate Members")
Modified: CalendarServer/trunk/txdav/common/datastore/upgrade/test/test_migrate.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/upgrade/test/test_migrate.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/upgrade/test/test_migrate.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -86,8 +86,8 @@
@PickleConfig.responder
def pickleConfig(self, config, delegateTo):
- #from twistedcaldav.config import config as globalConfig
- #globalConfig._data = config._data
+ # from twistedcaldav.config import config as globalConfig
+ # globalConfig._data = config._data
swapAMP(self, namedAny(delegateTo)(config))
return {}
@@ -282,10 +282,10 @@
self.addCleanup(txn.commit)
self.assertIdentical(
None,
- (yield (yield (yield
- (yield txn.calendarHomeWithUID("home1"))
- .calendarWithName("calendar_1")))
- .calendarObjectWithName("bogus.ics"))
+ (yield (yield (yield (
+ yield txn.calendarHomeWithUID("home1")
+ ).calendarWithName("calendar_1"))
+ ).calendarObjectWithName("bogus.ics"))
)
Modified: CalendarServer/trunk/txdav/common/datastore/work/revision_cleanup.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/work/revision_cleanup.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/work/revision_cleanup.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -60,8 +60,10 @@
minValidRevision = int((yield self.transaction.calendarserverValue("MIN-VALID-REVISION")))
# get max revision on table rows before dateLimit
- dateLimit = (datetime.datetime.utcnow() -
- datetime.timedelta(days=float(config.RevisionCleanup.SyncTokenLifetimeDays)))
+ dateLimit = (
+ datetime.datetime.utcnow() -
+ datetime.timedelta(days=float(config.RevisionCleanup.SyncTokenLifetimeDays))
+ )
maxRevOlderThanDate = 0
# TODO: Use one Select statement
Modified: CalendarServer/trunk/txdav/common/datastore/work/test/test_inbox_cleanup.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/work/test/test_inbox_cleanup.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/work/test/test_inbox_cleanup.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -161,7 +161,7 @@
self.patch(config.InboxCleanup, "ItemLifetimeDays", -1)
self.patch(config.InboxCleanup, "ItemLifeBeyondEventEndDays", -1)
- #create orphans by deleting events
+ # create orphans by deleting events
inbox = yield self.calendarUnderTest(home="user01", name="inbox")
for item in (yield inbox.objectResourcesWithNames(["cal1.ics", "cal3.ics"])):
yield item.remove()
@@ -191,9 +191,11 @@
itemsToPredate = ["cal2.ics", "cal3.ics"]
co = schema.CALENDAR_OBJECT
- yield Update({co.CREATED: oldDate},
+ yield Update(
+ {co.CREATED: oldDate},
Where=co.RESOURCE_NAME.In(Parameter("itemsToPredate", len(itemsToPredate))).And(
- co.CALENDAR_RESOURCE_ID == inbox._resourceID)).on(self.transactionUnderTest(), itemsToPredate=itemsToPredate)
+ co.CALENDAR_RESOURCE_ID == inbox._resourceID)
+ ).on(self.transactionUnderTest(), itemsToPredate=itemsToPredate)
# do cleanup
yield self.transactionUnderTest().enqueue(CleanupOneInboxWork, homeID=inbox.ownerHome()._resourceID, notBefore=datetime.datetime.utcnow())
@@ -217,9 +219,10 @@
cal3Event = yield calendar.objectResourceWithName("cal3.ics")
tr = schema.TIME_RANGE
- yield Update({tr.END_DATE: datetime.datetime.utcnow()},
- Where=tr.CALENDAR_OBJECT_RESOURCE_ID == cal3Event._resourceID).on(
- self.transactionUnderTest())
+ yield Update(
+ {tr.END_DATE: datetime.datetime.utcnow()},
+ Where=tr.CALENDAR_OBJECT_RESOURCE_ID == cal3Event._resourceID
+ ).on(self.transactionUnderTest())
# do cleanup
yield self.transactionUnderTest().enqueue(CleanupOneInboxWork, homeID=calendar.ownerHome()._resourceID, notBefore=datetime.datetime.utcnow())
yield self.commit()
Modified: CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -246,7 +246,7 @@
calendar = yield self.calendarUnderTest(home="user01", name="calendar")
token = yield calendar.syncToken()
- #make changes
+ # make changes
cal1Object = yield self.calendarObjectUnderTest(self.transactionUnderTest(), name="cal1.ics", calendar_name="calendar", home="user01")
yield cal1Object.remove()
cal2Object = yield self.calendarObjectUnderTest(self.transactionUnderTest(), name="cal2.ics", calendar_name="calendar", home="user01")
@@ -297,7 +297,7 @@
home = yield self.homeUnderTest(name="user01")
token = yield home.syncToken()
- #make notification changes as side effect of sharing
+ # make notification changes as side effect of sharing
yield self._createCalendarShare()
# Get object revisions
@@ -346,7 +346,7 @@
addressbook = yield self.addressbookUnderTest(home="user01", name="addressbook")
token = yield addressbook.syncToken()
- #make changes
+ # make changes
card1Object = yield self.addressbookObjectUnderTest(self.transactionUnderTest(), name="card1.vcf", addressbook_name="addressbook", home="user01")
yield card1Object.remove()
card2Object = yield self.addressbookObjectUnderTest(self.transactionUnderTest(), name="card2.vcf", addressbook_name="addressbook", home="user01")
Modified: CalendarServer/trunk/txdav/dps/client.py
===================================================================
--- CalendarServer/trunk/txdav/dps/client.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/dps/client.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -54,17 +54,17 @@
log = Logger()
-##
-## Client implementation of Directory Proxy Service
-##
+#
+# Client implementation of Directory Proxy Service
+#
-## MOVE2WHO TODOs:
-## LDAP
-## Store based directory service (records in the store, i.e.
-## locations/resources)
-## Store autoAcceptGroups in the group db?
+# MOVE2WHO TODOs:
+# LDAP
+# Store based directory service (records in the store, i.e.
+# locations/resources)
+# Store autoAcceptGroups in the group db?
@implementer(IDirectoryService, IStoreDirectoryService)
class DirectoryService(BaseDirectoryService, CalendarDirectoryServiceMixin):
@@ -200,7 +200,6 @@
)
-
@inlineCallbacks
def _call(self, command, postProcess, **kwds):
"""
@@ -432,6 +431,7 @@
)
+
# Test client:
@inlineCallbacks
Modified: CalendarServer/trunk/txdav/dps/server.py
===================================================================
--- CalendarServer/trunk/txdav/dps/server.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/dps/server.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -47,9 +47,9 @@
log = Logger()
-##
-## Server implementation of Directory Proxy Service
-##
+#
+# Server implementation of Directory Proxy Service
+#
class DirectoryProxyAMPProtocol(amp.AMP):
@@ -254,8 +254,6 @@
returnValue(response)
-
-
@RecordsMatchingTokensCommand.responder
@inlineCallbacks
def recordsMatchingTokens(self, tokens, context=None):
@@ -269,7 +267,6 @@
returnValue(response)
-
@RecordsMatchingFieldsCommand.responder
@inlineCallbacks
def recordsMatchingFields(self, fields, operand="OR", recordType=None):
@@ -448,6 +445,7 @@
returnValue(response)
+
class DirectoryProxyAMPFactory(Factory):
"""
"""
Modified: CalendarServer/trunk/txdav/dps/test/test_client.py
===================================================================
--- CalendarServer/trunk/txdav/dps/test/test_client.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/dps/test/test_client.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -663,6 +663,7 @@
self.assertEquals(authenticated, answer)
+
class DPSClientLargeResultsTest(unittest.TestCase):
"""
Tests the client against a single directory service (as opposed to the
Modified: CalendarServer/trunk/txdav/who/augment.py
===================================================================
--- CalendarServer/trunk/txdav/who/augment.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/augment.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -91,6 +91,7 @@
return timingWrapper
+
@implementer(IDirectoryService, IStoreDirectoryService)
class AugmentedDirectoryService(
BaseDirectoryService, CalendarDirectoryServiceMixin
Modified: CalendarServer/trunk/txdav/who/directory.py
===================================================================
--- CalendarServer/trunk/txdav/who/directory.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/directory.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -110,8 +110,8 @@
searchContext_location = "location"
searchContext_resource = "resource"
- searchContext_user = "user"
- searchContext_group = "group"
+ searchContext_user = "user"
+ searchContext_group = "group"
searchContext_attendee = "attendee"
Modified: CalendarServer/trunk/txdav/who/test/support.py
===================================================================
--- CalendarServer/trunk/txdav/who/test/support.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/test/support.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -36,6 +36,7 @@
pass
+
class InMemoryDirectoryService(IndexDirectoryService):
"""
An in-memory IDirectoryService. You must call updateRecords( ) if you want
Modified: CalendarServer/trunk/txdav/who/test/test_group_attendees.py
===================================================================
--- CalendarServer/trunk/txdav/who/test/test_group_attendees.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/test/test_group_attendees.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -869,7 +869,7 @@
yield self.commit()
yield JobItem.waitEmpty(self._sqlCalendarStore.newTransaction, reactor, 60)
- #finally, simulate an event that has become old
+ # finally, simulate an event that has become old
self.patch(CalendarDirectoryRecordMixin, "expandedMembers", unpatchedExpandedMembers)
(
@@ -878,11 +878,10 @@
) = yield self.transactionUnderTest().groupByUID("group01")
ga = schema.GROUP_ATTENDEE
yield Insert({
- ga.RESOURCE_ID: cobj._resourceID,
- ga.GROUP_ID: groupID,
- ga.MEMBERSHIP_HASH: (-1),
- }
- ).on(self.transactionUnderTest())
+ ga.RESOURCE_ID: cobj._resourceID,
+ ga.GROUP_ID: groupID,
+ ga.MEMBERSHIP_HASH: (-1),
+ }).on(self.transactionUnderTest())
wps = yield groupCacher.refreshGroup(self.transactionUnderTest(), "group01")
self.assertEqual(len(wps), 1)
yield self.commit()
@@ -1032,7 +1031,7 @@
yield JobItem.waitEmpty(self._sqlCalendarStore.newTransaction, reactor, 60)
self.assertEqual(len(wps), 0)
- #finally, simulate an event that has become old
+ # finally, simulate an event that has become old
self.patch(CalendarDirectoryRecordMixin, "expandedMembers", unpatchedExpandedMembers)
(
@@ -1041,11 +1040,10 @@
) = yield self.transactionUnderTest().groupByUID("group01")
ga = schema.GROUP_ATTENDEE
yield Insert({
- ga.RESOURCE_ID: cobj._resourceID,
- ga.GROUP_ID: groupID,
- ga.MEMBERSHIP_HASH: (-1),
- }
- ).on(self.transactionUnderTest())
+ ga.RESOURCE_ID: cobj._resourceID,
+ ga.GROUP_ID: groupID,
+ ga.MEMBERSHIP_HASH: (-1),
+ }).on(self.transactionUnderTest())
wps = yield groupCacher.refreshGroup(self.transactionUnderTest(), "group01")
self.assertEqual(len(wps), 1)
yield self.commit()
@@ -1194,7 +1192,7 @@
)
)
- #TODO: add some meaningful test
+ # TODO: add some meaningful test
'''
cal = yield self.calendarUnderTest(name="calendar", home="user01")
cobjs = yield cal.objectResources()
@@ -1344,7 +1342,7 @@
)
yield self._verifyObjectResourceCount("user01", 1)
- #TODO: add some meaningful test
+ # TODO: add some meaningful test
'''
cal = yield self.calendarUnderTest(name="calendar", home="user01")
cobjs = yield cal.objectResources()
Modified: CalendarServer/trunk/txdav/who/test/test_group_sharees.py
===================================================================
--- CalendarServer/trunk/txdav/who/test/test_group_sharees.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/test/test_group_sharees.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -94,9 +94,9 @@
"""
Get the calendar detailed by C{requirements['home1']['calendar_1']}.
"""
- returnValue((yield
- (yield self.homeUnderTest(txn, home)).shareeView(shareUID))
- )
+ returnValue((
+ yield (yield self.homeUnderTest(txn, home)).shareeView(shareUID)
+ ))
Modified: CalendarServer/trunk/txdav/who/vcard.py
===================================================================
--- CalendarServer/trunk/txdav/who/vcard.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/vcard.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -37,44 +37,44 @@
recordTypeToVCardKindMap = {
- RecordType.user: "individual",
- RecordType.group: "group",
- CalRecordType.location: "location",
- CalRecordType.resource: "device",
+ RecordType.user: "individual",
+ RecordType.group: "group",
+ CalRecordType.location: "location",
+ CalRecordType.resource: "device",
}
vCardKindToRecordTypeMap = {
- "individual" : RecordType.user,
- "group": RecordType.group,
- "org": RecordType.group,
- "location": CalRecordType.location,
- "device": CalRecordType.resource,
+ "individual" : RecordType.user,
+ "group": RecordType.group,
+ "org": RecordType.group,
+ "location": CalRecordType.location,
+ "device": CalRecordType.resource,
}
# all possible generated parameters.
vCardPropToParamMap = {
- #"PHOTO": {"ENCODING": ("B",), "TYPE": ("JPEG",), },
+ # "PHOTO": {"ENCODING": ("B",), "TYPE": ("JPEG",), },
"ADR": {"TYPE": ("WORK", "PREF", "POSTAL", "PARCEL",),
"LABEL": None, "GEO": None, },
"LABEL": {"TYPE": ("POSTAL", "PARCEL",)},
- #"TEL": {"TYPE": None, }, # None means param value can be anything
+ # "TEL": {"TYPE": None, }, # None means param value can be anything
"EMAIL": {"TYPE": None, },
- #"KEY": {"ENCODING": ("B",), "TYPE": ("PGPPUBILICKEY", "USERCERTIFICATE", "USERPKCS12DATA", "USERSMIMECERTIFICATE",)},
- #"URL": {"TYPE": ("WEBLOG", "HOMEPAGE",)},
- #"IMPP": {"TYPE": ("PREF",), "X-SERVICE-TYPE": None, },
- #"X-ABRELATEDNAMES": {"TYPE": None, },
- #"X-AIM": {"TYPE": ("PREF",), },
- #"X-JABBER": {"TYPE": ("PREF",), },
- #"X-MSN": {"TYPE": ("PREF",), },
- #"X-ICQ": {"TYPE": ("PREF",), },
+ # "KEY": {"ENCODING": ("B",), "TYPE": ("PGPPUBILICKEY", "USERCERTIFICATE", "USERPKCS12DATA", "USERSMIMECERTIFICATE",)},
+ # "URL": {"TYPE": ("WEBLOG", "HOMEPAGE",)},
+ # "IMPP": {"TYPE": ("PREF",), "X-SERVICE-TYPE": None, },
+ # "X-ABRELATEDNAMES": {"TYPE": None, },
+ # "X-AIM": {"TYPE": ("PREF",), },
+ # "X-JABBER": {"TYPE": ("PREF",), },
+ # "X-MSN": {"TYPE": ("PREF",), },
+ # "X-ICQ": {"TYPE": ("PREF",), },
}
vCardConstantProperties = {
- #===================================================================
+ # ====================================================================
# 3.6 EXPLANATORY TYPES http://tools.ietf.org/html/rfc2426#section-3.6
- #===================================================================
+ # ====================================================================
# 3.6.3 PRODID
"PRODID": vCardProductID,
# 3.6.9 VERSION
@@ -107,12 +107,13 @@
prop=newProperty
)
- #=======================================================================
+ # =======================================================================
# start
- #=======================================================================
+ # =======================================================================
- log.debug("vCardFromRecord: record={record}, forceKind={forceKind}, addProps={addProps}, parentURI={parentURI}",
- record=record, forceKind=forceKind, addProps=addProps, parentURI=parentURI)
+ log.debug(
+ "vCardFromRecord: record={record}, forceKind={forceKind}, addProps={addProps}, parentURI={parentURI}",
+ record=record, forceKind=forceKind, addProps=addProps, parentURI=parentURI)
if forceKind is None:
kind = recordTypeToVCardKindMap.get(record.recordType, "individual")
@@ -132,9 +133,9 @@
for key, value in constantProperties.items():
vcard.addProperty(Property(key, value))
- #===========================================================================
+ # ===========================================================================
# 2.1 Predefined Type Usage
- #===========================================================================
+ # ===========================================================================
# 2.1.4 SOURCE Type http://tools.ietf.org/html/rfc2426#section-2.1.4
if parentURI:
uri = joinURL(parentURI, record.fields[FieldName.uid].encode("utf-8") + ".vcf")
@@ -152,9 +153,9 @@
source = "https://{server}:{port}{uri}".format(server=config.ServerHostName, port=config.HTTPPort, uri=uri)
vcard.addProperty(Property("SOURCE", source))
- #===================================================================
+ # =======================================================================
# 3.1 IDENTIFICATION TYPES http://tools.ietf.org/html/rfc2426#section-3.1
- #===================================================================
+ # =======================================================================
# 3.1.1 FN
vcard.addProperty(Property("FN", record.fields[FieldName.fullNames][0].encode("utf-8")))
@@ -185,9 +186,9 @@
# 3.1.4 PHOTO
# 3.1.5 BDAY
- #===========================================================================
+ # ============================================================================
# 3.2 Delivery Addressing Types http://tools.ietf.org/html/rfc2426#section-3.2
- #===========================================================================
+ # ============================================================================
# 3.2.1 ADR
#
# Experimental:
@@ -215,7 +216,7 @@
vcard.addProperty(
Property(
"ADR", Adr(
- #pobox = box,
+ # pobox = box,
extended=extended.encode("utf-8") if extended else None,
street=street.encode("utf-8") if street else None,
locality=city.encode("utf-8") if city else None,
@@ -228,13 +229,13 @@
)
# 3.2.2 LABEL
- #label = record.fields.get(CalFieldName.streetAddress)
+ # label = record.fields.get(CalFieldName.streetAddress)
if label:
vcard.addProperty(Property("LABEL", label.encode("utf-8"), params={"TYPE": ["POSTAL", "PARCEL", ]}))
- #===================================================================
+ # ======================================================================================
# 3.3 TELECOMMUNICATIONS ADDRESSING TYPES http://tools.ietf.org/html/rfc2426#section-3.3
- #===================================================================
+ # ======================================================================================
#
# UNIMPLEMENTED
# 3.3.1 TEL
@@ -250,9 +251,9 @@
# UNIMPLEMENTED:
# 3.3.3 MAILER
#
- #===================================================================
+ # =====================================================================
# 3.4 GEOGRAPHICAL TYPES http://tools.ietf.org/html/rfc2426#section-3.4
- #===================================================================
+ # =====================================================================
#
# UNIMPLEMENTED:
# 3.4.1 TZ
@@ -262,9 +263,9 @@
if geographicLocation:
vcard.addProperty(Property("GEO", geographicLocation.encode("utf-8")))
- #===================================================================
+ # =======================================================================
# 3.5 ORGANIZATIONAL TYPES http://tools.ietf.org/html/rfc2426#section-3.5
- #===================================================================
+ # =======================================================================
#
# UNIMPLEMENTED:
# 3.5.1 TITLE
@@ -273,9 +274,9 @@
# 3.5.4 AGENT
# 3.5.5 ORG
#
- #===================================================================
+ # ====================================================================
# 3.6 EXPLANATORY TYPES http://tools.ietf.org/html/rfc2426#section-3.6
- #===================================================================
+ # ====================================================================
#
# UNIMPLEMENTED:
# 3.6.1 CATEGORIES
@@ -297,16 +298,16 @@
# ADDED WITH CONTSTANT PROPERTIES:
# 3.6.9 VERSION
- #===================================================================
+ # ===================================================================
# 3.7 SECURITY TYPES http://tools.ietf.org/html/rfc2426#section-3.7
- #===================================================================
+ # ===================================================================
# UNIMPLEMENTED:
# 3.7.1 CLASS
# 3.7.2 KEY
- #===================================================================
+ # ===================================================================
# X Properties
- #===================================================================
+ # ===================================================================
# UNIMPLEMENTED:
# X-<instant messaging type> such as:
# "AIM", "FACEBOOK", "GAGU-GAGU", "GOOGLE TALK", "ICQ", "JABBER", "MSN", "QQ", "SKYPE", "YAHOO",
@@ -327,9 +328,9 @@
if cua:
vcard.addProperty(Property("X-ADDRESSBOOKSERVER-MEMBER", cua.encode("utf-8")))
- #===================================================================
+ # ===================================================================
# vCard 4.0 http://tools.ietf.org/html/rfc6350
- #===================================================================
+ # ===================================================================
# UNIMPLEMENTED:
# 6.4.3 IMPP http://tools.ietf.org/html/rfc6350#section-6.4.3
#
Modified: CalendarServer/trunk/txdav/xml/base.py
===================================================================
--- CalendarServer/trunk/txdav/xml/base.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/base.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -264,8 +264,8 @@
def __eq__(self, other):
if isinstance(other, WebDAVElement):
return (
- self.name == other.name and
- self.namespace == other.namespace and
+ self.name == other.name and
+ self.namespace == other.namespace and
self.attributes == other.attributes and
self.children == other.children
)
@@ -301,8 +301,10 @@
output.write(" " * level)
# Check for empty element (one with either no children or a single PCDATA that is itself empty)
- if (len(self.children) == 0 or
- (len(self.children) == 1 and isinstance(self.children[0], PCDATAElement) and len(str(self.children[0])) == 0)):
+ if (
+ len(self.children) == 0 or
+ (len(self.children) == 1 and isinstance(self.children[0], PCDATAElement) and len(str(self.children[0])) == 0)
+ ):
# Write out any attributes or the namespace if difference from enclosing element.
if self.attributes or (ns != self.namespace):
@@ -822,7 +824,7 @@
delta = (offset_hour * 60) + offset_minute
- if offset_sign == "+":
+ if offset_sign == "+":
offset = FixedOffset(0 - delta)
elif offset_sign == "-":
offset = FixedOffset(0 + delta)
Modified: CalendarServer/trunk/txdav/xml/parser_sax.py
===================================================================
--- CalendarServer/trunk/txdav/xml/parser_sax.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/parser_sax.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -176,7 +176,7 @@
except xml.sax.SAXParseException, e:
raise ValueError(e)
- #handler.dom.root_element.validate()
+ # handler.dom.root_element.validate()
return handler.dom
@@ -184,5 +184,5 @@
def writeXML(self, output):
document = xml.dom.minidom.Document()
self.root_element.addToDOM(document, None)
- #document.normalize()
+ # document.normalize()
xmlPrint(document, output)
Modified: CalendarServer/trunk/txdav/xml/rfc2518.py
===================================================================
--- CalendarServer/trunk/txdav/xml/rfc2518.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/rfc2518.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -299,7 +299,7 @@
propstat_count = 0
for child in children:
- if isinstance(child, HRef):
+ if isinstance(child, HRef):
resource_count += 1
elif isinstance(child, Status):
status_count += 1
@@ -311,7 +311,7 @@
"{0} element must have at least one {1}.".format(
cls.sname(), HRef.sname()
)
- )
+ )
if status_count is 0:
if propstat_count is 0:
@@ -326,7 +326,7 @@
"{0} element with {1} may only have one {2}".format(
cls.sname(), PropertyStatus.sname(), HRef.sname()
)
- )
+ )
return PropertyStatusResponse.__new__(PropertyStatusResponse, *children)
Modified: CalendarServer/trunk/txdav/xml/rfc5842.py
===================================================================
--- CalendarServer/trunk/txdav/xml/rfc5842.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/rfc5842.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -90,9 +90,9 @@
# sub-elements and so that can extend it here.
-#@registerElement
-#@registerElementClass
-#class BindResponse (WebDAVElement):
+# @registerElement
+# @registerElementClass
+# class BindResponse (WebDAVElement):
# """
# Response body for a BIND request
# """
@@ -104,9 +104,9 @@
# }
#
#
-#@registerElement
-#@registerElementClass
-#class UnbindRequest (WebDAVElement):
+# @registerElement
+# @registerElementClass
+# class UnbindRequest (WebDAVElement):
# """
# Request body for a UNBIND request
# """
@@ -118,9 +118,9 @@
# }
#
#
-#@registerElement
-#@registerElementClass
-#class Unbind (WebDAVElement):
+# @registerElement
+# @registerElementClass
+# class Unbind (WebDAVElement):
# """
# Response body for a UNBIND request
# """
@@ -132,9 +132,9 @@
# }
#
#
-#@registerElement
-#@registerElementClass
-#class RebindRequest (WebDAVElement):
+# @registerElement
+# @registerElementClass
+# class RebindRequest (WebDAVElement):
# """
# Request body for a REBIND request
# """
@@ -147,9 +147,9 @@
# }
#
#
-#@registerElement
-#@registerElementClass
-#class Rebind (WebDAVElement):
+# @registerElement
+# @registerElementClass
+# class Rebind (WebDAVElement):
# """
# Response body for a UNBIND request
# """
Modified: CalendarServer/trunk/txdav/xml/test/test_xml.py
===================================================================
--- CalendarServer/trunk/txdav/xml/test/test_xml.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/test/test_xml.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -50,8 +50,9 @@
element = MultiStatus(
Response(
HRef("http://webdav.sb.aol.com/webdav/secret"),
- Status("HTTP/1.1 403 Forbidden")),
- )
+ Status("HTTP/1.1 403 Forbidden")
+ ),
+ )
Modified: CalendarServer/trunk/txdav/xml/xmlext.py
===================================================================
--- CalendarServer/trunk/txdav/xml/xmlext.py 2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/xmlext.py 2014-07-31 20:15:15 UTC (rev 13809)
@@ -46,10 +46,11 @@
preserveElements = preserveElements or []
owner_doc = root.ownerDocument or root
if hasattr(owner_doc, 'getElementsByName'):
- #We don't want to insert any whitespace into HTML inline elements
+ # We don't want to insert any whitespace into HTML inline elements
preserveElements = preserveElements + HTML_4_TRANSITIONAL_INLINE
- visitor = PrintVisitor(stream, encoding, indent,
- preserveElements, nss_hints)
+ visitor = PrintVisitor(
+ stream, encoding, indent,
+ preserveElements, nss_hints)
PrintWalker(visitor, root).run()
stream.write('\n')
return
@@ -57,7 +58,7 @@
def GetAllNs(node):
- #The xml namespace is implicit
+ # The xml namespace is implicit
nss = {'xml': XML_NAMESPACE}
if node.nodeType == Node.ATTRIBUTE_NODE and node.ownerElement:
return GetAllNs(node.ownerElement)
@@ -73,7 +74,7 @@
elif attr.namespaceURI:
nss[attr.prefix] = attr.namespaceURI
if node.parentNode:
- #Inner NS/Prefix mappings take precedence over outer ones
+ # Inner NS/Prefix mappings take precedence over outer ones
parent_nss = GetAllNs(node.parentNode)
parent_nss.update(nss)
nss = parent_nss
@@ -210,7 +211,7 @@
def visitProlog(self):
self._write("<?xml version='1.0' encoding='%s'?>" % (
self.encoding or 'utf-8'
- ))
+ ))
self._inText = 0
return
@@ -391,16 +392,16 @@
ILLEGAL_LOW_CHARS = '[\x01-\x08\x0B-\x0C\x0E-\x1F]'
SURROGATE_BLOCK = '[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]'
ILLEGAL_HIGH_CHARS = '\xEF\xBF[\xBE\xBF]'
-#Note: Prolly fuzzy on this, but it looks as if characters from the surrogate block are allowed if in scalar form, which is encoded in UTF8 the same was as in surrogate block form
+# Note: Prolly fuzzy on this, but it looks as if characters from the surrogate block are allowed if in scalar form, which is encoded in UTF8 the same was as in surrogate block form
XML_ILLEGAL_CHAR_PATTERN = re.compile('%s|%s' % (ILLEGAL_LOW_CHARS, ILLEGAL_HIGH_CHARS))
g_utf8TwoBytePattern = re.compile('([\xC0-\xC3])([\x80-\xBF])')
g_cdataCharPattern = re.compile('[&<]|]]>')
g_charToEntity = {
- '&': '&',
- '<': '<',
- ']]>': ']]>',
- }
+ '&': '&',
+ '<': '<',
+ ']]>': ']]>',
+}
# Slightly modified to not use types.Unicode
import codecs
@@ -418,7 +419,7 @@
encoder = codecs.lookup(encoding)[0] # encode,decode,reader,writer
if type(text) is not unicode:
text = unicode(text, "utf-8")
- #FIXME
+ # FIXME
return str(encoder(text)[0])
@@ -433,8 +434,8 @@
else:
delimiter = "'"
new_chars = re.sub("'", ''', characters)
- #FIXME: There's more to normalization
- #Convert attribute new-lines to character entity
+ # FIXME: There's more to normalization
+ # Convert attribute new-lines to character entity
# characters is possibly shorter than new_chars (no entities)
if "\n" in characters:
new_chars = re.sub('\n', ' ', new_chars)
@@ -442,7 +443,7 @@
-#Note: Unicode object only for now
+# Note: Unicode object only for now
def TranslateCdata(characters, encoding='UTF-8', prev_chars='', markupSafe=0,
charsetHandler=utf8_to_code):
"""
@@ -464,9 +465,9 @@
new_string = '>' + new_string[1:]
else:
new_string = characters
- #Note: use decimal char entity rep because some browsers are broken
- #FIXME: This will bomb for high characters. Should, for instance, detect
- #The UTF-8 for 0xFFFE and put out 
+ # Note: use decimal char entity rep because some browsers are broken
+ # FIXME: This will bomb for high characters. Should, for instance, detect
+ # The UTF-8 for 0xFFFE and put out 
if XML_ILLEGAL_CHAR_PATTERN.search(new_string):
new_string = XML_ILLEGAL_CHAR_PATTERN.subn(
lambda m: '&#%i;' % ord(m.group()),
@@ -477,20 +478,20 @@
def TranslateHtmlCdata(characters, encoding='UTF-8', prev_chars=''):
- #Translate numerical char entity references with HTML entity equivalents
+ # Translate numerical char entity references with HTML entity equivalents
new_string, _ignore_num_subst = re.subn(
g_cdataCharPattern,
lambda m, d=g_charToEntity: d[m.group()],
characters
- )
+ )
if prev_chars[-2:] == ']]' and new_string[0] == '>':
new_string = '>' + new_string[1:]
new_string = UseHtmlCharEntities(new_string)
try:
new_string = utf8_to_code(new_string, encoding)
except:
- #FIXME: This is a work-around, contributed by Mike Brown, that
- #Deals with escaping output, until we have XML/HTML aware codecs
+ # FIXME: This is a work-around, contributed by Mike Brown, that
+ # Deals with escaping output, until we have XML/HTML aware codecs
tmp_new_string = ""
for c in new_string:
try:
@@ -499,8 +500,8 @@
new_c = '&#%i;' % ord(c)
tmp_new_string = tmp_new_string + new_c
new_string = tmp_new_string
- #new_string, num_subst = re.subn(g_xmlIllegalCharPattern, lambda m: '&#%i;'%ord(m.group()), new_string)
- #Note: use decimal char entity rep because some browsers are broken
+ # new_string, num_subst = re.subn(g_xmlIllegalCharPattern, lambda m: '&#%i;'%ord(m.group()), new_string)
+ # Note: use decimal char entity rep because some browsers are broken
return new_string
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140731/c839641c/attachment-0001.html>
More information about the calendarserver-changes
mailing list