def testTopLevelExclusion(self): """ Entire forms tagged as device logs should be excluded """ file_path = os.path.join(os.path.dirname(__file__), "data", "exclusion", "device_report.xml") with open(file_path, "rb") as f: xml_data = f.read() FormProcessorInterface.submit_form_locally(xml_data) self.assertEqual(0, get_total_case_count())
def testNestedExclusion(self): """ Blocks inside forms tagged as device logs should be excluded """ file_path = os.path.join(os.path.dirname(__file__), "data", "exclusion", "nested_device_report.xml") with open(file_path, "rb") as f: xml_data = f.read() _, _, [case] = FormProcessorInterface.submit_form_locally(xml_data) self.assertEqual(1, get_total_case_count()) self.assertEqual("form case", case.name)
def testTopLevelExclusion(self): """ Entire forms tagged as device logs should be excluded """ file_path = os.path.join(os.path.dirname(__file__), "data", "exclusion", "device_report.xml") with open(file_path, "rb") as f: xml_data = f.read() form = post_xform_to_couch(xml_data) process_cases(form) self.assertEqual(0, get_total_case_count())
def testLotsOfSubcases(self): """ How do we do when submitting a form with multiple blocks for the same case? """ file_path = os.path.join(os.path.dirname(__file__), "data", "bugs", "lots_of_subcases.xml") with open(file_path, "rb") as f: xml_data = f.read() form = post_xform_to_couch(xml_data) # before the bug was fixed this call failed process_cases(form) self.assertEqual(11, get_total_case_count())
def testNestedExclusion(self): """ Blocks inside forms tagged as device logs should be excluded """ file_path = os.path.join(os.path.dirname(__file__), "data", "exclusion", "nested_device_report.xml") with open(file_path, "rb") as f: xml_data = f.read() form = post_xform_to_couch(xml_data) process_cases(form) self.assertEqual(1, get_total_case_count()) case = CommCareCase.get("case_in_form") self.assertEqual("form case", case.name)
def db_comparisons(request): def _simple_view_couch_query(db, view_name): return db.view(view_name, reduce=True).one()['value'] comparison_config = [ { 'description': 'Users (base_doc is "CouchUser")', 'couch_docs': _simple_view_couch_query(CommCareUser.get_db(), 'users/by_username'), 'es_query': UserES().remove_default_filter('active').size(0), 'sql_rows': User.objects.count(), }, { 'description': 'Domains (doc_type is "Domain")', 'couch_docs': _simple_view_couch_query(Domain.get_db(), 'domain/by_status'), 'es_query': DomainES().size(0), 'sql_rows': None, }, { 'description': 'Forms (doc_type is "XFormInstance")', 'couch_docs': get_number_of_forms_all_domains_in_couch(), 'es_query': FormES().remove_default_filter('has_xmlns') .remove_default_filter('has_user') .size(0), 'sql_rows': FormData.objects.exclude(domain__isnull=True).count(), }, { 'description': 'Cases (doc_type is "CommCareCase")', 'couch_docs': get_total_case_count(), 'es_query': CaseES().size(0), 'sql_rows': CaseData.objects.exclude(domain__isnull=True).count(), } ] comparisons = [] for comp in comparison_config: comparisons.append({ 'description': comp['description'], 'couch_docs': comp['couch_docs'], 'es_docs': comp['es_query'].run().total, 'sql_rows': comp['sql_rows'] if comp['sql_rows'] else 'n/a', }) return json_response(comparisons)
def testCountNonZero(self): CommCareCase().save() CommCareCase().save() self.assertEqual(2, get_total_case_count()) delete_all_cases()
def testCountZero(self): self.assertEqual(0, get_total_case_count())