Skip to content

Commit

Permalink
[pre-commit.ci] auto fixes from pre-commit.com hooks
Browse files Browse the repository at this point in the history
for more information, see https://pre-commit.ci
  • Loading branch information
pre-commit-ci[bot] committed Oct 24, 2024
1 parent 42339c2 commit 7fc7fc4
Showing 1 changed file with 31 additions and 29 deletions.
60 changes: 31 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,20 @@ Create a new file `app.py`:
```python
import strawberry


@strawberry.type
class User:
name: str
age: int


@strawberry.type
class Query:
@strawberry.field
def user(self) -> User:
return User(name="Patrick", age=100)


schema = strawberry.Schema(query=Query)
```

Expand Down Expand Up @@ -96,71 +99,70 @@ Strawberry provides built-in testing utilities through `BaseGraphQLTestClient`.
from strawberry.test import BaseGraphQLTestClient
import httpx # or any other HTTP client of your choice


# Example using httpx
class HttpxTestClient(BaseGraphQLTestClient):
def __init__(self):
self.client = httpx.Client(base_url="http://localhost:8000")

def request(self, body: str, headers=None, files=None):
headers = headers or {}
response = self.client.post(
"/graphql",
json=body,
headers=headers,
files=files
)
response = self.client.post("/graphql", json=body, headers=headers, files=files)
return response.json()


# Example using requests
from requests import Session


class RequestsTestClient(BaseGraphQLTestClient):
def __init__(self):
self.client = Session()
self.client.base_url = "http://localhost:8000"

def request(self, body: str, headers=None, files=None):
headers = headers or {}
response = self.client.post(
f"{self.client.base_url}/graphql",
json=body,
headers=headers,
files=files
f"{self.client.base_url}/graphql", json=body, headers=headers, files=files
)
return response.json()


def test_query():
# Choose your preferred client implementation
client = HttpxTestClient() # or RequestsTestClient()

response = client.query("""
{
user {
name
age
}

response = client.query(
"""
{
user {
name
age
}
}
""")

"""
)

assert response.data["user"]["name"] == "Patrick"
assert not response.errors


# Example with variables
def test_query_with_variables():
client = HttpxTestClient()

response = client.query(
"""
query GetUser($id: ID!) {
user(id: $id) {
name
age
}
query GetUser($id: ID!) {
user(id: $id) {
name
age
}
}
""",
variables={"id": "123"}
variables={"id": "123"},
)

assert response.data["user"]["name"] == "Patrick"
assert not response.errors
```
Expand Down

0 comments on commit 7fc7fc4

Please sign in to comment.