[IMP] tests: manage screencast frames after clear.

Reduce the log size in case of failure of a screencast frames
Avoid a race condition while removing tree.

closes odoo/odoo#156341

X-original-commit: 97dc741929eb9497f9b44c110607254f0a873698
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
This commit is contained in:
Xavier-Do
2024-03-05 10:03:19 +00:00
parent b238770e5a
commit d1a53e15e4
+6
View File
@@ -958,6 +958,7 @@ class ChromeBrowser:
if hasattr(self, 'ws'):
self._websocket_send('Page.stopScreencast')
if self.screencasts_dir and os.path.isdir(self.screencasts_frames_dir):
self.screencasts_dir = None
shutil.rmtree(self.screencasts_frames_dir)
self._websocket_request('Page.stopLoading')
@@ -1191,6 +1192,9 @@ class ChromeBrowser:
else:
f.set_exception(ChromeBrowserException(res['error']['message']))
except Exception:
msg = str(msg)
if msg and len(msg) > 500:
msg = msg[:500] + '...'
_logger.exception("While processing message %s", msg)
def _websocket_request(self, method, *, params=None, timeout=10.0):
@@ -1342,6 +1346,8 @@ which leads to stray network requests and inconsistencies."""
def _handle_screencast_frame(self, sessionId, data, metadata):
self._websocket_send('Page.screencastFrameAck', params={'sessionId': sessionId})
if not self.screencasts_dir:
return
outfile = os.path.join(self.screencasts_frames_dir, 'frame_%05d.b64' % len(self.screencast_frames))
try:
with open(outfile, 'w') as f: