def _generate_data(cls, typedef):
        r"""Generate mock data for the specified type.

        Args:
            typedef (dict): Type definition.

        Returns:
            object: Python object of the specified type.

        """
        typedef0 = cls.typedef_fixed2base(typedef)
        return generate_data(typedef0)
Beispiel #2
0
    def _generate_data(cls, typedef, **kwargs):
        r"""Generate mock data for the specified type.

        Args:
            typedef (dict): Type definition.

        Returns:
            object: Python object of the specified type.

        """
        if isinstance(typedef[cls._json_property], dict):
            nitems = typedef.get('minItems', 1)
            out = cls._container_type()
            for i in range(nitems):
                cls._assign(
                    out, i, generate_data(typedef[cls._json_property],
                                          **kwargs))
        else:
            out = super(JSONArrayMetaschemaType,
                        cls)._generate_data(typedef, **kwargs)
        return out
Beispiel #3
0
    def transform_datatype(self, datatype):
        r"""Determine the datatype that will result from applying the transform
        to the supplied datatype.

        Args:
            datatype (dict): Datatype to transform.

        Returns:
            dict: Transformed datatype.

        """
        try:
            out = encode_type(self(generate_data(datatype)))
            if (((out['type'] == 'array') and (datatype['type'] == 'array')
                 and isinstance(out['items'], list)
                 and isinstance(datatype['items'], list)
                 and (len(out['items']) == len(datatype['items'])))):
                for x, y in zip(out['items'], datatype['items']):
                    if 'title' in y:
                        x.setdefault('title', y['title'])
            return out
        except NotImplementedError:  # pragma: debug
            return datatype