def test_filter_combination(self): owner_filter = OwnerFilter(DEFAULT_USER) closed_filter = IsClosedFilter(False) doc_generator = get_export_documents( CaseExportInstance(domain=DOMAIN, case_type=DEFAULT_CASE_TYPE), [owner_filter, closed_filter]) self.assertEqual(1, len([x for x in doc_generator]))
def test_group_filters(self): group_filter = GroupOwnerFilter(self.group_id) doc_generator = get_export_documents( CaseExportInstance(domain=DOMAIN, case_type=DEFAULT_CASE_TYPE), [group_filter] ) self.assertEqual(2, len([x for x in doc_generator]))
def rebuild_export_mutiprocess(export_id, num_processes, page_size=100000): assert num_processes > 0 def _log_page_dumped(paginator): logger.info(' Dump page {} complete: {} docs'.format( paginator.page, paginator.page_size)) export_instance = get_properly_wrapped_export_instance(export_id) filters = export_instance.get_filters() total_docs = get_export_size(export_instance, filters) logger.info('Starting data dump of {} docs'.format(total_docs)) exporter = MultiprocessExporter(export_instance, total_docs, num_processes) paginator = OutputPaginator(export_id) with exporter, paginator: for doc in get_export_documents(export_instance, filters): paginator.write(doc) if paginator.page_size == page_size: _log_page_dumped(paginator) exporter.process_page(paginator.get_result()) paginator.next_page() if paginator.page_size: _log_page_dumped(paginator) exporter.process_page(paginator.get_result()) exporter.wait_till_completion()
def test_group_filters(self): group_filter = GroupOwnerFilter(self.group_id) doc_generator = get_export_documents( CaseExportInstance(domain=DOMAIN, case_type=DEFAULT_CASE_TYPE), [group_filter] ) self.assertEqual(2, len([x for x in doc_generator]))
def test_filter_combination(self): owner_filter = OwnerFilter(DEFAULT_USER) closed_filter = IsClosedFilter(False) doc_generator = get_export_documents( CaseExportInstance(domain=DOMAIN, case_type=DEFAULT_CASE_TYPE), [owner_filter, closed_filter] ) self.assertEqual(1, len([x for x in doc_generator]))
def test_form_submitted_by_none_filter(self): """ Confirm that the FormSubmittedByFilter works when None is one of the arguments. """ doc_generator = get_export_documents( FormExportInstance(domain=DOMAIN, app_id=DEFAULT_APP_ID, xmlns=DEFAULT_XMLNS), [FormSubmittedByFilter([uuid.uuid4().hex, None, uuid.uuid4().hex])] ) self.assertEqual(1, len([x for x in doc_generator]))
def test_form_submitted_by_none_filter(self): """ Confirm that the FormSubmittedByFilter works when None is one of the arguments. """ doc_generator = get_export_documents( FormExportInstance(domain=DOMAIN, app_id=DEFAULT_APP_ID, xmlns=DEFAULT_XMLNS), [FormSubmittedByFilter([uuid.uuid4().hex, None, uuid.uuid4().hex])] ) self.assertEqual(1, len([x for x in doc_generator]))
def run_multiprocess_exporter(exporter, filters, paginator, page_size): def _log_page_dumped(paginator): logger.info(' Dump page {} complete: {} docs'.format(paginator.page, paginator.page_size)) with exporter, paginator: for doc in get_export_documents(exporter.export_instance, filters): paginator.write(doc) if paginator.page_size == page_size: _log_page_dumped(paginator) exporter.process_page(paginator.get_result()) paginator.next_page() if paginator.page_size: _log_page_dumped(paginator) exporter.process_page(paginator.get_result()) exporter.wait_till_completion()