graphql-engine/server/tests-py/test_apis_disabled.py
Samir Talwar 133a9b7452 server/tests-py: Generate random ports for helper services.
If the tests are run with specific ports assigned to specific services,
set through the environment variables, we continue to use those ports.
We just don't hard-code them now, we pick them up from the environment
variables.

However, if the environment variables are not set, we generate a random
port for each service. This allows us to run multiple tests in parallel
in the future, independently.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6218
GitOrigin-RevId: 3d2a1880bf67544c848951888ce7b4fa1ba379dc
2022-10-21 17:34:21 +00:00

54 lines
1.6 KiB
Python

#!/usrbin/env python3
import pytest
from validate import check_query, check_query_f
pytestmark = [
pytest.mark.usefixtures('auth_hook'),
pytest.mark.admin_secret,
pytest.mark.hge_env('HASURA_GRAPHQL_AUTH_HOOK_MODE', 'POST'),
]
def check_post_404(hge_ctx,url):
return check_query(hge_ctx, {
'url': url,
'status': 404,
'query': {}
})[0]
@pytest.mark.hge_env('HASURA_GRAPHQL_ENABLED_APIS', 'graphql')
class TestMetadataDisabled:
def test_metadata_v1_query_disabled(self, hge_ctx):
check_post_404(hge_ctx,'/v1/query')
def test_metadata_v1_template_disabled(self, hge_ctx):
check_post_404(hge_ctx,'/v1/template/foo')
def test_metadata_api_1_disabled(self, hge_ctx):
check_post_404(hge_ctx,'/api/1/table/foo/select')
def test_graphql_explain_disabled(self, hge_ctx):
check_post_404(hge_ctx, '/v1/graphql/explain')
@pytest.mark.hge_env('HASURA_GRAPHQL_ENABLED_APIS', 'metadata')
class TestGraphQLDisabled:
def test_graphql_endpoint_disabled(self, hge_ctx):
check_post_404(hge_ctx, '/v1/graphql')
@pytest.mark.hge_env('HASURA_GRAPHQL_ENABLED_APIS', 'graphql')
class TestGraphQLEnabled:
def test_graphql_introspection(self, hge_ctx):
check_query_f(hge_ctx, "queries/graphql_introspection/introspection_only_kind_of_queryType.yaml")
@pytest.mark.hge_env('HASURA_GRAPHQL_ENABLED_APIS', 'metadata')
class TestMetadataEnabled:
def test_reload_metadata(self, hge_ctx):
check_query_f(hge_ctx, "queries/v1/metadata/reload_metadata.yaml")
def test_run_sql(self, hge_ctx):
check_query_f(hge_ctx, "queries/v1/run_sql/sql_set_timezone.yaml")