Skip to content

Commit 718f184

Browse files
committed
HARMONY-2035: Add validation of boolean parameters in Request.
1 parent 0413ec7 commit 718f184

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

harmony/request.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,15 @@ def __init__(self,
426426
]
427427
self.parameter_validations = [ # for simple, one-off validations
428428
(True if self.destination_url is None else self.destination_url.startswith('s3://'),
429-
('Destination URL must be an S3 location'))
429+
'Destination URL must be an S3 location'),
430+
(self.concatenate is None or isinstance(self.concatenate, bool),
431+
'concatenate must be either True of False'),
432+
(self.ignore_errors is None or isinstance(self.ignore_errors, bool),
433+
'ignore_errors must be either True of False'),
434+
(self.skip_preview is None or isinstance(self.skip_preview, bool),
435+
'skip_preview must be either True of False'),
436+
(self.pixel_subset is None or isinstance(self.pixel_subset, bool),
437+
'pixel_subset must be either True of False')
430438
]
431439

432440
def _shape_error_messages(self, shape) -> List[str]:

tests/test_request.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,4 +384,10 @@ def test_request_with_pixel_subset_true():
384384

385385
def test_request_defaults_to_pixel_subset_none():
386386
request = Request(collection=Collection('foobar'))
387-
assert request.pixel_subset is None
387+
assert request.pixel_subset is None
388+
389+
def test_request_with_pixel_subset_invalid():
390+
request = Request(collection=Collection('foobar'), pixel_subset='invalid')
391+
messages = request.error_messages()
392+
assert not request.is_valid()
393+
assert 'pixel_subset must be either True of False' in messages

0 commit comments

Comments
 (0)