[CalendarServer-changes] [13451] CalendarServer/trunk/txdav/who

source_changes at macosforge.org source_changes at macosforge.org
Tue May 6 11:56:28 PDT 2014


Revision: 13451
          http://trac.calendarserver.org//changeset/13451
Author:   sagen at apple.com
Date:     2014-05-06 11:56:28 -0700 (Tue, 06 May 2014)
Log Message:
-----------
Adds test for getAutoSchedule, and "accept" is not overridden by auto-accept-group

Modified Paths:
--------------
    CalendarServer/trunk/txdav/who/directory.py
    CalendarServer/trunk/txdav/who/test/test_directory.py

Modified: CalendarServer/trunk/txdav/who/directory.py
===================================================================
--- CalendarServer/trunk/txdav/who/directory.py	2014-05-06 18:26:34 UTC (rev 13450)
+++ CalendarServer/trunk/txdav/who/directory.py	2014-05-06 18:56:28 UTC (rev 13451)
@@ -445,8 +445,16 @@
     @inlineCallbacks
     def getAutoScheduleMode(self, organizer):
         autoScheduleMode = self.autoScheduleMode
-        if (yield self.autoAcceptFromOrganizer(organizer)):
-            autoScheduleMode = AutoScheduleMode.acceptIfFreeDeclineIfBusy
+        if (
+            autoScheduleMode not in
+            (
+                AutoScheduleMode.accept,
+                AutoScheduleMode.acceptIfFreeDeclineIfBusy
+            )
+        ):
+            if (yield self.autoAcceptFromOrganizer(organizer)):
+                autoScheduleMode = AutoScheduleMode.acceptIfFreeDeclineIfBusy
+
         returnValue(autoScheduleMode)
 
 

Modified: CalendarServer/trunk/txdav/who/test/test_directory.py
===================================================================
--- CalendarServer/trunk/txdav/who/test/test_directory.py	2014-05-06 18:26:34 UTC (rev 13450)
+++ CalendarServer/trunk/txdav/who/test/test_directory.py	2014-05-06 18:56:28 UTC (rev 13451)
@@ -22,7 +22,7 @@
 from twistedcaldav.test.util import StoreTestCase
 from twext.who.directory import DirectoryRecord
 from twext.who.idirectory import FieldName, RecordType
-from txdav.who.directory import CalendarDirectoryRecordMixin
+from txdav.who.directory import CalendarDirectoryRecordMixin, AutoScheduleMode
 from uuid import UUID
 from twext.who.expression import (
     MatchType, MatchFlags, MatchExpression
@@ -202,3 +202,81 @@
             u"mailto:nocalendar at example.com"
         )
         self.assertEquals(record, None)
+
+
+    @inlineCallbacks
+    def test_getAutoScheduleMode(self):
+
+        apollo = yield self.directory.recordWithUID(u"apollo")
+
+        # both_coasts is the auto accept group, cdaboo is a member, and
+        # sagen is not
+
+        inGroup = yield self.directory.recordWithShortName(
+            self.directory.recordType.user,
+            u"cdaboo"
+        )
+        notInGroup = yield self.directory.recordWithShortName(
+            self.directory.recordType.user,
+            u"sagen"
+        )
+
+        expectations = (
+
+            # the record's mode
+            # effective mode when organizer is in the auto-accept-group
+            # effective mode when organizer is not in the auto-accept-group
+
+            (
+                AutoScheduleMode.none,
+                AutoScheduleMode.acceptIfFreeDeclineIfBusy,
+                AutoScheduleMode.none,
+            ),
+            (
+                AutoScheduleMode.accept,
+                AutoScheduleMode.accept,
+                AutoScheduleMode.accept,
+            ),
+            (
+                AutoScheduleMode.decline,
+                AutoScheduleMode.acceptIfFreeDeclineIfBusy,
+                AutoScheduleMode.decline,
+            ),
+            (
+                AutoScheduleMode.acceptIfFree,
+                AutoScheduleMode.acceptIfFreeDeclineIfBusy,
+                AutoScheduleMode.acceptIfFree,
+            ),
+            (
+                AutoScheduleMode.declineIfBusy,
+                AutoScheduleMode.acceptIfFreeDeclineIfBusy,
+                AutoScheduleMode.declineIfBusy,
+            ),
+            (
+                AutoScheduleMode.acceptIfFreeDeclineIfBusy,
+                AutoScheduleMode.acceptIfFreeDeclineIfBusy,
+                AutoScheduleMode.acceptIfFreeDeclineIfBusy,
+            ),
+        )
+
+        for mode, inGroupMode, notInGroupMode in expectations:
+            apollo.fields[self.directory.fieldName.autoScheduleMode] = mode
+
+            # In auto accept group
+            self.assertEquals(
+                (
+                    yield apollo.getAutoScheduleMode(
+                        inGroup.canonicalCalendarUserAddress()
+                    )
+                ),
+                inGroupMode
+            )
+            # Not in auto accept group
+            self.assertEquals(
+                (
+                    yield apollo.getAutoScheduleMode(
+                        notInGroup.canonicalCalendarUserAddress()
+                    )
+                ),
+                notInGroupMode
+            )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140506/9e9f294e/attachment-0001.html>


More information about the calendarserver-changes mailing list