Skip to content

Commit c710d1a

Browse files
Copilotericbstie
andcommitted
Fix test connectivity issue by allowing lazy connection initialization
Co-authored-by: BeatsuDev <[email protected]>
1 parent 1e80f0a commit c710d1a

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

tibber/account.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def __init__(
3030
self._token: str = token
3131
self.user_agent = user_agent
3232

33-
super().__init__(transport_kwargs=transport_kwargs)
33+
super().__init__(transport_kwargs=transport_kwargs, connect_on_init=immediate_update)
3434

3535
if immediate_update:
3636
self.fetch_all()

tibber/networking/query_executor.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,31 @@
1717
class QueryExecutor:
1818
"""A class for executing queries."""
1919

20-
def __init__(self, session=None, transport_kwargs={}):
20+
def __init__(self, session=None, transport_kwargs={}, connect_on_init=True):
2121
self.gql_client = None
22+
self.session = None
2223
transport = AIOHTTPTransport(
2324
url=API_ENDPOINT,
2425
headers={"Authorization": "Bearer " + self.token},
2526
ssl=True,
2627
**transport_kwargs,
2728
)
2829
self.gql_client = gql.Client(
29-
transport=transport, fetch_schema_from_transport=True
30+
transport=transport, fetch_schema_from_transport=False
3031
)
3132

32-
asyncio.run(self.__ainit__(session))
33+
if connect_on_init:
34+
asyncio.run(self.__ainit__(session))
3335

3436
async def __ainit__(self, session):
3537
self.session = session or await self.gql_client.connect_async()
3638
asyncio_atexit.register(self.gql_client.close_async)
39+
40+
async def _ensure_connected(self):
41+
"""Ensure the client is connected before executing queries."""
42+
if self.session is None:
43+
self.session = await self.gql_client.connect_async()
44+
asyncio_atexit.register(self.gql_client.close_async)
3745

3846
def execute_query(
3947
self, access_token: str, query: str, max_tries: int = 1, **kwargs
@@ -89,6 +97,7 @@ async def execute_async(
8997
return result
9098

9199
async def execute_async_single(self, access_token: str, query: str):
100+
await self._ensure_connected()
92101
try:
93102
result = await self.gql_client.execute_async(gql.gql(query))
94103
except TransportQueryError as e:

0 commit comments

Comments
 (0)