[CalendarServer-changes] [5018] CalendarServer/trunk/txcaldav/calendarstore

source_changes at macosforge.org source_changes at macosforge.org
Tue Feb 2 13:37:57 PST 2010


Revision: 5018
          http://trac.macosforge.org/projects/calendarserver/changeset/5018
Author:   wsanchez at apple.com
Date:     2010-02-02 13:37:57 -0800 (Tue, 02 Feb 2010)
Log Message:
-----------
Wire up xattr properties

Modified Paths:
--------------
    CalendarServer/trunk/txcaldav/calendarstore/file.py
    CalendarServer/trunk/txcaldav/calendarstore/test/test_file.py

Modified: CalendarServer/trunk/txcaldav/calendarstore/file.py
===================================================================
--- CalendarServer/trunk/txcaldav/calendarstore/file.py	2010-02-02 21:36:56 UTC (rev 5017)
+++ CalendarServer/trunk/txcaldav/calendarstore/file.py	2010-02-02 21:37:57 UTC (rev 5018)
@@ -34,6 +34,8 @@
 from twext.log import LoggingMixIn
 from twext.python.icalendar import Component as iComponent, InvalidICalendarDataError
 
+from txdav.propertystore.xattr import PropertyStore
+
 from txcaldav.icalendarstore import ICalendarHome, ICalendar, ICalendarObject
 #from txcaldav.icalendarstore import CalendarStoreError
 #from txcaldav.icalendarstore import AlreadyExistsError
@@ -104,7 +106,9 @@
         raise NotImplementedError()
 
     def properties(self):
-        raise NotImplementedError()
+        if not hasattr(self, "_properties"):
+            self._properties = PropertyStore(self.path)
+        return self._properties
 
 
 class Calendar(LoggingMixIn):
@@ -157,7 +161,9 @@
         raise NotImplementedError()
 
     def properties(self):
-        raise NotImplementedError()
+        if not hasattr(self, "_properties"):
+            self._properties = PropertyStore(self.path)
+        return self._properties
 
 
 class CalendarObject(LoggingMixIn):
@@ -242,4 +248,6 @@
         return self.component().getOrganizer()
 
     def properties(self):
-        raise NotImplementedError()
+        if not hasattr(self, "_properties"):
+            self._properties = PropertyStore(self.path)
+        return self._properties

Modified: CalendarServer/trunk/txcaldav/calendarstore/test/test_file.py
===================================================================
--- CalendarServer/trunk/txcaldav/calendarstore/test/test_file.py	2010-02-02 21:36:56 UTC (rev 5017)
+++ CalendarServer/trunk/txcaldav/calendarstore/test/test_file.py	2010-02-02 21:37:57 UTC (rev 5018)
@@ -50,6 +50,17 @@
     "3.ics",
 )
 
+
+class PropertiesTestMixin(object):
+    def test_properties(self):
+        properties = self.home1.properties()
+
+        self.failUnless(
+            IPropertyStore.providedBy(properties),
+            properties
+        )
+
+
 class CalendarStoreTest(unittest.TestCase):
     def setUp(self):
         self.calendarStore = CalendarStore(storePath)
@@ -70,7 +81,7 @@
         assert isinstance(calendarHome, CalendarHome)
 
 
-class CalendarHomeTest(unittest.TestCase):
+class CalendarHomeTest(unittest.TestCase, PropertiesTestMixin):
     def setUp(self):
         self.calendarStore = CalendarStore(storePath)
         self.home1 = self.calendarStore.calendarHomeWithUID("home1")
@@ -98,7 +109,7 @@
         calendars = tuple(self.home1.calendars())
 
         for calendar in calendars:
-            self.failUnless(isinstance(calendar, Calendar))
+            self.failUnless(isinstance(calendar, Calendar), calendar)
 
         self.assertEquals(
             tuple(c.name() for c in calendars),
@@ -108,7 +119,7 @@
     def test_calendarWithName(self):
         for name in home1_calendarNames:
             calendar = self.home1.calendarWithName(name)
-            self.failUnless(isinstance(calendar, Calendar))
+            self.failUnless(isinstance(calendar, Calendar), calendar)
             self.assertEquals(calendar.name(), name)
 
     def test_createCalendarWithName(self):
@@ -119,15 +130,8 @@
         raise NotImplementedError()
     test_removeCalendarWithName.todo = "Unimplemented"
 
-    def test_properties(self):
-        properties = self.home1.properties()
 
-        # FIXME: check specific class later?
-        self.failUnless(IPropertyStore.providedBy(properties))
-    test_properties.todo = "Unimplemented"
-
-
-class CalendarTest(unittest.TestCase):
+class CalendarTest(unittest.TestCase, PropertiesTestMixin):
     def setUp(self):
         self.calendarStore = CalendarStore(storePath)
         self.home1 = self.calendarStore.calendarHomeWithUID("home1")
@@ -163,7 +167,10 @@
         calendarObjects = tuple(self.calendar1.calendarObjects())
 
         for calendarObject in calendarObjects:
-            self.failUnless(isinstance(calendarObject, CalendarObject))
+            self.failUnless(
+                isinstance(calendarObject, CalendarObject),
+                calendarObject
+            )
 
         self.assertEquals(
             tuple(o.name() for o in calendarObjects),
@@ -173,7 +180,10 @@
     def test_calendarObjectWithName(self):
         for name in calendar1_objectNames:
             calendarObject = self.calendar1.calendarObjectWithName(name)
-            self.failUnless(isinstance(calendarObject, CalendarObject))
+            self.failUnless(
+                isinstance(calendarObject, CalendarObject),
+                calendarObject
+            )
             self.assertEquals(calendarObject.name(), name)
 
     def test_calendarObjectWithUID(self):
@@ -204,12 +214,8 @@
         raise NotImplementedError()
     test_calendarObjectsSinceToken.todo = "Unimplemented"
 
-    def test_properties(self):
-        raise NotImplementedError()
-    test_properties.todo = "Unimplemented"
 
-
-class CalendarObjectTest(unittest.TestCase):
+class CalendarObjectTest(unittest.TestCase, PropertiesTestMixin):
     def setUp(self):
         self.calendarStore = CalendarStore(storePath)
         self.home1 = self.calendarStore.calendarHomeWithUID("home1")
@@ -266,7 +272,3 @@
 
     def test_organizer(self):
         self.assertEquals(self.object1.organizer(), "mailto:wsanchez at apple.com")
-
-    def test_properties(self):
-        raise NotImplementedError()
-    test_properties.todo = "Unimplemented"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100202/78af3baf/attachment.html>


More information about the calendarserver-changes mailing list