Exemple #1
0
    def _send_form_to_es(self,
                         domain=None,
                         completion_time=None,
                         received_on=None,
                         attachment_dict=None,
                         **metadata_kwargs):
        attachment_dict = attachment_dict or {}
        metadata = TestFormMetadata(
            domain=domain or self.domain,
            time_end=completion_time or datetime.utcnow(),
            received_on=received_on or datetime.utcnow(),
        )
        for attr, value in metadata_kwargs.items():
            setattr(metadata, attr, value)

        form_pair = make_es_ready_form(metadata)
        if attachment_dict:
            form_pair.wrapped_form.external_blobs = {
                name: BlobMeta(**meta)
                for name, meta in attachment_dict.iteritems()
            }
            form_pair.json_form['external_blobs'] = attachment_dict

        es_form = transform_xform_for_elasticsearch(form_pair.json_form)
        send_to_elasticsearch('forms', es_form)
        self.es.indices.refresh(XFORM_INDEX_INFO.index)
        return form_pair
    def blobs(self):
        from corehq.blobs.mixin import BlobMeta
        blobs = {}
        if self._attachments:
            blobs.update({
                name: BlobMeta(
                    id=None,
                    content_length=info.get("length", None),
                    content_type=info.get("content_type", None),
                    digest=info.get("digest", None),
                ) for name, info in six.iteritems(self._attachments)
            })
        if self.external_blobs:
            blobs.update({
                name: BlobMeta.wrap(info)
                for name, info in six.iteritems(self.external_blobs)
            })

        return blobs
Exemple #3
0
    def blobs(self):
        from corehq.blobs.mixin import BlobMeta
        blobs = {}
        if self._attachments:
            blobs.update({
                name: BlobMeta(
                    id=None,
                    content_length=info.get("length", None),
                    content_type=info.get("content_type", None),
                    digest=info.get("digest", None),
                ) for name, info in self._attachments.iteritems()
            })
        if self.external_blobs:
            blobs.update({
                name: BlobMeta.wrap(info)
                for name, info in self.external_blobs.iteritems()
            })

        return blobs
Exemple #4
0
 def __init__(self, obj, blob_id, bucket):
     self.obj = obj
     self.blobs = {"name-ignored": BlobMeta(id=blob_id)}
     self.external_blobs = self.blobs
     self._blobdb_bucket = lambda: bucket