Ejemplo n.º 1
0
def test_match_housenumber_with_multiple_tokens(config):
    config.SYNONYMS = {'18': 'dix huit'}
    doc = {
        'id': 'xxxx',
        '_id': 'yyyy',
        'type': 'street',
        'name': 'rue du 8 Mai',
        'city': 'Troyes',
        'lat': '49.32545',
        'lon': '4.2565',
        'housenumbers': {
            '8': {
                'lat': '48.8',
                'lon': '2.25651'
            },
            '10': {
                'lat': '48.10',
                'lon': '2.25651'
            },
            '18': {
                'lat': '48.18',
                'lon': '2.25651'
            },
        }
    }
    process_documents(json.dumps(doc))
    result = search('8 rue du 8 mai')[0]
    assert result.housenumber == '8'
    assert result.lat == '48.8'
    result = search('10 rue du 8 mai')[0]
    assert result.housenumber == '10'
    assert result.lat == '48.10'
    result = search('18 rue du 8 mai')[0]
    assert result.housenumber == '18'
    assert result.lat == '48.18'
Ejemplo n.º 2
0
def test_make_labels(config):
    doc = {
        'id': 'xxxx',
        '_id': 'yyyy',
        'type': 'street',
        'name': 'rue des Lilas',
        'city': 'Paris',
        'postcode': '75010',
        'lat': '49.32545',
        'lon': '4.2565',
        'housenumbers': {
            '1 bis': {
                'lat': '48.325451',
                'lon': '2.25651'
            }
        }
    }
    process_documents(json.dumps(doc))
    result = Result(get_document('d|yyyy'))
    result.housenumber = '1 bis'  # Simulate match_housenumber
    make_labels(None, result)
    assert result.labels == [
        '1 bis rue des Lilas 75010 Paris', 'rue des Lilas 75010 Paris',
        '1 bis rue des Lilas 75010', 'rue des Lilas 75010',
        '1 bis rue des Lilas Paris', 'rue des Lilas Paris',
        '1 bis rue des Lilas', 'rue des Lilas'
    ]
Ejemplo n.º 3
0
def test_match_housenumber(input, expected):
    doc = {
        'id': 'xxxx',
        '_id': 'yyyy',
        'type': 'street',
        'name': 'rue du 8 Mai',
        'city': 'Troyes',
        'lat': '49.32545',
        'lon': '4.2565',
        'housenumbers': {
            '3': {
                'lat': '48.325451',
                'lon': '2.25651'
            },
            '3 bis': {
                'lat': '48.325451',
                'lon': '2.25651'
            },
            '8': {
                'lat': '48.325451',
                'lon': '2.25651'
            },
        }
    }
    process_documents(json.dumps(doc))
    result = search(input)[0]
    assert (result.type == 'housenumber') == bool(expected)
    if expected:
        assert result.housenumber == expected
Ejemplo n.º 4
0
def test_process_should_update_if_action_is_given(factory):
    doc = factory(name="rue de l'avoine")
    assert search("rue")
    doc["_action"] = "update"
    doc["name"] = "avenue de l'avoine"
    process_documents(json.dumps(doc.copy()))
    assert search("avenue")
    assert not search("rue")
Ejemplo n.º 5
0
def test_make_municipality_labels(config):
    doc = {
        'id': 'xxxx',
        '_id': 'yyyy',
        'type': 'municipality',
        'name': 'Lille',
        'city': 'Lille',
        'postcode': '59000',
        'lat': '49.32545',
        'lon': '4.2565',
    }
    process_documents(json.dumps(doc))
    result = Result(get_document('d|yyyy'))
    make_labels(None, result)
    assert result.labels == ['Lille 59000', '59000 Lille', 'Lille']
Ejemplo n.º 6
0
def test_index_housenumbers_use_processors(config):
    doc = {
        'id': 'xxxx',
        '_id': 'yyyy',
        'type': 'street',
        'name': 'rue des Lilas',
        'city': 'Paris',
        'lat': '49.32545',
        'lon': '4.2565',
        'housenumbers': {
            '1 bis': {
                'lat': '48.325451',
                'lon': '2.25651'
            }
        }
    }
    process_documents(json.dumps(doc))
    stored = get_document('d|yyyy')
    assert stored['housenumbers']['1b']['raw'] == '1 bis'
Ejemplo n.º 7
0
def index_document(doc):
    process_documents(json.dumps(doc))
Ejemplo n.º 8
0
def deindex_document(id_):
    process_documents(json.dumps({'id': id_, '_action': 'delete'}))
Ejemplo n.º 9
0
 def index(self):
     from addok.batch import process_documents
     process_documents(json.dumps(self.copy()))
Ejemplo n.º 10
0
def deindex_document(_id):
    process_documents(json.dumps({'_id': _id, '_action': 'delete'}))
Ejemplo n.º 11
0
def test_process_should_index_by_default(factory):
    doc = factory(skip_index=True, name="Melicocq")
    assert not search("Mélicocq")
    process_documents(json.dumps(doc.copy()))
    assert search("Melicocq")
Ejemplo n.º 12
0
def test_process_should_deindex_if_action_is_given(factory):
    doc = factory(name="Mélicocq")
    assert search("Mélicoq")
    process_documents(json.dumps({"_action": "delete", "id": doc["id"]}))
    assert not search("Mélicoq")
Ejemplo n.º 13
0
def test_make_labels_merged_cities(config):
    doc = {
        "_id":
        "53543a313139353538390000",
        "id":
        "53543a313139353538390000",
        "type":
        "street",
        "postcode":
        "49120",
        "hexacleStreet":
        "492812226P",
        "lat":
        "47.1469",
        "lon":
        "-0.75745",
        "context":
        "49, Maine-et-Loire, Pays de la Loire",
        "importance":
        1,
        "userLabel":
        "RUE PIERRE LEPOUREAU",
        "name":
        "RUE PIERRE LEPOUREAU",
        "housenumbers": {
            "2 BIS": {
                "hexacleNumber": "49281222UE",
                "lat": "47.1504",
                "lon": "-0.757414"
            }
        },
        "cityAfnorLabel":
        "CHEMILLE EN ANJOU",
        "userCityLabel":
        "ST GEORGES DES GARDES (CHEMILLE EN ANJOU)",
        "cityAliasAfnorLabel":
        "ST GEORGES DES GARDES",
        "city": [
            "ST GEORGES DES GARDES (CHEMILLE EN ANJOU)",
            "ST GEORGES DES GARDES", "CHEMILLE EN ANJOU",
            "SAINT GEORGES DES GARDES"
        ]
    }

    process_documents(json.dumps(doc))
    result = Result(get_document('d|53543a313139353538390000'))
    result.housenumber = '2 bis'  # Simulate match_housenumber
    make_labels(None, result)

    assert result.labels == [
        '2 bis RUE PIERRE LEPOUREAU 49120 ST GEORGES DES GARDES (CHEMILLE EN ANJOU)',
        'RUE PIERRE LEPOUREAU 49120 ST GEORGES DES GARDES (CHEMILLE EN ANJOU)',
        '2 bis RUE PIERRE LEPOUREAU ST GEORGES DES GARDES (CHEMILLE EN ANJOU)',
        'RUE PIERRE LEPOUREAU ST GEORGES DES GARDES (CHEMILLE EN ANJOU)',
        '2 bis RUE PIERRE LEPOUREAU 49120 SAINT GEORGES DES GARDES',
        '2 bis RUE PIERRE LEPOUREAU 49120 ST GEORGES DES GARDES',
        'RUE PIERRE LEPOUREAU 49120 SAINT GEORGES DES GARDES',
        '2 bis RUE PIERRE LEPOUREAU SAINT GEORGES DES GARDES',
        '2 bis RUE PIERRE LEPOUREAU 49120 CHEMILLE EN ANJOU',
        'RUE PIERRE LEPOUREAU 49120 ST GEORGES DES GARDES',
        '2 bis RUE PIERRE LEPOUREAU ST GEORGES DES GARDES',
        'RUE PIERRE LEPOUREAU SAINT GEORGES DES GARDES',
        'RUE PIERRE LEPOUREAU 49120 CHEMILLE EN ANJOU',
        '2 bis RUE PIERRE LEPOUREAU CHEMILLE EN ANJOU',
        'RUE PIERRE LEPOUREAU ST GEORGES DES GARDES',
        'RUE PIERRE LEPOUREAU CHEMILLE EN ANJOU',
        '2 bis RUE PIERRE LEPOUREAU 49120', 'RUE PIERRE LEPOUREAU 49120',
        '2 bis RUE PIERRE LEPOUREAU', 'RUE PIERRE LEPOUREAU'
    ]