mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 17:31:56 +03:00
.. | ||
pgdump | ||
queries | ||
webhook/insecure | ||
.gitignore | ||
conftest.py | ||
context.py | ||
graphql_server.py | ||
pytest.ini | ||
README.md | ||
requirements-top-level.txt | ||
requirements.txt | ||
super_classes.py | ||
test_allowlist_queries.py | ||
test_apis_disabled.py | ||
test_compat.py | ||
test_config_api.py | ||
test_cookie_webhook.py | ||
test_cors.py | ||
test_events.py | ||
test_graphql_introspection.py | ||
test_graphql_mutations.py | ||
test_graphql_queries.py | ||
test_horizontal_scale.py | ||
test_inconsistent_meta.py | ||
test_jwt.py | ||
test_logging.py | ||
test_pg_dump.py | ||
test_schema_stitching.py | ||
test_subscriptions.py | ||
test_v1_queries.py | ||
test_v1alpha1_endpoint.py | ||
test_validation.py | ||
test_version.py | ||
test_webhook_insecure.py | ||
test_websocket_init_cookie.py | ||
validate.py | ||
webhook.py | ||
webserver.py |
Running tests
pip install -r requirements.txt
pytest --hge-urls "http://127.0.0.1:8080" --pg-urls "postgresql://admin@127.0.0.1:5432/hge_tests" -vv
Tests Structure
-
Tests are grouped as test classes in test modules (names starting with
test_
) -
The configuration files (if needed) for the tests in a class are usually kept in one folder.
- The folder name is usually either the
dir
variable or thedir()
function
- The folder name is usually either the
-
Some tests (like in
test_graphql_queries.py
) requires a setup and teardown per class.- Here we are extending the
DefaultTestSelectQueries
class. - This class defines a fixture which will run the configurations in
setup.yaml
andteardown.yaml
once per class - Extending test class should define a function name
dir()
, which returns the configuration folder
- Here we are extending the
-
For mutation tests (like in
test_graphql_mutations.py
)- We need a
schema_setup
andschema_teardown
per class - And
values_setup
andvalues_teardown
per test - Doing schema setup and teardown per test is expensive.
- We are extending the
DefaultTestMutations
class for this. - This class defines a fixture which will run the configuration in
setup.yaml
andteardown.yaml
once per class. - Another fixture defined in this class runs the configuration in
values_setup.yaml
andvalues_teardown.yaml
once per class.
- We need a