Esempio n. 1
0
    def test_soft_delete(self):
        meta = TestFormMetadata(domain=DOMAIN)
        get_simple_wrapped_form('f1', metadata=meta)
        f2 = get_simple_wrapped_form('f2', metadata=meta)
        f2.archive()
        get_simple_wrapped_form('f3', metadata=meta)

        accessors = FormAccessors(DOMAIN)

        # delete
        num = accessors.soft_delete_forms(['f1', 'f2'], deletion_id='123')
        self.assertEqual(num, 2)

        for form_id in ['f1', 'f2']:
            form = accessors.get_form(form_id)
            self.assertTrue(form.is_deleted)
            self.assertEqual(form.deletion_id, '123')

        form = accessors.get_form('f3')
        self.assertFalse(form.is_deleted)

        for form_id in ['f1', 'f2']:
            form = FormAccessors(DOMAIN).get_form(form_id)
            if isinstance(form, DisabledDbMixin):
                super(DisabledDbMixin, form).delete()
            else:
                form.delete()
Esempio n. 2
0
    def setUpClass(cls):
        from casexml.apps.case.tests.util import delete_all_xforms
        delete_all_xforms()
        cls.domain = 'evelyn'
        cls.now = datetime.datetime.utcnow()
        cls.user_id1 = 'xzy'
        cls.user_id2 = 'abc'

        metadata1 = TestFormMetadata(
            domain=cls.domain,
            user_id=cls.user_id1,
            received_on=cls.now - datetime.timedelta(days=10),
        )
        metadata2 = TestFormMetadata(
            domain=cls.domain,
            user_id=cls.user_id2,
            received_on=cls.now,
        )

        xform1 = get_simple_wrapped_form('123', metadata=metadata1)
        xform2 = get_simple_wrapped_form('456', metadata=metadata2)

        xform_error = get_simple_wrapped_form('789', metadata=metadata2)
        xform_error = XFormError.wrap(xform_error.to_json())
        xform_error.save()

        cls.xform_deleted = get_simple_wrapped_form('101', metadata=metadata2)
        cls.xform_deleted.doc_type += '-Deleted'
        cls.xform_deleted.save()

        cls.xforms = [
            xform1,
            xform2,
        ]
        cls.xform_errors = [xform_error]
Esempio n. 3
0
    def test_soft_delete(self):
        meta = TestFormMetadata(domain=DOMAIN)
        get_simple_wrapped_form('f1', metadata=meta)
        f2 = get_simple_wrapped_form('f2', metadata=meta)
        f2.archive()
        get_simple_wrapped_form('f3', metadata=meta)

        accessors = FormAccessors(DOMAIN)

        # delete
        num = accessors.soft_delete_forms(['f1', 'f2'], deletion_id='123')
        self.assertEqual(num, 2)

        for form_id in ['f1', 'f2']:
            form = accessors.get_form(form_id)
            self.assertTrue(form.is_deleted)
            self.assertEqual(form.deletion_id, '123')

        form = accessors.get_form('f3')
        self.assertFalse(form.is_deleted)

        for form_id in ['f1', 'f2']:
            form = FormAccessors(DOMAIN).get_form(form_id)
            if isinstance(form, PartitionedModel):
                form.delete(using=get_db_alias_for_partitioned_doc(form.form_id))
            else:
                form.delete()
Esempio n. 4
0
 def test_guess_form_name_from_xmlns(self):
     domain = uuid.uuid4().hex
     xmlns = uuid.uuid4().hex
     form_id = uuid.uuid4().hex
     form_name = 'my cool form'
     metadata = TestFormMetadata(domain=domain, xmlns=xmlns, form_name=form_name)
     get_simple_wrapped_form(form_id, metadata=metadata)
     update_reports_analytics_indexes()
     self.assertEqual(form_name, guess_form_name_from_submissions_using_xmlns(domain, xmlns))
Esempio n. 5
0
    def setUp(self):
        self.domain = 'my-domain'
        self.user = CommCareUser.create(
            domain=self.domain,
            username='******',
            password='******',
        )

        self.metadata = TestFormMetadata(
            domain=self.user.domain,
            user_id=self.user._id,
        )
        get_simple_wrapped_form('123', metadata=self.metadata)
Esempio n. 6
0
    def setUp(self):
        super(UserModelTest, self).setUp()
        self.domain = 'my-domain'
        self.domain_obj = create_domain(self.domain)
        self.user = CommCareUser.create(
            domain=self.domain,
            username='******',
            password='******',
        )

        self.metadata = TestFormMetadata(
            domain=self.user.domain,
            user_id=self.user._id,
        )
        get_simple_wrapped_form('123', metadata=self.metadata)
 def test_update_form_data(self):
     form = get_simple_wrapped_form(
         uuid.uuid4().hex,
         metadata=TestFormMetadata(domain=DOMAIN),
         simple_form=GDPR_SIMPLE_FORM)
     actual_form_xml = Command().update_form_data(
         form, NEW_USERNAME).decode('utf-8')
     self.assertXMLEqual(EXPECTED_FORM_XML, actual_form_xml)
def _get_test_form(domain):
    from corehq.form_processor.utils import TestFormMetadata
    from corehq.form_processor.utils import get_simple_wrapped_form
    metadata = TestFormMetadata(domain=domain,
                                xmlns=uuid4().hex,
                                form_name='Demo Form')
    return get_simple_wrapped_form('test-form-' + uuid4().hex,
                                   metadata=metadata,
                                   save=False)
Esempio n. 9
0
 def create_report(self, transactions=None, tag=None, date=None):
     form = get_simple_wrapped_form(uuid.uuid4().hex, metadata=TestFormMetadata(domain=self.domain_name))
     report = StockReportHelper.make_from_form(
         form,
         date or datetime.utcnow(),
         tag or REPORT_TYPE_BALANCE,
         transactions or [],
     )
     return report, form
 def create_report(self, transactions=None, tag=None, date=None):
     form = get_simple_wrapped_form(uuid.uuid4().hex, metadata=TestFormMetadata(domain=self.domain))
     report = StockReportHelper.make_from_form(
         form,
         date or datetime.utcnow(),
         tag or REPORT_TYPE_BALANCE,
         transactions or [],
     )
     return report, form
Esempio n. 11
0
    def test_get_deleted_forms(self):
        form = get_simple_wrapped_form('deleted', metadata=self.metadata)
        form.soft_delete()

        form_ids = list(self.user.get_forms(wrap=False))
        self.assertEqual(len(form_ids), 1)

        deleted_forms = list(self.user.get_forms(deleted=True))
        self.assertEqual(len(deleted_forms), 1)
        self.assertEqual(deleted_forms[0].form_id, 'deleted')
Esempio n. 12
0
    def setUpClass(cls):
        super(TestDBAccessors, cls).setUpClass()
        from casexml.apps.case.tests.util import delete_all_xforms
        delete_all_xforms()
        cls.domain = 'evelyn'
        cls.now = datetime.datetime(2017, 10, 31)
        cls.user_id1 = 'xzy'
        cls.user_id2 = 'abc'

        metadata1 = TestFormMetadata(
            domain=cls.domain,
            user_id=cls.user_id1,
            received_on=cls.now - datetime.timedelta(days=10),
        )
        metadata2 = TestFormMetadata(
            domain=cls.domain,
            user_id=cls.user_id2,
            received_on=cls.now,
        )

        cls.xform1 = get_simple_wrapped_form('123', metadata=metadata1)
        cls.xform2 = get_simple_wrapped_form('456', metadata=metadata2)

        xform_error = get_simple_wrapped_form('789', metadata=metadata2)
        xform_error = XFormError.wrap(xform_error.to_json())
        xform_error.save()

        cls.xform_deleted = get_simple_wrapped_form('101', metadata=metadata2)
        cls.xform_deleted.doc_type += '-Deleted'
        cls.xform_deleted.save()

        cls.xforms = [
            cls.xform1,
            cls.xform2,
        ]
        cls.xform_errors = [xform_error]
    def test_modify_attachment_xml_and_metadata_couch(self):
        form = get_simple_wrapped_form(uuid.uuid4().hex,
                                       metadata=TestFormMetadata(domain=DOMAIN),
                                       simple_form=GDPR_SIMPLE_FORM)
        new_form_xml = Command().update_form_data(form, NEW_USERNAME)
        FormAccessors(DOMAIN).modify_attachment_xml_and_metadata(form, new_form_xml, NEW_USERNAME)

        # Test that the metadata changed in the database
        actual_form_xml = form.get_attachment("form.xml").decode('utf-8')
        self.assertXMLEqual(EXPECTED_FORM_XML, actual_form_xml)

        # Test that the operations history is updated in this form
        refetched_form = FormAccessors(DOMAIN).get_form(form.form_id)
        self.assertEqual(len(refetched_form.history), 1)
        self.assertEqual(refetched_form.history[0].operation, "gdpr_scrub")
        self.assertEqual(refetched_form.metadata.username, NEW_USERNAME)
    def test_modify_attachment_xml_and_metadata_couch(self):
        form = get_simple_wrapped_form(uuid.uuid4().hex,
                                       metadata=TestFormMetadata(domain=DOMAIN),
                                       simple_form=GDPR_SIMPLE_FORM)
        new_form_xml = Command().update_form_data(form, NEW_USERNAME)
        FormAccessors(DOMAIN).modify_attachment_xml_and_metadata(form, new_form_xml, NEW_USERNAME)

        # Test that the metadata changed in the database
        actual_form_xml = form.get_attachment("form.xml")
        self.assertXMLEqual(EXPECTED_FORM_XML, actual_form_xml)

        # Test that the operations history is updated in this form
        refetched_form = FormAccessors(DOMAIN).get_form(form.form_id)
        self.assertEqual(len(refetched_form.history), 1)
        self.assertEqual(refetched_form.history[0].operation, "gdpr_scrub")
        self.assertEqual(refetched_form.metadata.username, NEW_USERNAME)
def _get_test_form():
    from corehq.form_processor.utils import TestFormMetadata
    from corehq.form_processor.utils import get_simple_wrapped_form
    metadata = TestFormMetadata(domain='demo-domain', xmlns=uuid4().hex, form_name='Demo Form')
    return get_simple_wrapped_form('test-form-' + uuid4().hex, metadata=metadata, save=False)
 def test_update_form_data(self):
     form = get_simple_wrapped_form(uuid.uuid4().hex,
                                    metadata=TestFormMetadata(domain=DOMAIN),
                                    simple_form=GDPR_SIMPLE_FORM)
     actual_form_xml = Command().update_form_data(form, NEW_USERNAME).decode('utf-8')
     self.assertXMLEqual(EXPECTED_FORM_XML, actual_form_xml)