Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions gql/transport/requests.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import io
import json
import logging
from http.cookiejar import CookieJar
from typing import (
Any,
Callable,
Expand All @@ -18,7 +19,6 @@
from graphql import ExecutionResult
from requests.adapters import HTTPAdapter, Retry
from requests.auth import AuthBase
from requests.cookies import RequestsCookieJar
from requests.structures import CaseInsensitiveDict
from requests_toolbelt.multipart.encoder import MultipartEncoder

Expand Down Expand Up @@ -52,7 +52,7 @@ def __init__(
self,
url: str,
headers: Optional[Dict[str, Any]] = None,
cookies: Optional[Union[Dict[str, Any], RequestsCookieJar]] = None,
cookies: Optional[Union[Dict[str, Any], CookieJar]] = None,
auth: Optional[AuthBase] = None,
use_json: bool = True,
timeout: Optional[int] = None,
Expand Down
43 changes: 43 additions & 0 deletions tests/test_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,49 @@ def test_code():
await run_sync_test(server, test_code)


@pytest.mark.aiohttp
@pytest.mark.asyncio
async def test_requests_cookies_cookiejar(aiohttp_server, run_sync_test):
import http.cookiejar

from aiohttp import web
from requests.cookies import cookiejar_from_dict

from gql.transport.requests import RequestsHTTPTransport

async def handler(request):
assert "COOKIE" in request.headers
assert "cookie1=val1" == request.headers["COOKIE"]

return web.Response(text=query1_server_answer, content_type="application/json")

app = web.Application()
app.router.add_route("POST", "/", handler)
server = await aiohttp_server(app)

url = server.make_url("/")

def test_code():
cookie_jar = cookiejar_from_dict({"cookie1": "val1"})
assert isinstance(cookie_jar, http.cookiejar.CookieJar)
transport = RequestsHTTPTransport(url=url, cookies=cookie_jar)

with Client(transport=transport) as session:

query = gql(query1_str)

# Execute query synchronously
result = session.execute(query)

continents = result["continents"]

africa = continents[0]

assert africa["code"] == "AF"

await run_sync_test(server, test_code)


@pytest.mark.aiohttp
@pytest.mark.asyncio
async def test_requests_error_code_401(aiohttp_server, run_sync_test):
Expand Down
Loading