def online_keldoc_test(): request = ScraperRequest( "https://www.keldoc.com/cabinet-medical/grenoble-38000/centre-de-vaccination-universite-inter-age-du-dauphine-uiad", "2021-04-13", ) fetch_slots(request)
def test_keldoc_scrape(): center1_url = "https://www.keldoc.com/centre-hospitalier-regional/lorient-56100/groupe-hospitalier-bretagne-sud-lorient-hopital-du-scorff?specialty=144" request = ScraperRequest(center1_url, "2020-04-04") keldoc.session = httpx.Client(transport=httpx.MockTransport(app_center1)) date = fetch_slots(request) # When it's already killed if not keldoc.KELDOC_ENABLED: assert date is None else: assert date == "2021-04-20T16:55:00.000000+0200" keldoc.KELDOC_ENABLED = False test_killswitch = fetch_slots(request) assert not test_killswitch
def online_keldoc_test(): path_centerinfo = Path("tests", "fixtures", "keldoc", "cabinet-16913-centerinfo.json") centerinfo_1 = json.loads(path_centerinfo.read_text(encoding="utf-8")) center_info = CenterInfo.from_csv_data(centerinfo_1) request = ScraperRequest( "https://www.keldoc.com/cabinet-medical/grenoble-38000/centre-de-vaccination-universite-inter-age-du-dauphine-uiad", "2021-04-13", center_info=center_info, ) fetch_slots(request)
def test_no_center_data(): path_centerinfo = Path("tests", "fixtures", "keldoc", "cabinet-16913-centerinfo.json") centerinfo_1 = json.loads(path_centerinfo.read_text(encoding="utf-8")) center_info = CenterInfo.from_csv_data(centerinfo_1) center1_url = "https://www.keldoc.com/centre-hospitalier-regional/lorient-56100/groupe-hospitalier-bretagne-sud-lorient-hopital-du-scorff?specialty=144" request = ScraperRequest(center1_url, "2020-04-04", center_info=center_info) def app(request: httpx.Request) -> httpx.Response: if (request.url.path == "/centre-hospitalier-regional/lorient-56100/groupe-hospitalier-bretagne-sud-lorient-hopital-du-scorff" ): return httpx.Response( 302, headers={ "Location": "https://vaccination-covid.keldoc.com/redirect/?dom=centre-hospitalier-regional&inst=lorient-56100&user=groupe-hospitalier-bretagne-sud-lorient-hopital-du-scorff&specialty=144 " }, ) if request.url.path == "/redirect/": return httpx.Response(200, json={}) return httpx.Response(403, json={}) keldoc.session = httpx.Client(transport=httpx.MockTransport(app)) date = fetch_slots(request) assert not date
def test_keldoc_scrape_nodate(): center1_url = ( "https://www.keldoc.com/centre-hospitalier-regional/lorient-56100/groupe-hospitalier" "-bretagne-sud-lorient-hopital-du-scorff?specialty=144 " ) keldoc.KELDOC_ENABLED = True def app_center2(request: httpx.Request) -> httpx.Response: if "timetables/" in request.url.path: return httpx.Response(200, json={}) if ( request.url.path == "/centre-hospitalier-regional/lorient-56100/groupe-hospitalier-bretagne-sud-lorient-hopital-du-scorff" ): return httpx.Response( 302, headers={ "Location": "https://vaccination-covid.keldoc.com/redirect/?dom=centre-hospitalier-regional&inst=lorient-56100&user=groupe-hospitalier-bretagne-sud-lorient-hopital-du-scorff&specialty=144 " }, ) for path in CENTER1_KELDOC: if request.url.path == path: return httpx.Response(200, json=get_test_data(CENTER1_KELDOC[path])) return httpx.Response(200, json={}) request = ScraperRequest(center1_url, "2099-12-12") keldoc.session = httpx.Client(transport=httpx.MockTransport(app_center2)) date = fetch_slots(request) assert not date
def test_keldoc_scrape(): center1_url = "https://vaccination-covid.keldoc.com/centre-hospitalier-regional/lorient-56100/groupe-hospitalier-bretagne-sud-lorient-hopital-du-scorff?cabinet=16913&specialty=144" path = Path("tests", "fixtures", "keldoc", "center1-cabinet-16913.json") input_data = json.loads(path.read_text(encoding="utf-8")) path = Path("tests", "fixtures", "keldoc", "cabinet-16913-centerinfo.json") centerinfo_1 = json.loads(path.read_text(encoding="utf-8")) center_info = CenterInfo.from_csv_data(centerinfo_1) request = ScraperRequest(center1_url, "2020-04-04", input_data=input_data, center_info=center_info) keldoc.session = httpx.Client(transport=httpx.MockTransport(app_center1)) date = fetch_slots(request) # When it's already killed if not keldoc.PLATFORM_ENABLED: assert date is None else: assert date == "2021-04-20T16:55:00.000000+0200" keldoc.PLATFORM_ENABLED = False test_killswitch = fetch_slots(request) assert not test_killswitch
def test_keldoc_scrape_nodate(): center1_url = ( "https://www.keldoc.com/centre-hospitalier-regional/lorient-56100/groupe-hospitalier" "-bretagne-sud-lorient-hopital-du-scorff?specialty=144 ") keldoc.KELDOC_ENABLED = True def app_center2(request: httpx.Request) -> httpx.Response: if "timetables/" in request.url.path: return httpx.Response(200, json={}) if (request.url.path == "/centre-hospitalier-regional/lorient-56100/groupe-hospitalier-bretagne-sud-lorient-hopital-du-scorff" ): return httpx.Response( 302, headers={ "Location": "https://vaccination-covid.keldoc.com/redirect/?dom=centre-hospitalier-regional&inst=lorient-56100&user=groupe-hospitalier-bretagne-sud-lorient-hopital-du-scorff&specialty=144 " }, ) for path in CENTER1_KELDOC: if request.url.path == path: return httpx.Response(200, json=get_test_data(CENTER1_KELDOC[path])) return httpx.Response(200, json={}) path_centerinfo = Path("tests", "fixtures", "keldoc", "cabinet-16913-centerinfo.json") centerinfo_1 = json.loads(path_centerinfo.read_text(encoding="utf-8")) center_info = CenterInfo.from_csv_data(centerinfo_1) request = ScraperRequest(center1_url, "2099-12-12", center_info=center_info) keldoc.session = httpx.Client(transport=httpx.MockTransport(app_center2)) date = fetch_slots(request) assert not date