Example #1
0
def cherche_prochain_rdv_dans_centre(
        centre: dict) -> CenterInfo:  # pragma: no cover
    center_data = convert_csv_data_to_center_info(centre)
    start_date = get_start_date()
    has_error = None
    result = None
    try:
        result = fetch_centre_slots(centre["rdv_site_web"], start_date)
        center_data.fill_result(result)
    except ScrapeError as scrape_error:
        logger.error(
            f"erreur lors du traitement de la ligne avec le gid {centre['gid']} {str(scrape_error)}"
        )
        has_error = scrape_error
    except Exception as e:
        logger.error(
            f"erreur lors du traitement de la ligne avec le gid {centre['gid']}"
        )
        traceback.print_exc()

    if has_error is None:
        logger.info(
            f'{centre.get("gid", "")!s:>8} {center_data.plateforme!s:16} {center_data.prochain_rdv or ""!s:32} {center_data.departement!s:6}'
        )
    else:
        logger.info(
            f'{centre.get("gid", "")!s:>8} {center_data.plateforme!s:16} {"Erreur" or ""!s:32} {center_data.departement!s:6}'
        )

    if result is not None and result.request.url is not None:
        center_data.url = result.request.url.lower()
        if result.request.internal_id is None:
            center_data.internal_id = f'{result.platform.lower()}{centre.get("gid", "")}'

    if "type" in centre:
        center_data.type = centre["type"]
    if not center_data.type:
        center_data.type = VACCINATION_CENTER
    center_data.gid = centre.get("gid", "")
    logger.debug(center_data.default())
    return center_data
Example #2
0
def test_convert_ordoclic_second():
    data = {
        "nom": "Centre 2",
        "com_insee": "35238",
        "rdv_site_web": "https://site.fr/",
        "iterator": "ordoclic",
        "location": {
            "coordinates": {
                "lon": 1.1281,
                "lat": 93.182,
            },
            "city": "Foobar",
            "address": "12 Avenue de la ville",
            "zip": "22000",
        },
        "phone_number": "06 06 06 06 06",
    }
    center = convert_csv_data_to_center_info(data)
    assert center.nom == "Centre 2"
    assert center.metadata["address"] == "12 Avenue de la ville, 22000 Foobar"
    assert center.metadata["phone_number"] == "+33606060606"
    assert center.metadata["business_hours"] is None
def test_convert_ordoclic_second():
    data = {
        'nom': 'Centre 2',
        'com_insee': '35238',
        'rdv_site_web': 'https://site.fr/',
        'iterator': 'ordoclic',
        'location': {
            'coordinates': {
                'lon': 1.1281,
                'lat': 93.182,
            },
            'city': 'Foobar',
            'address': '12 Avenue de la ville',
            'zip': '22000'
        },
        'phone_number': '06 06 06 06 06'
    }
    center = convert_csv_data_to_center_info(data)
    assert center.nom == 'Centre 2'
    assert center.metadata['address'] == '12 Avenue de la ville, 22000 Foobar'
    assert center.metadata['phone_number'] == '+33606060606'
    assert center.metadata['business_hours'] is None
Example #4
0
def test_convert_centerinfo_invalid():
    data = {
        "nom": "Centre 1",
        "gid": "d001",
        "rdv_site_web": "https://site.fr",
        "com_insee": "0095238",
        "rdv_tel": "06 06 06 06 06",
        "phone_number": "06 06 06 06 07",
        "adr_num": "1",
        "adr_voie": "Rue de la Fraise",
        "com_cp": "75016",
        "com_nom": "Paris",
        "business_hours": {
            "lundi": "09:50-10:10",
            "mardi": "09:10-10:10",
            "mercredi": "10:00-10:10",
            "jeudi": "10:20-10:40",
            "vendredi": "09:50-10:10",
            "samedi": "09:00-10:20",
            "dimanche": "Fermé",
        },
    }

    center = convert_csv_data_to_center_info(data)
    assert center.departement == ""
    assert center.url == "https://site.fr"
    assert center.metadata["address"] == "1 Rue de la Fraise, 75016 Paris"
    assert center.metadata["phone_number"] == "+33606060607"
    assert center.metadata["business_hours"] == {
        "lundi": "09:50-10:10",
        "mardi": "09:10-10:10",
        "mercredi": "10:00-10:10",
        "jeudi": "10:20-10:40",
        "vendredi": "09:50-10:10",
        "samedi": "09:00-10:20",
        "dimanche": "Fermé",
    }
def test_convert_centerinfo_invalid():
    data = {
        'nom': 'Centre 1',
        'gid': 'd001',
        'rdv_site_web': 'https://site.fr',
        'com_insee': '0095238',
        'rdv_tel': '06 06 06 06 06',
        'phone_number': '06 06 06 06 07',
        "adr_num": "1",
        "adr_voie": "Rue de la Fraise",
        "com_cp": "75016",
        "com_nom": "Paris",
        'business_hours': {
            'lundi': '09:50-10:10',
            'mardi': '09:10-10:10',
            'mercredi': '10:00-10:10',
            'jeudi': '10:20-10:40',
            'vendredi': '09:50-10:10',
            'samedi': '09:00-10:20',
            'dimanche': 'Fermé'
        }
    }

    center = convert_csv_data_to_center_info(data)
    assert center.departement == ""
    assert center.url == 'https://site.fr'
    assert center.metadata['address'] == '1 Rue de la Fraise, 75016 Paris'
    assert center.metadata['phone_number'] == '+33606060607'
    assert center.metadata['business_hours'] == {
        'lundi': '09:50-10:10',
        'mardi': '09:10-10:10',
        'mercredi': '10:00-10:10',
        'jeudi': '10:20-10:40',
        'vendredi': '09:50-10:10',
        'samedi': '09:00-10:20',
        'dimanche': 'Fermé'
    }