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

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


Revision: 12591
          http://trac.calendarserver.org//changeset/12591
Author:   wsanchez at apple.com
Date:     2014-02-06 11:28:31 -0800 (Thu, 06 Feb 2014)
Log Message:
-----------
Add test_initWithContainerClassFieldType_almostValid, marked todo.

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:58:21 UTC (rev 12590)
+++ twext/trunk/twext/who/test/test_directory.py	2014-02-06 19:28:31 UTC (rev 12591)
@@ -743,6 +743,7 @@
             ))
 
         service = self.service(subClass=ConstantHavingDirectoryService)
+        fieldName = service.fieldName
 
         baseFields = {
             FieldName.uid: u"UID:sam",
@@ -750,13 +751,13 @@
             FieldName.shortNames: (u"sam",),
         }
 
-        for fieldName, validValue in (
-            (service.fieldName.eyeColor, Color.blue),
-            (service.fieldName.language, Language.English),
-            (service.fieldName.access, Access.read),
+        for fieldName, validValue, almostValidValue in (
+            (fieldName.eyeColor, Color.blue, OtherColor.mauve),
+            (fieldName.language, Language.English, OtherLanguage.French),
+            (fieldName.access, Access.read, OtherAccess.delete),
         ):
             fields = baseFields.copy()
-            callback(service, fields, fieldName, validValue)
+            callback(service, fields, fieldName, validValue, almostValidValue)
 
 
     def test_initWithContainerClassFieldType_valid(self):
@@ -765,7 +766,7 @@
         is L{NamedConstant}, L{ValueConstant} or L{FlagConstant}, respectively.
         Check that these can be used as fields.
         """
-        def callback(service, fields, fieldName, validValue):
+        def callback(service, fields, fieldName, validValue, almostValidValue):
             fields.update({fieldName: validValue})
             record = self.makeRecord(fields=fields, service=service)
             self.assertEquals(record.fields[fieldName], validValue)
@@ -779,7 +780,7 @@
         is L{NamedConstant}, L{ValueConstant} or L{FlagConstant}, respectively.
         Check that other types raise.
         """
-        def callback(service, fields, fieldName, validValue):
+        def callback(service, fields, fieldName, validValue, almostValidValue):
             for invalidValue in (u"string", None, object()):
                 fields.update({fieldName: invalidValue})
                 self.assertRaises(
@@ -790,6 +791,26 @@
         self._test_containerClassFieldType(callback)
 
 
+    def test_initWithContainerClassFieldType_almostValid(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 container types raise.
+        """
+        def callback(service, fields, fieldName, validValue, almostValidValue):
+            fields.update({fieldName: almostValidValue})
+            self.assertRaises(
+                InvalidDirectoryRecordError,
+                self.makeRecord, fields=fields, service=service
+            )
+
+        self._test_containerClassFieldType(callback)
+
+    test_initWithContainerClassFieldType_almostValid.todo = (
+        "It would be nice if this raised... presently does not"
+    )
+
+
     def test_repr(self):
         """
         L{DirectoryRecord.repr} returns the expected string.
@@ -1075,6 +1096,14 @@
 
 
 
+class OtherColor(Names):
+    """
+    More colors.
+    """
+    mauve = NamedConstant()
+
+
+
 class Language(Values):
     """
     Some languages.
@@ -1084,6 +1113,14 @@
 
 
 
+class OtherLanguage(Values):
+    """
+    More languages.
+    """
+    French = ValueConstant(u"fr")
+
+
+
 class Access(Flags):
     """
     Some access types.
@@ -1093,6 +1130,14 @@
 
 
 
+class OtherAccess(Flags):
+    """
+    More access types.
+    """
+    delete = FlagConstant()
+
+
+
 class ConstantHavingFieldName(Names):
     """
     Field names with constants values.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/097a9361/attachment.html>


More information about the calendarserver-changes mailing list