Exemple #1
0
 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]))
Exemple #3
0
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]))
Exemple #8
0
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()