Skip to content

Commit 3c0f448

Browse files
committed
dont read invalid extension file
1 parent 7e0d96c commit 3c0f448

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

seleniumbase/core/capabilities_parser.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import json
44

55

6-
def _parse_ast(contents):
6+
def _analyze_ast(contents):
77
try:
88
return ast.literal_eval(contents)
99
except SyntaxError:
@@ -26,7 +26,7 @@ def _parse_ast(contents):
2626
return False
2727

2828

29-
def _parse_manual(contents):
29+
def _analyze_manual(contents):
3030
capabilities = {}
3131

3232
code_lines = contents.split('\n')
@@ -177,17 +177,35 @@ def _parse_manual(contents):
177177
return capabilities
178178

179179

180-
def get_desired_capabilities(cap_file):
181-
f = open(cap_file, 'r')
182-
all_code = f.read()
180+
def _read_file(file):
181+
f = open(file, 'r')
182+
data = f.read()
183183
f.close()
184184

185+
return data
186+
187+
188+
def _parse_py_file(cap_file):
189+
all_code = _read_file(cap_file)
190+
capabilities = _analyze_ast(all_code)
191+
192+
if not capabilities:
193+
capabilities = _analyze_manual(all_code)
194+
195+
return capabilities
196+
197+
198+
def _parse_json_file(cap_file):
199+
all_code = _read_file(cap_file)
200+
201+
return json.loads(all_code)
202+
203+
204+
def get_desired_capabilities(cap_file):
185205
if cap_file.endswith('.py'):
186-
capabilities = _parse_ast(all_code)
187-
if not capabilities:
188-
capabilities = _parse_manual(all_code)
206+
capabilities = _parse_py_file(cap_file)
189207
elif cap_file.endswith('.json'):
190-
capabilities = json.loads(all_code)
208+
capabilities = _parse_json_file(cap_file)
191209
else:
192210
raise Exception("\n\n`%s` is not a Python or JSON file!\n" % cap_file)
193211

0 commit comments

Comments
 (0)