def test_count_prefetch(data_client, mocker): mocker.spy(data_client, "count") search = Search(using=data_client).index("git") search.execute() assert search.count() == 53 assert data_client.count.call_count == 0 search._response.hits.total.relation = "gte" assert search.count() == 53 assert data_client.count.call_count == 1
def get_list_of_indexes_to_reindex(full_reindex=False): db_names = all_db_names() try: list_of_indexes_out_of_sync = [] total_submissions = 0 for database_name in db_names: dbm = get_db_manager(database_name) questionnaires = dbm.load_all_rows_in_view('questionnaire') if not questionnaires: continue for row in questionnaires: if row['value']['is_registration_model']: continue form_model_doc = FormModelDocument.wrap(row["value"]) if full_reindex or is_mapping_out_of_sync(form_model_doc, dbm): es = Elasticsearch(hosts=[{ "host": ELASTIC_SEARCH_HOST, "port": ELASTIC_SEARCH_PORT }]) search = Search(using=es, index=dbm.database_name, doc_type=form_model_doc.id) no_of_submissions = search.count() questionnaire_info = dict( db_name=database_name, questionnaire_id=form_model_doc.id, name=form_model_doc.name, no_of_submissions=no_of_submissions) total_submissions += no_of_submissions list_of_indexes_out_of_sync.append(questionnaire_info) return list_of_indexes_out_of_sync, total_submissions except Exception as e: pass
def async_fetch_questionnaire_details(questionnaire_ids, db_name, full_reindex): logger = logging.getLogger('datawinners.tasks') logger.debug(questionnaire_ids) logger.debug(db_name + ': full reindex:'+full_reindex) if not questionnaire_ids: return None dbm = get_db_manager(db_name) questionnaire_details = [] for form_model_id in questionnaire_ids: form_model = FormModel.get(dbm, form_model_id) if full_reindex or check_mapping_out_of_sync(form_model, dbm): es = Elasticsearch(hosts=[{"host": ELASTIC_SEARCH_HOST, "port": ELASTIC_SEARCH_PORT}]) search = Search(using=es, index=dbm.database_name, doc_type=form_model_id) no_of_submissions = search.count() questionnaire_info = dict( db_name = db_name, questionnaire_id=form_model_id, name=form_model.name, no_of_submissions = no_of_submissions) questionnaire_details.append(questionnaire_info) return questionnaire_details
def test_count_filter(data_client): s = Search(using=data_client).index('git').filter( ~Q('exists', field='parent_shas')) # initial commit + repo document assert 2 == s.count()
def test_count_all(data_client): s = Search(using=data_client).index('git') assert 53 == s.count()
def test_count_filter(data_client): s = Search(using=data_client).index("git").filter( ~Q("exists", field="parent_shas")) # initial commit + repo document assert 2 == s.count()
def test_count_filter(data_client): s = Search(using=data_client).index('git').filter(~Q('exists', field='parent_shas')) # initial commit + repo document assert 2 == s.count()
def test_count_type(data_client): s = Search(using=data_client).index('git').doc_type('repos') assert 1 == s.count()