[CalendarServer-changes] [12592] twext/trunk/twext/who
source_changes at macosforge.org
source_changes at macosforge.org
Wed Mar 12 11:18:23 PDT 2014
Revision: 12592
http://trac.calendarserver.org//changeset/12592
Author: wsanchez at apple.com
Date: 2014-02-06 12:28:18 -0800 (Thu, 06 Feb 2014)
Log Message:
-----------
Fix order issues with DirectoryRecord.description, make the output nicer.
Modified Paths:
--------------
twext/trunk/twext/who/directory.py
twext/trunk/twext/who/test/test_directory.py
Modified: twext/trunk/twext/who/directory.py
===================================================================
--- twext/trunk/twext/who/directory.py 2014-02-06 19:28:31 UTC (rev 12591)
+++ twext/trunk/twext/who/directory.py 2014-02-06 20:28:18 UTC (rev 12592)
@@ -452,26 +452,37 @@
@return: A description.
@rtype: L{unicode}
"""
- description = [self.__class__.__name__, u":"]
+ def describeValue(value):
+ if hasattr(value, "description"):
+ value = value.description
+ else:
+ value = unicode(value)
- for name in sorted(self.service.fieldName.iterconstants()):
- if name not in self.fields:
+ return value
+
+ values = {}
+
+ for fieldName in self.service.fieldName.iterconstants():
+ if fieldName not in self.fields:
continue
- value = self.fields[name]
+ value = self.fields[fieldName]
- if hasattr(name, "description"):
- name = name.description
+ if hasattr(fieldName, "description"):
+ name = fieldName.description
else:
- name = unicode(name)
+ name = unicode(fieldName.name)
- if hasattr(value, "description"):
- value = value.description
+ if self.service.fieldName.isMultiValue(fieldName):
+ values[name] = ", ".join(describeValue(v) for v in value)
else:
- value = unicode(value)
+ values[name] = describeValue(value)
- description.append(u"\n {0} = {1!r}".format(name, value))
+ description = [self.__class__.__name__, u":"]
+ for name in sorted(values.iterkeys()):
+ description.append(u"\n {0} = {1}".format(name, values[name]))
+
description.append(u"\n")
return u"".join(description)
Modified: twext/trunk/twext/who/test/test_directory.py
===================================================================
--- twext/trunk/twext/who/test/test_directory.py 2014-02-06 19:28:31 UTC (rev 12591)
+++ twext/trunk/twext/who/test/test_directory.py 2014-02-06 20:28:18 UTC (rev 12592)
@@ -878,25 +878,23 @@
"""
L{DirectoryRecord.description} returns the expected string.
"""
- sagen = self.makeRecord(self.fields_sagen)
+ sagen = self.makeRecord(self.fields_wsanchez)
self.assertEquals(
dedent(
u"""
DirectoryRecord:
- UID = UID:sagen
+ UID = UID:wsanchez
+ email addresses = wsanchez at calendarserver.org, wsanchez at example.com
+ full names = Wilfredo Sanchez, Wilfredo Sanchez Vega
record type = user
- short names = (u'sagen',)
- full names = (u'Morgen Sagen',)
- email addresses = ('sagen at calendarserver.org',)
+ short names = wsanchez, wilfredo_sanchez
"""[1:]
),
sagen.description()
)
- test_description.todo = "Intermittent order issues"
-
def test_members_group(self):
"""
Group members for group records.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/9acca1bb/attachment.html>
More information about the calendarserver-changes
mailing list