From 5c4ef8fc006e1c3053205516d50cc942ab8fd42e Mon Sep 17 00:00:00 2001 From: Ju4tCode <42488585+yanyongyu@users.noreply.github.com> Date: Wed, 21 Dec 2022 14:39:05 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20Fix:=20=E4=BF=AE=E5=A4=8D=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AF=E8=AF=B7=E6=B1=82=E6=9C=AA=E5=A4=84=E7=90=86?= =?UTF-8?q?=20cookies=20(#1491)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_driver.py | 58 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/tests/test_driver.py b/tests/test_driver.py index 75507bad..0402b47c 100644 --- a/tests/test_driver.py +++ b/tests/test_driver.py @@ -1,3 +1,5 @@ +import json +import asyncio from typing import cast import pytest @@ -79,6 +81,62 @@ async def test_reverse_driver(app: App): await ws.close() + await asyncio.sleep(1) + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + "nonebug_init", + [ + pytest.param({"driver": "nonebot.drivers.httpx:Driver"}, id="httpx"), + pytest.param({"driver": "nonebot.drivers.aiohttp:Driver"}, id="aiohttp"), + ], + indirect=True, +) +async def test_http_driver(app: App): + import nonebot + from nonebot.drivers import Request, ForwardDriver + + driver = cast(ForwardDriver, nonebot.get_driver()) + + request = Request( + "POST", + "https://httpbin.org/post", + params={"param": "test"}, + headers={"X-Test": "test"}, + cookies={"session": "test"}, + content="test", + ) + response = await driver.request(request) + assert response.status_code == 200 and response.content + data = json.loads(response.content) + assert data["args"] == {"param": "test"} + assert data["headers"].get("X-Test") == "test" + assert data["headers"].get("Cookie") == "session=test" + assert data["data"] == "test" + + request = Request("POST", "https://httpbin.org/post", data={"form": "test"}) + response = await driver.request(request) + assert response.status_code == 200 and response.content + data = json.loads(response.content) + assert data["form"] == {"form": "test"} + + request = Request("POST", "https://httpbin.org/post", json={"json": "test"}) + response = await driver.request(request) + assert response.status_code == 200 and response.content + data = json.loads(response.content) + assert data["json"] == {"json": "test"} + + request = Request( + "POST", "https://httpbin.org/post", files={"test": ("test.txt", b"test")} + ) + response = await driver.request(request) + assert response.status_code == 200 and response.content + data = json.loads(response.content) + assert data["files"] == {"test": "test"} + + await asyncio.sleep(1) + @pytest.mark.asyncio @pytest.mark.parametrize(