Skip to content

Commit 02a97e1

Browse files
author
Tim Schneider
committed
Implemented RobotWebSession.open, RobotWebSession.close, and RobotWebSession.is_open
1 parent 871e8c9 commit 02a97e1

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

franky/robot_web_session.py

+18-3
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@ def send_control_api_request(self, target: str, headers: Optional[Dict[str, str]
6969
_headers.update(headers)
7070
return self.send_api_request(target, headers=_headers, method=method, body=body)
7171

72-
def __enter__(self):
72+
def open(self):
73+
if self.is_open:
74+
raise ValueError("Session is already open.")
7375
self.__client = HTTPSConnection(self.__fci_hostname, timeout=12, context=ssl._create_unverified_context())
7476
self.__client.connect()
7577
payload = json.dumps(
@@ -79,12 +81,20 @@ def __enter__(self):
7981
body=payload).decode("utf-8")
8082
return self
8183

82-
def __exit__(self, type, value, traceback):
84+
def close(self):
85+
if not self.is_open:
86+
raise ValueError("Session is not open.")
8387
if self.__control_token is not None:
8488
self.release_control()
8589
self.__token = None
8690
self.__client.close()
8791

92+
def __enter__(self):
93+
self.open()
94+
95+
def __exit__(self, type, value, traceback):
96+
self.close()
97+
8898
def __check_control_token(self):
8999
if self.__control_token is None:
90100
raise ValueError("Client does not have control. Call take_control() first.")
@@ -148,9 +158,14 @@ def get_system_status(self):
148158
return json.loads(self.send_api_request("/admin/api/system-status", method="GET").decode("utf-8"))
149159

150160
@property
151-
def client(self):
161+
def client(self) -> HTTPSConnection:
152162
return self.__client
153163

154164
@property
155165
def token(self) -> str:
156166
return self.__token
167+
168+
@property
169+
def is_open(self) -> bool:
170+
return self.__token is not None
171+

0 commit comments

Comments
 (0)