示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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()
示例#5
0
def test_count_all(data_client):
    s = Search(using=data_client).index('git')
    assert 53 == s.count()
示例#6
0
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()
示例#7
0
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()
示例#8
0
def test_count_all(data_client):
    s = Search(using=data_client).index('git')
    assert 53 == s.count()
def test_count_type(data_client):
    s = Search(using=data_client).index('git').doc_type('repos')
    assert 1 == s.count()
示例#10
0
def test_count_type(data_client):
    s = Search(using=data_client).index('git').doc_type('repos')
    assert 1 == s.count()