def test_init(): schema = 'schema' pubsub = 'pubsub' setup_functions = {} namespace = '/foo' on_subscribe = 'on_subscribe' on_unsubscribe = 'on_unsubscribe' on_connect = 'on_connect' on_disconnect = 'on_disconnect' parse_context = 'parse_context' sub_manager = SubscriptionManager( schema, pubsub, setup_functions, ) app = create_app() ss = SubscriptionServer(app, sub_manager, namespace, on_subscribe, on_unsubscribe, on_connect, on_disconnect, parse_context) assert ss.subscription_manager == sub_manager assert ss.namespace == namespace assert ss.on_subscribe == on_subscribe assert ss.on_unsubscribe == on_unsubscribe assert ss.on_connect == on_connect assert ss.on_disconnect == on_disconnect assert ss.parse_context == parse_context
def basic_ss(): schema = Schema pubsub = PubSub() setup_functions = {} namespace='/foo' on_subscribe=lambda parsed_message, base_params: base_params on_unsubscribe=lambda *args, **kwargs: True on_connect=lambda *args, **kwargs: True on_disconnect=lambda *args, **kwargs: True parse_context=lambda *args, **kwargs: True sub_manager = SubscriptionManager( schema, pubsub, setup_functions, ) app = create_app() ss = SubscriptionServer(app, sub_manager, namespace, on_subscribe, on_unsubscribe, on_connect, on_disconnect, parse_context) return (app, ss)
def app(request): flask_app = create_app() ctx = flask_app.app_context() ctx.push() def teardown(): ctx.pop() request.addfinalizer(teardown) return flask_app
class TestJinjaEnv: @pytest.mark.asyncio @pytest.mark.parametrize( "app", [create_app(graphiql=True, jinja_env=Environment(enable_async=True))] ) async def test_graphiql_jinja_renderer_async(self, app, client, pretty_response): response = await client.get( url_string(query="{test}"), headers={"Accept": "text/html"}, ) assert response.status == 200 assert pretty_response in await response.text()
def test_default_namespace(): schema = 'schema' pubsub = 'pubsub' setup_functions = {} sub_manager = SubscriptionManager( schema, pubsub, setup_functions, ) app = create_app() ss = SubscriptionServer(app, sub_manager) assert ss.namespace == '/ws'
async def app() -> Quart: app = create_app(graphiql=True) ctx = app.app_context() await ctx.push() return app
response = await client.get(url_for("graphql", query="{test}"), headers={"Accept": "text/html"}) assert response.status_code == 200 pretty_response = ('{\n' ' "data": {\n' ' "test": "Hello World"\n' ' }\n' '}').replace("\"", "\\\"").replace("\n", "\\n") assert pretty_response in str(await response.get_data(), 'utf-8') @pytest.mark.asyncio async def test_graphiql_default_title(app: Quart, client: QuartClient) -> typing.NoReturn: async with app.test_request_context("/"): response = await client.get(url_for("graphql"), headers={"Accept": "text/html"}) assert "<title>GraphiQL</title>" in str(await response.get_data()) @pytest.mark.parametrize( "app", [create_app(graphiql=True, graphiql_html_title="Awesome")]) @pytest.mark.asyncio async def test_graphiql_custom_title(app: Quart, client: QuartClient) -> typing.NoReturn: async with app.test_request_context("/"): response = await client.get(url_for("graphql"), headers={"Accept": "text/html"}) data = str(await response.get_data()) assert "<title>Awesome</title>" in data
def app(): app = create_app() return app
} @pytest.fixture def pretty_response(): return ( "{\n" ' "data": {\n' ' "test": "Hello World"\n' " }\n" "}".replace('"', '\\"').replace("\n", "\\n") ) @pytest.mark.asyncio @pytest.mark.parametrize("app", [create_app(graphiql=True)]) async def test_graphiql_is_enabled(app, client): response = await client.get( url_string(query="{test}"), headers={"Accept": "text/html"} ) assert response.status == 200 @pytest.mark.asyncio @pytest.mark.parametrize("app", [create_app(graphiql=True)]) async def test_graphiql_simple_renderer(app, client, pretty_response): response = await client.get( url_string(query="{test}"), headers={"Accept": "text/html"}, ) assert response.status == 200 assert pretty_response in await response.text()
async def app(request) -> Quart: app = create_app() ctx = app.app_context() await ctx.push() return app
shared: test(who: "Everyone") } """, headers={"Content-Type": "application/graphql"}, ) assert response.status_code == 200 assert (await response_json(response)) == { "data": { "test": "Hello World", "shared": "Hello Everyone" } } @pytest.mark.parametrize('app', [create_app(pretty=True)]) @pytest.mark.asyncio async def test_supports_pretty_printing( app: Quart, client: QuartClient) -> typing.NoReturn: async with app.test_request_context("/"): response = await client.get(await url_string(app, {'query': '{test}'})) assert str(await response.get_data(), 'utf-8') == ('{\n' ' "data": {\n' ' "test": "Hello World"\n' ' }\n' '}') @pytest.mark.parametrize('app', [create_app(pretty=False)]) @pytest.mark.asyncio