def test_get_with_attachments(self):
        form = create_form_for_test(DOMAIN)
        form = FormAccessorSQL.get_form(
            form.form_id)  # refetch to clear cached attachments
        with self.assertNumQueries(
                1, using=db_for_read_write(XFormAttachmentSQL)):
            form.get_attachment_meta('form.xml')

        with self.assertNumQueries(
                1, using=db_for_read_write(XFormAttachmentSQL)):
            form.get_attachment_meta('form.xml')

        with ExitStack() as stack:
            if settings.USE_PARTITIONED_DATABASE:
                proxy_queries = 1
                stack.enter_context(self.assertNumQueries(1, using=form.db))
            else:
                proxy_queries = 2
            stack.enter_context(
                self.assertNumQueries(
                    proxy_queries,
                    using=db_for_read_write(XFormAttachmentSQL)))
            form = FormAccessorSQL.get_with_attachments(form.form_id)

        self._check_simple_form(form)
        with self.assertNumQueries(
                0, using=db_for_read_write(XFormAttachmentSQL)):
            attachment_meta = form.get_attachment_meta('form.xml')

        self.assertEqual(form.form_id, attachment_meta.form_id)
        self.assertEqual('form.xml', attachment_meta.name)
        self.assertEqual('text/xml', attachment_meta.content_type)
Esempio n. 2
0
    def test_get_with_attachments(self):
        form = create_form_for_test(DOMAIN)
        with self.assertNumQueries(1, using=db_for_read_write(XFormAttachmentSQL)):
            form.get_attachment_meta('form.xml')

        with self.assertNumQueries(2, using=db_for_read_write(XFormAttachmentSQL)):
            form = FormAccessorSQL.get_with_attachments(form.form_id)

        self._check_simple_form(form)
        with self.assertNumQueries(0, using=db_for_read_write(XFormAttachmentSQL)):
            attachment_meta = form.get_attachment_meta('form.xml')

        self.assertEqual(form.form_id, attachment_meta.form_id)
        self.assertEqual('form.xml', attachment_meta.name)
        self.assertEqual('text/xml', attachment_meta.content_type)
Esempio n. 3
0
    def test_get_with_attachments(self):
        form = create_form_for_test(DOMAIN)
        form = FormAccessorSQL.get_form(
            form.form_id)  # refetch to clear cached attachments
        form_db = get_db_alias_for_partitioned_doc(form.form_id)
        with self.assertNumQueries(1, using=form_db):
            form.get_attachment_meta('form.xml')

        with self.assertNumQueries(1, using=form_db):
            form.get_attachment_meta('form.xml')

        with self.assertNumQueries(2, using=form_db):
            form = FormAccessorSQL.get_with_attachments(form.form_id)

        self._check_simple_form(form)
        with self.assertNumQueries(0, using=form_db):
            attachment_meta = form.get_attachment_meta('form.xml')

        self.assertEqual(form.form_id, attachment_meta.parent_id)
        self.assertEqual('form.xml', attachment_meta.name)
        self.assertEqual('text/xml', attachment_meta.content_type)