Skip to content

Commit 9f7dd34

Browse files
committed
fix default value (geopython#631)
* ignore default when a value is required * fixed test
1 parent 2fef426 commit 9f7dd34

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

pywps/inout/basic.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -246,16 +246,23 @@ def _set_default_value(self, value=None, value_type=None):
246246
value_type = value_type or getattr(self, '_default_type')
247247

248248
if value:
249-
if value_type == SOURCE_TYPE.DATA:
250-
self.data = value
251-
elif value_type == SOURCE_TYPE.MEMORY:
252-
raise NotImplementedError
253-
elif value_type == SOURCE_TYPE.FILE:
254-
self.file = value
255-
elif value_type == SOURCE_TYPE.STREAM:
256-
self.stream = value
257-
elif value_type == SOURCE_TYPE.URL:
258-
self.url = value
249+
# only set default when a value is optional
250+
if self.min_occurs == 0:
251+
if value_type == SOURCE_TYPE.DATA:
252+
self.data = value
253+
elif value_type == SOURCE_TYPE.MEMORY:
254+
raise NotImplementedError
255+
elif value_type == SOURCE_TYPE.FILE:
256+
self.file = value
257+
elif value_type == SOURCE_TYPE.STREAM:
258+
self.stream = value
259+
elif value_type == SOURCE_TYPE.URL:
260+
self.url = value
261+
else:
262+
# when a value is requried the default value will be ignored
263+
LOGGER.warning(
264+
"The given default value will not be used"
265+
" because is is required to provide a value.")
259266

260267
def _build_file_name(self, href=''):
261268
"""Return a file name for the local system."""

tests/test_execute.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ def complex_proces(request, response):
126126
ComplexInput(
127127
'complex',
128128
'Complex input',
129+
min_occurs=0,
129130
default="DEFAULT COMPLEX DATA",
130131
supported_formats=[frmt])
131132
],

0 commit comments

Comments
 (0)