Bug Report Example for Swallowed Exceptions
To test, please use:
- For expected Exception being entirely swallowed.
query {
allCategories {
id
name
}
}
Expected behavior: Exception with stack trace visible in console.
Actual behavior: No Exception printed to console. Only output: [27/Jul/2023 08:23:32] "POST /graphql/ HTTP/1.1" 200 143
- For unexpected exception being entirely swallowed.
query {
allIngredients {
id
name
}
}
Expected behavior: Exception with stack trace visible in console.
Actual behavior: No Exception printed to console. Only output: [27/Jul/2023 08:24:09] "POST /graphql/ HTTP/1.1" 200 137
- For caught exception with print() printing to console.
query {
category {
id
name
}
}
Expected behavior: Exception Message printed to console. Actual behavior: Exception Message printed to console.
This example project demos integration between Graphene and Django.
The project contains two apps, one named ingredients
and another
named recipes
.
First you'll need to get the source of the project. Do this by cloning the whole Graphene repository:
# Get the example project code
git clone https://github.com/graphql-python/graphene-django.git
cd graphene-django/examples/cookbook-plain
It is good idea (but not required) to create a virtual environment for this project. We'll do this using virtualenv to keep things simple, but you may also find something like virtualenvwrapper to be useful:
# Create a virtualenv in which we can install the dependencies
virtualenv env
source env/bin/activate
Now we can install our dependencies:
pip install -r requirements.txt
Now setup our database:
# Setup the database
./manage.py migrate
# Load some example data
./manage.py loaddata ingredients
# Create an admin user (useful for logging into the admin UI
# at http://127.0.0.1:8000/admin)
./manage.py createsuperuser
Now you should be ready to start the server:
./manage.py runserver
Now head on over to http://127.0.0.1:8000/graphql and run some queries! (See the Graphene-Django Tutorial for some example queries)
In requirements.txt
, replace the entire graphene-django=...
line with the following (so that we install the local version instead of the one from PyPI):
../../ # graphene-django