def setUp(self): try: get_db().delete_doc("INDICATOR_CONFIGURATION") except ResourceNotFound: pass get_db().save_doc( { "_id": "INDICATOR_CONFIGURATION", "namespaces": {INDICATOR_TEST_DOMAIN: [[INDICATOR_TEST_NAMESPACE, "INDICATOR TEST Namespace"]]}, } ) self.form_pillow = MVPFormIndicatorPillow() self.case_pillow = MVPCaseIndicatorPillow()
def setUpClass(cls): try: get_db().delete_doc('INDICATOR_CONFIGURATION') except ResourceNotFound: pass get_db().save_doc({ '_id': 'INDICATOR_CONFIGURATION', 'namespaces': { INDICATOR_TEST_DOMAIN: [ [ INDICATOR_TEST_NAMESPACE, "INDICATOR TEST Namespace", ], ], } }) cls.form_pillow = MVPFormIndicatorPillow() cls.case_pillow = MVPCaseIndicatorPillow()
def _test(): form, case = _save_form_and_case() MVPCaseIndicatorPillow().change_transform(case.to_json()) updated_form = IndicatorXForm.get(form._id) computed = updated_form.computed_['mvp_indicators'] self.assertEqual(29, len(computed)) self.assertEqual('child_visit_form', computed['child_visit_form']['value']) MVPFormIndicatorPillow().change_transform(form.to_json()) updated_form = IndicatorXForm.get(form._id) updated_computed = updated_form.computed_['mvp_indicators'] self.assertEqual(29, len(updated_computed)) self.assertEqual('child_visit_form', updated_computed['child_visit_form']['value']) # cleanup updated_form.delete() form.delete() case.delete()
class IndicatorPillowTests(TestCase): def setUp(self): try: get_db().delete_doc("INDICATOR_CONFIGURATION") except ResourceNotFound: pass get_db().save_doc( { "_id": "INDICATOR_CONFIGURATION", "namespaces": {INDICATOR_TEST_DOMAIN: [[INDICATOR_TEST_NAMESPACE, "INDICATOR TEST Namespace"]]}, } ) self.form_pillow = MVPFormIndicatorPillow() self.case_pillow = MVPCaseIndicatorPillow() def _get_doc_data(self, docname): file_path = os.path.join(os.path.dirname(__file__), "data", docname) with open(file_path, "rb") as f: return json.loads(f.read()) def _save_doc_to_db(self, docname, doc_class): doc_dict = self._get_doc_data(docname) try: doc_instance = doc_class.wrap(doc_dict) doc_instance.save() except ResourceConflict: doc_instance = doc_class.get(doc_dict["_id"]) doc_instance._doc.update(doc_dict) return doc_dict["_id"] def test_form_pillow_indicators(self): form_id = self._save_doc_to_db("indicator_form.json", XFormInstance) form_instance = XFormInstance.get(form_id) # Form Label Indicator form_label = FormLabelIndicatorDefinition.increment_or_create_unique( INDICATOR_TEST_NAMESPACE, INDICATOR_TEST_DOMAIN, slug="create_form", xmlns="http://openrosa.org/formdesigner/indicator-create-xmlns", ) form_label.save() # Form Alias form_alias = FormDataAliasIndicatorDefinition.increment_or_create_unique( INDICATOR_TEST_NAMESPACE, INDICATOR_TEST_DOMAIN, slug="club_name", question_id="location.club", xmlns="http://openrosa.org/formdesigner/indicator-create-xmlns", ) form_alias.save() self.form_pillow.run_burst() indicator_form = IndicatorXForm.get(form_id) self.assertNotEqual(indicator_form.get_db().dbname, form_instance.get_db().dbname) self.assertNotEqual(indicator_form.computed_, {}) def test_case_pillow_indicators(self): self._save_doc_to_db("indicator_form.json", XFormInstance) case_id = self._save_doc_to_db("indicator_case.json", CommCareCase) case_instance = CommCareCase.get(case_id) # FormDataInCaseIndicatorDef (For those forgotten properties) forgotten_property = FormDataInCaseIndicatorDefinition.increment_or_create_unique( INDICATOR_TEST_NAMESPACE, INDICATOR_TEST_DOMAIN, slug="club_name", question_id="location.club", case_type="song_tag", xmlns="http://openrosa.org/formdesigner/indicator-create-xmlns", ) forgotten_property.save() self.case_pillow.run_burst() indicator_case = IndicatorCase.get(case_id) self.assertEqual(indicator_case.get_id, case_instance.get_id) self.assertNotEqual(indicator_case.get_db().dbname, case_instance.get_db().dbname) self.assertNotEqual(indicator_case.computed_, {})