Esempio n. 1
0
    def test_write_blob_bucket(self):
        form = create_form_for_test(DOMAIN)

        attachments = FormAccessorSQL.get_attachments(form.form_id)
        self.assertEqual(1, len(attachments))
        self.assertEqual(None, attachments[0].blob_bucket)

        FormAccessorSQL.write_blob_bucket(attachments[0], 'new-bucket')

        attachments = FormAccessorSQL.get_attachments(form.form_id)
        self.assertEqual(1, len(attachments))
        self.assertEqual('new-bucket', attachments[0].blob_bucket)
Esempio n. 2
0
    def test_save_new_form(self):
        unsaved_form = create_form_for_test(DOMAIN, save=False)
        FormAccessorSQL.save_new_form(unsaved_form)
        self.assertTrue(unsaved_form.is_saved())

        attachments = FormAccessorSQL.get_attachments(unsaved_form.form_id)
        self.assertEqual(1, len(attachments))
Esempio n. 3
0
    def test_save_new_form(self):
        unsaved_form = create_form_for_test(DOMAIN, save=False)
        FormAccessorSQL.save_new_form(unsaved_form)
        self.assertTrue(unsaved_form.is_saved())

        attachments = FormAccessorSQL.get_attachments(unsaved_form.form_id)
        self.assertEqual(1, len(attachments))
Esempio n. 4
0
    def test_save_form_db_error(self):
        form = create_form_for_test(DOMAIN)
        dup_form = create_form_for_test(DOMAIN, save=False)
        dup_form.form_id = form.form_id

        try:
            FormAccessorSQL.save_new_form(dup_form)
        except Exception:
            dup_form.form_id = uuid.uuid4().hex
            FormAccessorSQL.save_new_form(dup_form)
        else:
            self.fail("saving dup form didn't raise an exception")

        attachments = FormAccessorSQL.get_attachments(dup_form.form_id)
        self.assertEqual(1, len(attachments))
Esempio n. 5
0
    def test_save_form_db_error(self):
        form = create_form_for_test(DOMAIN)
        dup_form = create_form_for_test(DOMAIN, save=False)
        dup_form.form_id = form.form_id

        try:
            FormAccessorSQL.save_new_form(dup_form)
        except Exception:
            dup_form.form_id = uuid.uuid4().hex
            FormAccessorSQL.save_new_form(dup_form)
        else:
            self.fail("saving dup form didn't raise an exception")

        attachments = FormAccessorSQL.get_attachments(dup_form.form_id)
        self.assertEqual(1, len(attachments))
Esempio n. 6
0
    def test_save_form_db_error(self):
        form = create_form_for_test(DOMAIN)
        dup_form = create_form_for_test(DOMAIN, save=False)
        dup_form.form_id = form.form_id

        try:
            with transaction.atomic(dup_form.db):
                # prevent rolled back transaction from rolling back the test's transaction
                FormAccessorSQL.save_new_form(dup_form)
        except Exception:
            dup_form.form_id = uuid.uuid4().hex
            FormAccessorSQL.save_new_form(dup_form)
        else:
            self.fail("saving dup form didn't raise an exception")

        attachments = FormAccessorSQL.get_attachments(dup_form.form_id)
        self.assertEqual(1, len(attachments))
Esempio n. 7
0
 def process_doc(self, doc):
     from corehq.form_processor.backends.sql.dbaccessors import FormAccessorSQL
     from corehq.blobs import BlobInfo
     from_db = get_blob_db()
     for attachment in FormAccessorSQL.get_attachments(doc['_id']):
         bucket = attachment.blobdb_bucket()
         blob_id = attachment.blob_id
         info = BlobInfo(identifier=blob_id,
                         length=attachment.content_length,
                         digest="md5=" + attachment.md5)
         self.total_blobs += 1
         try:
             content = from_db.get(blob_id, bucket)
         except NotFound:
             self.not_found += 1
         else:
             with content:
                 self.db.copy_blob(content, info, bucket)
     return True
Esempio n. 8
0
 def _get_attachments_from_db(self):
     from corehq.form_processor.backends.sql.dbaccessors import FormAccessorSQL
     return FormAccessorSQL.get_attachments(self.form_id)
Esempio n. 9
0
 def _get_attachments_from_db(self):
     from corehq.form_processor.backends.sql.dbaccessors import FormAccessorSQL
     return FormAccessorSQL.get_attachments(self.form_id)