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()
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]
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()
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))
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)
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)
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
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')
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)