def testCorrectValueType(self):
        # TODO: We should not allow for a None value type.
        FrozenSet(value_type=None)

        # do not allow arbitrary value types
        self.assertRaises(ValueError, FrozenSet, value_type=object())
        self.assertRaises(ValueError, FrozenSet, value_type=Field)

        # however, allow anything that implements IField
        FrozenSet(value_type=Field())

        class FakeField(object):
            implements(IField)

        FrozenSet(value_type=FakeField())
class ISiteTemplate(Interface):
    """ describes the template for creating a site
    """
    id = TextLine(title=u'Template ID',
                  description=u'ID must be a valid python identifier',
                  required=True)
    name = TextLine(title=u'Template Name', required=True)
    description = Text(
        title=u"Template Description",
        description=u"The description of this template shown to users",
        required=True)
    price = Decimal(
        title=u"Template Price",
        description=
        u"The price users will be charged per subscription period for a site built from this template",
        required=True)
    products = FrozenSet(
        title=u"Installed Products",
        description=
        u"Choose the products to install when creating a site from this template",
        required=True,
        value_type=Choice(vocabulary=SimpleVocabulary((
            SimpleTerm(token='Foo', value='foo'),
            SimpleTerm(token='Bar', value='bar'),
            SimpleTerm(token='Baz', value='baz'),
        )), ),
        default=frozenset([
            'foo',
        ]))
    def testValidateRequired(self):
        field = FrozenSet(title=u'Set field',
                          description=u'',
                          readonly=False,
                          required=True)
        field.validate(frozenset())
        field.validate(frozenset((1, 2)))
        field.validate(frozenset((3, )))

        self.assertRaises(RequiredMissing, field.validate, None)
    def testValidateMaxValues(self):
        field = FrozenSet(title=u'FrozenSet field',
                          description=u'',
                          readonly=False,
                          required=False,
                          max_length=2)
        field.validate(None)
        field.validate(frozenset())
        field.validate(frozenset((1, 2)))

        self.assertRaises(TooLong, field.validate, frozenset((1, 2, 3, 4)))
        self.assertRaises(TooLong, field.validate, frozenset((1, 2, 3)))
    def testValidateMinValues(self):
        field = FrozenSet(title=u'FrozenSet field',
                          description=u'',
                          readonly=False,
                          required=False,
                          min_length=2)
        field.validate(None)
        field.validate(frozenset((1, 2)))
        field.validate(frozenset((1, 2, 3)))

        self.assertRaises(TooShort, field.validate, frozenset(()))
        self.assertRaises(TooShort, field.validate, frozenset((3, )))
    def testValidateValueTypes(self):
        field = FrozenSet(title=u'FrozenSet field',
                          description=u'',
                          readonly=False,
                          required=False,
                          value_type=Int())
        field.validate(None)
        field.validate(frozenset((5, )))
        field.validate(frozenset((2, 3)))

        self.assertRaises(WrongContainedType, field.validate, frozenset(
            ('', )))
        self.assertRaises(WrongContainedType, field.validate,
                          frozenset((3.14159, )))
    def testValidate(self):
        field = FrozenSet(title=u'Set field',
                          description=u'',
                          readonly=False,
                          required=False)
        field.validate(None)
        field.validate(frozenset())
        field.validate(frozenset((1, 2)))
        field.validate(frozenset((3, )))

        self.assertRaises(WrongType, field.validate, [1, 2, 3])
        self.assertRaises(WrongType, field.validate, 'abc')
        self.assertRaises(WrongType, field.validate, 1)
        self.assertRaises(WrongType, field.validate, {})
        self.assertRaises(WrongType, field.validate, (1, 2, 3))
        self.assertRaises(WrongType, field.validate, set((1, 2, 3)))
        self.assertRaises(WrongType, field.validate, set((1, 2, 3)))
class IListUsersForm(Interface):
    """Field definition for List Users form."""

    groups = FrozenSet(
        title=_(u'Groups'),
        description=_(u'Select groups from which you want to display users ' \
            'from.'),
        constraint=must_select_one_constraint,
        value_type=Choice(
            vocabulary='plone.app.vocabularies.Groups',
        )
    )

    user_attributes = List(
        title=_(u'User attributes'),
        description=_(u'Select which user attributes you want displayed in ' \
            'the results table.'),
        constraint=must_select_one_constraint,
        value_type=Choice(
            vocabulary='collective.listusers.vocabularies.UserAttributes',
        )
    )
Exemple #9
0
class ICollector(Interface):
    choice = Choice(
        title=u"Number",
        description=u"The Number",
        # we want to be able to distinguish between tokens and values
        vocabulary=vocab,
        required=True)

    numbers = List(title=u"Numbers",
                   description=u"The Numbers",
                   value_type=choice,
                   required=False)

    letters = Set(title=u"Letters",
                  description=u"The Letters",
                  value_type=choice,
                  required=False)

    frozenLetters = FrozenSet(title=u"Frozen Letters",
                              description=u"The Frozen Letters",
                              value_type=choice,
                              required=False)
Exemple #10
0
class IGitRuleGrantEditableAttributes(Interface):
    """`IGitRuleGrant` attributes that can be edited.

    These attributes need launchpad.View to see, and launchpad.Edit to change.
    """

    can_create = Bool(
        title=_("Can create"), required=True, readonly=False,
        description=_("Whether creating references is allowed."))

    can_push = Bool(
        title=_("Can push"), required=True, readonly=False,
        description=_("Whether pushing references is allowed."))

    can_force_push = Bool(
        title=_("Can force-push"), required=True, readonly=False,
        description=_("Whether force-pushing references is allowed."))

    permissions = FrozenSet(
        title=_("Permissions"), required=True, readonly=False,
        value_type=Choice(vocabulary=GitPermissionType),
        description=_("The permissions granted by this grant."))
class IBugSubscriptionFilterAttributes(Interface):
    """Attributes of `IBugSubscriptionFilter`."""

    id = Int(required=True, readonly=True)

    structural_subscription = exported(
        Reference(
            IStructuralSubscription,
            title=_("Structural subscription"),
            required=True, readonly=True))

    find_all_tags = exported(
        Bool(
            title=_("Find all tags"),
            description=_(
                "If enabled, all tags must match, "
                "else at least one tag must match."),
            required=True, default=False))
    include_any_tags = Bool(
        title=_("Include any tags"),
        required=True, default=False)
    exclude_any_tags = Bool(
        title=_("Exclude all tags"),
        required=True, default=False)
    bug_notification_level = exported(
        Choice(
            title=_("Bug notification level"), required=True,
            vocabulary=BugNotificationLevel,
            default=BugNotificationLevel.COMMENTS,
            description=_("The volume and type of bug notifications "
                          "this subscription will generate.")))

    description = exported(
        Text(
            title=_("A short description of this filter"),
            required=False))

    statuses = exported(
        FrozenSet(
            title=_("The statuses interested in (empty for all)"),
            required=True, default=frozenset(),
            value_type=Choice(
                title=_('Status'), vocabulary=BugTaskStatus)))

    importances = exported(
        FrozenSet(
            title=_("The importances interested in (empty for all)"),
            required=True, default=frozenset(),
            value_type=Choice(
                title=_('Importance'), vocabulary=BugTaskImportance)))

    tags = exported(
        FrozenSet(
            title=_("The tags interested in"),
            required=True, default=frozenset(),
            value_type=SearchTag()))

    information_types = exported(
        FrozenSet(
            title=_("The information types interested in (empty for all)"),
            required=True, default=frozenset(),
            value_type=Choice(
                title=_('Information type'), vocabulary=InformationType)))
 def testValidateDefaultAltMissingValue(self):
     missing = object()
     field = FrozenSet(required=True, missing_value=missing)
     field.default = missing
 def testImplements(self):
     field = FrozenSet()
     self.failUnless(IFrozenSet.providedBy(field))
     self.failUnless(IAbstractSet.providedBy(field))
     self.failUnless(IUnorderedCollection.providedBy(field))
     self.failUnless(ICollection.providedBy(field))
 def testNoUniqueArgument(self):
     self.assertRaises(TypeError, FrozenSet, unique=False)
     self.assertRaises(TypeError, FrozenSet, unique=True)
     self.failUnless(FrozenSet().unique)
Exemple #15
0
 def testImplements(self):
     field = FrozenSet()
     self.assertTrue(IFrozenSet.providedBy(field))
     self.assertTrue(IAbstractSet.providedBy(field))
     self.assertTrue(IUnorderedCollection.providedBy(field))
     self.assertTrue(ICollection.providedBy(field))
    def testValidateRequiredAltMissingValue(self):
        missing = object()
        field = FrozenSet(required=True, missing_value=missing)
        field.validate(frozenset())

        self.assertRaises(RequiredMissing, field.validate, missing)
 def testValidateDefault(self):
     field = FrozenSet(required=True)
     field.default = None