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
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
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é' }