From d1a53e15e49c77b0daa3a58336caeb972705b658 Mon Sep 17 00:00:00 2001 From: Xavier-Do Date: Fri, 1 Mar 2024 11:13:01 +0000 Subject: [PATCH] [IMP] tests: manage screencast frames after clear. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) Signed-off-by: Xavier Dollé (xdo) --- odoo/tests/common.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/odoo/tests/common.py b/odoo/tests/common.py index 0dd1d5eb608..efda46aa811 100644 --- a/odoo/tests/common.py +++ b/odoo/tests/common.py @@ -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: