コード例 #1
0
ファイル: test_keldoc.py プロジェクト: a2br/vitemadose
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)
コード例 #2
0
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
コード例 #3
0
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)
コード例 #4
0
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
コード例 #5
0
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
コード例 #6
0
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
コード例 #7
0
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