mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 01:12:56 +03:00
f967a4b22e
Fixes https://github.com/hasura/graphql-engine/issues/6385 In the v1.3.4-beta.2 version, the SQL generated for a query action containing relationship and configured with permissions parsed the `x-hasura-user-id` session variable value through the `hasura.user` postgres setting instead of passing the session variables as an JSON object to the query as it was in v1.3.3. This PR fixes the SQL generation to that of v1.3.3 Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com> GitOrigin-RevId: 838ba812f89b51df7fcead81b9d3c2885dfa39b4 |
||
---|---|---|
.. | ||
pgdump | ||
queries | ||
remote_schemas/nodejs | ||
test_tests | ||
webhook/insecure | ||
.gitignore | ||
conftest.py | ||
context.py | ||
graphql_server.py | ||
jwk_server.py | ||
pytest.ini | ||
README.md | ||
remote_server.py | ||
requirements-top-level.txt | ||
requirements.txt | ||
super_classes.py | ||
test_actions.py | ||
test_allowlist_queries.py | ||
test_apis_disabled.py | ||
test_compat.py | ||
test_compression.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_heterogeneous.py | ||
test_horizontal_scale.py | ||
test_inconsistent_meta.py | ||
test_jwk.py | ||
test_jwt_claims_map.py | ||
test_jwt.py | ||
test_logging.py | ||
test_pg_dump.py | ||
test_remote_relationships.py | ||
test_remote_schema_permissions.py | ||
test_scheduled_triggers.py | ||
test_schema_duplication.py | ||
test_schema_stitching.py | ||
test_subscriptions.py | ||
test_tests.py | ||
test_v1_queries.py | ||
test_v1alpha1_endpoint.py | ||
test_validation.py | ||
test_version.py | ||
test_webhook_insecure.py | ||
test_webhook.py | ||
test_websocket_init_cookie.py | ||
validate.py | ||
webhook.py | ||
webserver.py |
Running tests
The easiest way to run the test suite is to do:
$ scripts/dev.sh test
This should install python dependencies if required, and run in isolation. The output format is described in the pytest documentation. Errors and failures are indicated by F
s and E
s.
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