def test_get_attachments(self): case = _create_case() case.track_create(CaseAttachmentSQL( case=case, attachment_id=uuid.uuid4().hex, name='pic.jpg', content_type='image/jpeg' )) case.track_create(CaseAttachmentSQL( case=case, attachment_id=uuid.uuid4().hex, name='doc', content_type='text/xml' )) CaseAccessorSQL.save_case(case) with self.assertRaises(AttachmentNotFound): CaseAccessorSQL.get_attachment_by_name(case.case_id, 'missing') with self.assertNumQueries(1, using=db_for_read_write(CaseAttachmentSQL)): attachments = CaseAccessorSQL.get_attachments(case.case_id) self.assertEqual(2, len(attachments)) sorted_attachments = sorted(attachments, key=lambda x: x.name) for att in attachments: self.assertEqual(case.case_id, att.case_id) self.assertEqual('doc', sorted_attachments[0].name) self.assertEqual('pic.jpg', sorted_attachments[1].name)
def test_get_attachment_by_name(self): case = _create_case() case.track_create(CaseAttachmentSQL( case=case, attachment_id=uuid.uuid4().hex, name='pic.jpg', content_type='image/jpeg', blob_id='123', md5='123' )) case.track_create(CaseAttachmentSQL( case=case, attachment_id=uuid.uuid4().hex, name='my_doc', content_type='text/xml', blob_id='124', md5='123' )) CaseAccessorSQL.save_case(case) with self.assertRaises(AttachmentNotFound): CaseAccessorSQL.get_attachment_by_name(case.case_id, 'missing') with self.assertNumQueries(1, using=db_for_read_write(CaseAttachmentSQL)): attachment_meta = CaseAccessorSQL.get_attachment_by_name(case.case_id, 'pic.jpg') self.assertEqual(case.case_id, attachment_meta.case_id) self.assertEqual('pic.jpg', attachment_meta.name) self.assertEqual('image/jpeg', attachment_meta.content_type)
def _get_attachment_from_db(self, attachment_name): from corehq.form_processor.backends.sql.dbaccessors import CaseAccessorSQL return CaseAccessorSQL.get_attachment_by_name(self.case_id, attachment_name)