[CalendarServer-changes] [12590] twext/trunk/twext/who/test/test_directory.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Mar 12 11:19:23 PDT 2014


Revision: 12590
          http://trac.calendarserver.org//changeset/12590
Author:   wsanchez at apple.com
Date:     2014-02-06 10:58:21 -0800 (Thu, 06 Feb 2014)
Log Message:
-----------
share code

Modified Paths:
--------------
    twext/trunk/twext/who/test/test_directory.py

Modified: twext/trunk/twext/who/test/test_directory.py
===================================================================
--- twext/trunk/twext/who/test/test_directory.py	2014-02-06 18:32:15 UTC (rev 12589)
+++ twext/trunk/twext/who/test/test_directory.py	2014-02-06 18:58:21 UTC (rev 12590)
@@ -732,11 +732,9 @@
         )
 
 
-    def test_initWithContainerClassFieldType_valid(self):
+    def _test_containerClassFieldType(self, callback):
         """
-        If C{valueType} is L{Names}, L{Values} or L{Flags}, the expected type
-        is L{NamedConstant}, L{ValueConstant} or L{FlagConstant}, respectively.
-        Check that these can be used as fields.
+        Scaffold for test_initWithContainerClassFieldType_*.
         """
 
         class ConstantHavingDirectoryService(self.serviceClass):
@@ -758,45 +756,40 @@
             (service.fieldName.access, Access.read),
         ):
             fields = baseFields.copy()
+            callback(service, fields, fieldName, validValue)
+
+
+    def test_initWithContainerClassFieldType_valid(self):
+        """
+        If C{valueType} is L{Names}, L{Values} or L{Flags}, the expected type
+        is L{NamedConstant}, L{ValueConstant} or L{FlagConstant}, respectively.
+        Check that these can be used as fields.
+        """
+        def callback(service, fields, fieldName, validValue):
             fields.update({fieldName: validValue})
             record = self.makeRecord(fields=fields, service=service)
             self.assertEquals(record.fields[fieldName], validValue)
 
+        self._test_containerClassFieldType(callback)
 
+
     def test_initWithContainerClassFieldType_invalid(self):
         """
         If C{valueType} is L{Names}, L{Values} or L{Flags}, the expected type
         is L{NamedConstant}, L{ValueConstant} or L{FlagConstant}, respectively.
         Check that other types raise.
         """
-
-        class ConstantHavingDirectoryService(self.serviceClass):
-            fieldName = ConstantsContainer((
-                self.serviceClass.fieldName, ConstantHavingFieldName
-            ))
-
-        service = self.service(subClass=ConstantHavingDirectoryService)
-
-        baseFields = {
-            FieldName.uid: u"UID:sam",
-            FieldName.recordType: RecordType.user,
-            FieldName.shortNames: (u"sam",),
-        }
-
-        for fieldName, validValue in (
-            (service.fieldName.eyeColor, Color.blue),
-            (service.fieldName.language, Language.English),
-            (service.fieldName.access, Access.read),
-        ):
+        def callback(service, fields, fieldName, validValue):
             for invalidValue in (u"string", None, object()):
-                fields = baseFields.copy()
                 fields.update({fieldName: invalidValue})
                 self.assertRaises(
                     InvalidDirectoryRecordError,
                     self.makeRecord, fields=fields, service=service
                 )
 
+        self._test_containerClassFieldType(callback)
 
+
     def test_repr(self):
         """
         L{DirectoryRecord.repr} returns the expected string.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/a1ed20e1/attachment.html>


More information about the calendarserver-changes mailing list