(self)
| 103 | return self |
| 104 | |
| 105 | async def start(self) -> AsyncClientSession: |
| 106 | if self._session: |
| 107 | return self._session |
| 108 | |
| 109 | async with self.get_stack() as stack: |
| 110 | logger.debug("Establishing client session to GraphQL server") |
| 111 | |
| 112 | try: |
| 113 | session = await stack.enter_async_context(self.client) |
| 114 | except TransportConnectionFailed as e: |
| 115 | raise ClientConnectionError(str(e)) from e |
| 116 | except (TransportProtocolError, TransportServerError) as e: |
| 117 | msg = f"Got unexpected response from engine: {e}" |
| 118 | raise ClientConnectionError(msg) from e |
| 119 | except TransportQueryError as e: |
| 120 | # Only query during connection is the introspection query |
| 121 | # for building the schema. |
| 122 | msg = str(e) |
| 123 | # Extract only the error message. |
| 124 | if e.errors and "message" in e.errors[0]: |
| 125 | msg = e.errors[0]["message"].strip() |
| 126 | msg = f"Failed to build schema from introspection query: {msg}" |
| 127 | raise ClientConnectionError(msg) from e |
| 128 | |
| 129 | self._session = session |
| 130 | return session |
| 131 | |
| 132 | def has_session(self): |
| 133 | return self._session is not None |
no test coverage detected