class IBehavior(Interface): """A description of a behavior. These should be registered as named utilities. There should also be an adapter factory registered, probably using IBehaviorAdapterFactory. """ title = schema.TextLine(title=u'Short title of the behavior', required=True) description = schema.Text(title=u'Longer description of the behavior', required=False) name = schema.TextLine( title=u'Readable short name to be used for behavior lookup', description=u'E.g. plone.somebehavior. If not given the full dotted ' u'name of the interfaces is used for lookup instead.' u'Recommended, but due to BBB not required.', required=False) interface = schema.Object(title=u'Interface describing this behavior', required=True, schema=IInterface) marker = schema.Object( title=u'Marker interface for objects sporting this behavior', description=u'Markers are persisted in the database. ' u'Required when a factory is given, because the factory ' u'is an adapter adapting the the marker and providing the ' u'"interface" of this behavior.', required=False, schema=IInterface) factory = schema.Object(title=u'An adapter factory for the behavior', required=True, schema=Interface)
def test_all(dummy_request): mapping = [ (schema.Object(schema=IResource), serialize_schema_field.DefaultSchemaFieldSerializer), (schema.Text(), serialize_schema_field.DefaultTextSchemaFieldSerializer), (schema.TextLine(), serialize_schema_field.DefaultTextLineSchemaFieldSerializer), (schema.Float(), serialize_schema_field.DefaultFloatSchemaFieldSerializer), (schema.Int(), serialize_schema_field.DefaultIntSchemaFieldSerializer), (schema.Bool(), serialize_schema_field.DefaultBoolSchemaFieldSerializer), (schema.List(), serialize_schema_field.DefaultCollectionSchemaFieldSerializer), (schema.Choice(values=('one', 'two')), serialize_schema_field.DefaultChoiceSchemaFieldSerializer), (schema.Object(schema=IResource), serialize_schema_field.DefaultObjectSchemaFieldSerializer), (RichText(), serialize_schema_field.DefaultRichTextSchemaFieldSerializer), (schema.Date(), serialize_schema_field.DefaultDateSchemaFieldSerializer), (schema.Time(), serialize_schema_field.DefaultTimeSchemaFieldSerializer), (schema.Dict(), serialize_schema_field.DefaultDictSchemaFieldSerializer), (schema.Datetime(), serialize_schema_field.DefaultDateTimeSchemaFieldSerializer), ] container = Container() for field, klass in mapping: adapter = getMultiAdapter((field, container, dummy_request), interface=ISchemaFieldSerializeToJson) assert isinstance(adapter, klass)
class IDynamicFields(Interface): fields = fields.PatchField(schema.Dict( key_type=schema.Text(), value_type=schema.Object( schema=IFieldType ) ))
class IDynamicFields(Interface): fields = fields.PatchField( schema.Dict( key_type=schema.Text(), value_type=schema.Object(schema=IFieldType), required=True, max_length=1000, ))
class IBehaviorAdapterFactory(Interface): """An adapter factory that wraps a given behavior's own factory. By registering an adapter from Interface (or some other general source) to the behavior's interface that uses this factory, we can easily support the following semantics: context = SomeObject() behavior_adapter = ISomeBehavior(context, None) """ behavior = schema.Object(title="The behavior this is a factory for", schema=IBehavior) def __call__(context): # noqa: N805 """
class ITileType(Interface): """A utility that describes a type of tile """ __name__ = schema.DottedName(title='Tile name (same as utility name)') title = schema.TextLine(title=u'Title') description = schema.Text(title=u'Description', required=False) icon = schema.Text(title=u'Icon', required=False) add_permission = schema.Id(title=u'Zope 3 IPermission utility name') schema = schema.Object( title=u'Tile schema', description='Describes configurable data for this tile and allows a ' 'form to be rendered to edit it. Set to None if the tile ' 'has no configurable schema', schema=Interface, required=False, )
class IBlockType(Interface): """A utility that describes a type of block """ __name__ = schema.DottedName(title="Block name (same as utility name)") title = schema.TextLine(title=u"Title") description = schema.Text(title=u"Description", required=False) icon = schema.Text(title=u"Icon", required=False) add_permission = schema.Id(title=u"Zope 3 IPermission utility name") schema = schema.Object( title=u"Block schema", description="Describes configurable data for this block and allows a " "form to be rendered to edit it. Set to None if the block " "has no configurable schema", schema=Interface, required=False, )
class IBehaviorAdapterFactory(Interface): """An adapter factory that wraps a given behavior's own factory. By registering an adapter from Interface (or some other general source) to the behavior's interface that uses this factory, we can easily support the following semantics: context = SomeObject() behavior_adapter = ISomeBehavior(context, None) The ISomeBehavior adapter factory (i.e. the object providing IBehaviorAdapterFactory) will return None if IBehaviorAssignable(context).supports(ISomeBehavior) is False, or if the context cannot be adapted to IBehaviorAssignable at all. """ behavior = schema.Object(title=u"The behavior this is a factory for", schema=IBehavior) def __call__(context): """Invoke the behavior-specific factory if the context can be adapted
class ITestSchema(Interface): text = schema.TextLine(required=False) integer = schema.Int(required=False) floating = schema.Float(required=False) list_of_text = schema.List(value_type=schema.TextLine(), required=False) tuple_of_text = schema.Tuple(value_type=schema.TextLine(), required=False) set_of_text = schema.Set(value_type=schema.TextLine(), required=False) frozenset_of_text = schema.FrozenSet(value_type=schema.TextLine(), required=False) dict_value = schema.Dict(key_type=schema.TextLine(), value_type=schema.TextLine(), required=False) datetime = schema.Datetime(required=False) date = schema.Date(required=False) time = schema.Time(required=False) patch_list = fields.PatchField( schema.List(value_type=schema.Dict(key_type=schema.Text(), value_type=schema.Text()), required=False)) patch_dict = fields.PatchField(schema.Dict(key_type=schema.Text(), value_type=schema.Text()), required=False) bucket_list = fields.BucketListField(bucket_len=10, required=False, value_type=schema.Dict( key_type=schema.Text(), value_type=schema.Text())) datetime_bucket_list = fields.BucketListField(bucket_len=10, required=False, value_type=schema.Datetime()) nested_patch = fields.PatchField( schema.Dict(required=False, key_type=schema.Text(), value_type=fields.PatchField( schema.List(value_type=schema.Object( schema=INestFieldSchema)))))
class ITestSchema(Interface): text = schema.TextLine(required=False) integer = schema.Int(required=False) floating = schema.Float(required=False) list_of_text = schema.List(value_type=schema.TextLine(), required=False) tuple_of_text = schema.Tuple(value_type=schema.TextLine(), required=False) set_of_text = schema.Set(value_type=schema.TextLine(), required=False) frozenset_of_text = schema.FrozenSet(value_type=schema.TextLine(), required=False) dict_value = schema.Dict(key_type=schema.TextLine(), value_type=schema.TextLine(), required=False) datetime = schema.Datetime(required=False) date = schema.Date(required=False) time = schema.Time(required=False) patch_list = fields.PatchField( schema.List(value_type=schema.Dict(key_type=schema.Text(), value_type=schema.Text()), required=False)) patch_list_int = fields.PatchField( schema.List(value_type=schema.Int(), required=False)) patch_dict = fields.PatchField(schema.Dict(key_type=schema.Text(), value_type=schema.Text()), required=False) patch_int = fields.PatchField(schema.Int(default=22), required=False) patch_int_no_default = fields.PatchField(schema.Int(), required=False) bucket_list = fields.BucketListField( bucket_len=10, required=False, value_type=schema.Dict(key_type=schema.Text(), value_type=schema.Text()), ) datetime_bucket_list = fields.BucketListField(bucket_len=10, required=False, value_type=schema.Datetime()) union_field = schema.UnionField(schema.Datetime(), schema.Int(), required=False) union_field_obj = schema.UnionField(schema.Object(IObjectA), schema.Object(schema=IObjectB), required=False) nested_patch = fields.PatchField( schema.Dict( required=False, key_type=schema.Text(), value_type=fields.PatchField( schema.List(value_type=schema.Object( schema=INestFieldSchema))), )) dict_of_obj = schema.Dict( required=False, key_type=schema.Text(), value_type=schema.Object(schema=INestFieldSchema)) patch_dict_of_obj = fields.PatchField( schema.Dict(required=False, key_type=schema.Text(), value_type=schema.Object(schema=INestFieldSchema))) patch_tuple = fields.PatchField( schema.Tuple(required=False, value_type=schema.Text(schema=INestFieldSchema))) bucket_dict = fields.BucketDictField(bucket_len=10, required=False, key_type=schema.Text(), value_type=schema.Text())