|
1 |
| -import subprocess, os, time, json, psutil |
| 1 | +import subprocess, os, time, json,logging |
| 2 | +import psutil |
| 3 | + |
2 | 4 | from browserstack.local_binary import LocalBinary
|
3 | 5 | from browserstack.bserrors import BrowserStackLocalError
|
4 | 6 |
|
| 7 | +logger = logging.getLogger(__name__) |
5 | 8 | try:
|
6 | 9 | from importlib.metadata import version as package_version, PackageNotFoundError
|
7 | 10 | except:
|
8 | 11 | import pkg_resources
|
9 | 12 |
|
10 |
| - |
11 | 13 | class Local:
|
12 | 14 | def __init__(self, key=None, binary_path=None, **kwargs):
|
13 | 15 | self.key = os.environ['BROWSERSTACK_ACCESS_KEY'] if 'BROWSERSTACK_ACCESS_KEY' in os.environ else key
|
@@ -88,16 +90,19 @@ def start(self, **kwargs):
|
88 | 90 | os.system('echo "" > "'+ self.local_logfile_path +'"')
|
89 | 91 | try:
|
90 | 92 | if out:
|
91 |
| - data = json.loads(out.decode()) |
| 93 | + output_string = out.decode() |
92 | 94 | else:
|
93 |
| - data = json.loads(err.decode()) |
| 95 | + output_string = err.decode() |
| 96 | + |
| 97 | + data = json.loads(output_string) |
94 | 98 |
|
95 | 99 | if data['state'] != "connected":
|
96 | 100 | raise BrowserStackLocalError(data["message"]["message"])
|
97 | 101 | else:
|
98 | 102 | self.pid = data['pid']
|
99 | 103 | except ValueError:
|
100 |
| - raise BrowserStackLocalError('Error parsing JSON output from daemon') |
| 104 | + logger.error("BinaryOutputParseError: Raw String = '{}'".format(output_string) ) |
| 105 | + raise BrowserStackLocalError('Error parsing JSON output from daemon. Raw String = "{}"'.format(output_string)) |
101 | 106 |
|
102 | 107 | def isRunning(self):
|
103 | 108 | return hasattr(self, 'pid') and psutil.pid_exists(self.pid)
|
|
0 commit comments