def test_get_entities_data(mocker):
    store = ModelStore()

    serviceid = "MedicalAssistant-test"
    model_type = "ner"
    datasources_map = dict(
        predefined_entities=[
            "PERSON", "NORP", "FACILITY", "ORG", "GPE", "LOC", "PRODUCT",
            "EVENT", "WORK_OF_ART", "LANGUAGE", "ORDINAL"
        ],
        entities=["CATEGORY", "DISEASE", "DOCTOR", "PATIENT"],
        patterns=[
            dict(
                entity="custom_date",
                pattern=
                "\\d{4}\\s/\\s\\d{2}\\s/\\s\\d{2}|\\d{2}\\s/\\s\\d{2}\\s/\\s\\d{4}"
            ),
            dict(entity="custom_email",
                 pattern="[a-z0-9A-Z_.-]+@[da-zA-Z.-]+.[a-zA-Z.]{2,6}")
        ],
        distinct_token_list=[],
        intents=[],
        synonymMappings=[])
    default_engine = "ice_commons.er.engines.spacy_ner.SpacyDefaultNER"
    custom_engine = "ice_commons.er.engines.mitie_ner.MitieCustomNER"
    pos = True
    projects_map = dict(
        custom_entity_model="ice_commons.er.engines.mitie_ner.MitieCustomNER",
        ner_status="trained",
        language="EN",
        predefined_entity_model=
        "ice_commons.er.engines.spacy_ner.SpacyDefaultNER")

    original_text = "Is Dr . Manu Nair , Cardiologist available for a consultation on 21 / 10 / 2018 at 2 PM "
    text = "Is Dr . Manu Nair , cardiologist available for a consultation on 21 / 10 / 2018 at 2 PM"

    model = mocker.patch('ice_commons.store.models.ModelStore.get_model')
    model.return_value.predict.return_value = ([], [])
    mocker.patch(
        'ice_commons.store.models.ModelStore.filter_prediction_results',
        return_value=[
            dict(start=12, tag='custom_date', end=17, entity='21 / 10 / 2018')
        ])
    ice_ent = mocker.patch('ice_commons.store.models.IceEntitiesModelManager')
    ice_ent.return_value.get_ice_entities.return_value = []
    mocker.patch('ice_commons.store.models.ModelStore.get_resolved_mappings',
                 return_value=[])
    mocker.patch('ice_commons.store.models.ModelStore.get_entities_for_ds',
                 return_value=[[], [], []])

    resp = (store.get_entities(serviceid, model_type, custom_engine, text,
                               original_text, pos, default_engine,
                               datasources_map, projects_map))
    assert resp == ([{
        'start': 12,
        'tag': 'custom_date',
        'end': 17,
        'entity': '21 / 10 / 2018'
    }], [])
def test_get_entities_null(mocker):
    store = ModelStore()
    serviceid = model_type = custom_engine = text = original_text = pos = default_engine = ""
    datasources_map = projects_map = {}
    model = mocker.patch('ice_commons.store.models.ModelStore.get_model')
    model.return_value.predict.return_value = ([], [])
    mocker.patch(
        'ice_commons.store.models.ModelStore.filter_prediction_results')
    ice_ent = mocker.patch('ice_commons.store.models.IceEntitiesModelManager')
    ice_ent.return_value.get_ice_entities.return_value = []
    mocker.patch('ice_commons.store.models.ModelStore.get_resolved_mappings',
                 return_value=[])
    mocker.patch('ice_commons.store.models.ModelStore.get_entities_for_ds',
                 return_value=[[], [], []])

    resp = (store.get_entities(serviceid, model_type, custom_engine, text,
                               original_text, pos, default_engine,
                               datasources_map, projects_map))
    assert resp == ([], None)