[CalendarServer-changes] [10798] CalendarServer/trunk/twext/who
source_changes at macosforge.org
source_changes at macosforge.org
Thu Feb 21 20:29:26 PST 2013
Revision: 10798
http://trac.calendarserver.org//changeset/10798
Author: wsanchez at apple.com
Date: 2013-02-21 20:29:26 -0800 (Thu, 21 Feb 2013)
Log Message:
-----------
Handle flags in describe()
Modified Paths:
--------------
CalendarServer/trunk/twext/who/test/test_util.py
CalendarServer/trunk/twext/who/util.py
Modified: CalendarServer/trunk/twext/who/test/test_util.py
===================================================================
--- CalendarServer/trunk/twext/who/test/test_util.py 2013-02-22 04:01:00 UTC (rev 10797)
+++ CalendarServer/trunk/twext/who/test/test_util.py 2013-02-22 04:29:26 UTC (rev 10798)
@@ -20,6 +20,7 @@
from twisted.trial import unittest
from twisted.python.constants import Names, NamedConstant
+from twisted.python.constants import Flags, FlagConstant
from twext.who.idirectory import DirectoryServiceError
from twext.who.util import ConstantsContainer
@@ -35,12 +36,26 @@
screwdriver.description = "screw twister"
+
class Instruments(Names):
hammer = NamedConstant()
chisel = NamedConstant()
+class Switches(Flags):
+ r = FlagConstant()
+ g = FlagConstant()
+ b = FlagConstant()
+
+ r.description = "red"
+ g.description = "green"
+ b.description = "blue"
+
+ black = FlagConstant()
+
+
+
class ConstantsContainerTest(unittest.TestCase):
def test_conflict(self):
constants = set((Tools.hammer, Instruments.hammer))
@@ -98,3 +113,8 @@
def test_describe(self):
self.assertEquals("nail pounder", describe(Tools.hammer))
self.assertEquals("hammer", describe(Instruments.hammer))
+
+ def test_describeFlags(self):
+ self.assertEquals("blue", describe(Switches.b))
+ self.assertEquals("red|green", describe(Switches.r|Switches.g))
+ self.assertEquals("blue|black", describe(Switches.b|Switches.black))
Modified: CalendarServer/trunk/twext/who/util.py
===================================================================
--- CalendarServer/trunk/twext/who/util.py 2013-02-22 04:01:00 UTC (rev 10797)
+++ CalendarServer/trunk/twext/who/util.py 2013-02-22 04:29:26 UTC (rev 10798)
@@ -26,6 +26,8 @@
"iterFlags",
]
+from twisted.python.constants import FlagConstant
+
from twext.who.idirectory import DirectoryServiceError
@@ -70,7 +72,13 @@
def describe(constant):
- return getattr(constant, "description", constant.name)
+ if isinstance(constant, FlagConstant):
+ parts = []
+ for flag in iterFlags(constant):
+ parts.append(getattr(flag, "description", flag.name))
+ return "|".join(parts)
+ else:
+ return getattr(constant, "description", constant.name)
def iterFlags(flags):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130221/32fe6037/attachment-0001.html>
More information about the calendarserver-changes
mailing list