def test_get_earch_matches_cuis():
    cuis = []
    cuis.append(CUI)
    response = IML_TEST.get_search_matches(corpus=CORPUS,
                                           document_id=DOC,
                                           min_score='0.5',
                                           cuis=cuis)
    search_match = wh.SearchMatchesModel._from_dict(response.get_result())
    assert search_match.document_id == DOC
    assert search_match.title is not None
    assert search_match.passages is not None
    passages_map = search_match.passages
    for key in passages_map:
        passage_map = passages_map[key]
        for passage_key in passage_map:
            entry_model = wh.EntryModel()
            model = entry_model._from_dict(passage_map[passage_key])
            sentences = model.sentences
            for sentence in sentences:
                assert sentence.begin > -1
                assert sentence.end > sentence.begin
                assert sentence.document_section is not None
                assert sentence.text is not None
                assert sentence.timestamp == 0
    assert search_match.annotations is not None
    annotations_map = search_match.annotations
    for key in annotations_map:
        model = annotations_map[key]
        assert model.unique_id is not None
        assert model.ontology is not None
        assert model.section is not None
        assert model.preferred_name is not None
        assert model.cui is not None
        assert model.type is not None
        assert model.negated is None
        assert model.hypothetical is None
        assert model.nlu_source_type is None
        assert model.nlu_relation is None
        assert model.nlu_target_type is None
        assert model.nlu_entity_index is None
        assert model.nlu_mention_index is None
        assert model.nlu_relation_id is None
        assert model.nlu_side is None
        assert model.begin > -1
        assert model.end > model.begin
        assert model.timestamp == 0
        assert model.hits > -1
def test_get_search_matches_attrs():
    attributes = []
    attributes.append(ATTR)
    response = IML_TEST.get_search_matches(corpus=CORPUS,
                                           document_id=DOC,
                                           min_score='0.5',
                                           attributes=attributes)
    search_match = wh.SearchMatchesModel._from_dict(response.get_result())
    assert search_match.document_id == DOC
    assert search_match.title is not None
    assert search_match.passages is not None
    passages_map = search_match.passages
    for key in passages_map:
        passage_map = passages_map[key]
        for passage_key in passage_map:
            entry_model = wh.EntryModel()
            model = entry_model._from_dict(passage_map[passage_key])
            sentences = model.sentences
            for sentence in sentences:
                assert sentence.begin > -1
                assert sentence.end > sentence.begin
                assert sentence.document_section is not None
                assert sentence.text is not None
                assert sentence.timestamp == 0
    assert search_match.annotations is not None
    annotations_map = search_match.annotations
    for key in annotations_map:
        model = annotations_map[key]
        assert model.unique_id is not None
        assert model.sticky_ids is not None
        assert model.ontology is not None
        assert model.section is not None
        assert model.preferred_name is not None
        assert model.cui is not None
        assert model.type is not None
        assert model.attribute_id is not None
        assert model.min_value is not None
        assert model.max_value is not None
        assert model.operator is None
        assert model.unit is None
        assert model.begin > -1
        assert model.end > model.begin
        assert model.timestamp == 0
        assert model.hits > -1
def test_get__matches_fields_filter():
    fields = []
    fields.append('highlightedTitle')
    response = IML_TEST.get_search_matches(corpus=CORPUS,
                                           document_id=DOC,
                                           min_score='0.5',
                                           fields=fields)
    search_match = wh.SearchMatchesModel._from_dict(response.get_result())
    assert search_match.document_id == DOC
    assert search_match.title is not None
    assert search_match.passages is not None
    passages_map = search_match.passages
    for key in passages_map:
        passage_map = passages_map[key]
        for passage_key in passage_map:
            entry_model = wh.EntryModel()
            model = entry_model._from_dict(passage_map[passage_key])
            sentences = model.sentences
            for sentence in sentences:
                assert sentence.begin > 1
                assert sentence.end > sentence.begin
                assert sentence.document_section is not None
                assert sentence.text is not None
                assert sentence.timestamp == 0
    assert search_match.annotations is not None
    annotations_map = search_match.annotations
    for key in annotations_map:
        model = annotations_map[key]
        assert model.unique_id is not None
        assert model.sticky_ids is not None
        assert model.ontology is not None
        assert model.section is not None
        assert model.preferred_name is not None
        assert model.cui is not None
        assert model.type is not None
        assert model.begin > -1
        assert model.end > model.begin
        assert model.timestamp == 0
        assert model.hits > -1