From 1e3475bdc33431b479462b20e55d5f3a6683d6a0 Mon Sep 17 00:00:00 2001 From: Edwin Clement Date: Thu, 18 Aug 2022 17:29:46 +0530 Subject: [PATCH 1/2] Added Exception loggin --- .gitignore | 3 +++ browserstack/local.py | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 3015a1e..b7ed39a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ local.log dist/** MANIFEST +venv +build +browserstack_local.egg-info diff --git a/browserstack/local.py b/browserstack/local.py index 90de34a..6ef943c 100644 --- a/browserstack/local.py +++ b/browserstack/local.py @@ -1,7 +1,11 @@ -import subprocess, os, time, json, psutil +import subprocess, os, time, json,logging +import psutil + from browserstack.local_binary import LocalBinary from browserstack.bserrors import BrowserStackLocalError +logger = logging.getLogger(__name__) + class Local: def __init__(self, key=None, binary_path=None, **kwargs): self.key = os.environ['BROWSERSTACK_ACCESS_KEY'] if 'BROWSERSTACK_ACCESS_KEY' in os.environ else key @@ -51,22 +55,25 @@ def start(self, **kwargs): if "onlyCommand" in kwargs and kwargs["onlyCommand"]: return - self.proc = subprocess.Popen(self._generate_cmd(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + self.proc = subprocess.Popen('ls', stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = self.proc.communicate() os.system('echo "" > "'+ self.local_logfile_path +'"') try: if out: - data = json.loads(out.decode()) + output_string = out.decode() else: - data = json.loads(err.decode()) + output_string = err.decode() + + data = json.loads(output_string) if data['state'] != "connected": raise BrowserStackLocalError(data["message"]["message"]) else: self.pid = data['pid'] except ValueError: - raise BrowserStackLocalError('Error parsing JSON output from daemon') + logger.error("BinaryOutputParseError: Raw String = '{}'".format(output_string) ) + raise BrowserStackLocalError('Error parsing JSON output from daemon. Raw String = "{}"'.format(output_string)) def isRunning(self): return hasattr(self, 'pid') and psutil.pid_exists(self.pid) From 714cd00d756dc04ddb332714a0abc5c0036aeb05 Mon Sep 17 00:00:00 2001 From: Edwin Clement Date: Fri, 2 Sep 2022 15:25:18 +0530 Subject: [PATCH 2/2] fixed duplicates --- .gitignore | 1 - browserstack/local.py | 1 - 2 files changed, 2 deletions(-) diff --git a/.gitignore b/.gitignore index 709ab32..cd778bd 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,5 @@ MANIFEST venv build -browserstack_local.egg-info build browserstack_local.egg-info diff --git a/browserstack/local.py b/browserstack/local.py index 29e681a..d7e1618 100644 --- a/browserstack/local.py +++ b/browserstack/local.py @@ -81,7 +81,6 @@ def start(self, **kwargs): if "onlyCommand" in kwargs and kwargs["onlyCommand"]: return - if 'source' in self.options: del self.options['source']