Skip to content

Commit bcae182

Browse files
committed
Catch filter parsing errors
1 parent 4f2ac0c commit bcae182

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

lib/pavilion/cmd_utils.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,10 @@ def arg_filtered_tests(pav_cfg: "PavConfig", args: argparse.Namespace,
166166
if args.filter is None:
167167
filter_func = filters.const(True) # Always return True
168168
else:
169-
filter_func = filters.parse_query(args.filter)
169+
try:
170+
filter_func = filters.parse_query(args.filter)
171+
except filters.FilterParseError:
172+
raise PavilionError(f"Invalid syntax in filter query: {args.filter}")
170173

171174
order_func, order_asc = filters.get_sort_opts(sort_by, "TEST")
172175

@@ -263,7 +266,10 @@ def arg_filtered_series(pav_cfg: config.PavConfig, args: argparse.Namespace,
263266
if args.filter is None:
264267
filter_func = filters.const(True) # Always return True
265268
else:
266-
filter_func = filters.parse_query(args.filter)
269+
try:
270+
filter_func = filters.parse_query(args.filter)
271+
except filters.FilterParseError:
272+
raise PavilionError(f"Invalid syntax in filter query: {args.filter}")
267273

268274
found_series = dir_db.select(
269275
pav_cfg=pav_cfg,

lib/pavilion/commands/status.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from pavilion import filters
88
from pavilion import output
99
from pavilion import status_utils
10+
from pavilion.errors import PavilionError
1011
from .base_classes import Command
1112

1213

@@ -53,7 +54,7 @@ def run(self, pav_cfg, args):
5354
series."""
5455
try:
5556
test_paths = cmd_utils.arg_filtered_tests(pav_cfg, args, verbose=self.errfile).paths
56-
except ValueError as err:
57+
except (ValueError, PavilionError) as err:
5758
output.fprint(self.errfile, err, color=output.RED)
5859
return errno.EINVAL
5960

0 commit comments

Comments
 (0)