[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