wcs_api: handle empty dict in FormData.workflow (#39373)

This commit is contained in:
Benjamin Dauvergne 2020-01-31 18:23:39 +01:00
parent 8fc092f4d7
commit 3afc79b42e
1 changed files with 6 additions and 11 deletions

View File

@ -82,8 +82,7 @@ class FormDataWorkflow(BaseObject):
def __init__(self, wcs_api, **kwargs):
super(FormDataWorkflow, self).__init__(wcs_api, **kwargs)
if self.status is not None:
self.status = BaseObject(wcs_api, **self.status)
self.status = BaseObject(wcs_api, **self.status) if self.status else None
self.fields = self.fields or {}
@ -102,10 +101,8 @@ class Evolution(BaseObject):
def __init__(self, wcs_api, **kwargs):
super(Evolution, self).__init__(wcs_api, **kwargs)
self.time = isodate.parse_datetime(self.time)
if self.parts:
self.parts = [BaseObject(wcs_api, **part) for part in self.parts]
if self.who:
self.who = EvolutionUser(wcs_api, **self.who)
self.parts = [BaseObject(wcs_api, **part) for part in self.parts or []]
self.who = EvolutionUser(wcs_api, **self.who) if self.who else None
class FormData(BaseObject):
@ -120,10 +117,8 @@ class FormData(BaseObject):
self.forms = forms
super(FormData, self).__init__(wcs_api, **kwargs)
self.receipt_time = isodate.parse_datetime(self.receipt_time)
if self.submission:
self.submission = BaseObject(wcs_api, **self.submission)
if self.workflow:
self.workflow = FormDataWorkflow(wcs_api, **self.workflow)
self.submission = BaseObject(wcs_api, **self.submission or {})
self.workflow = FormDataWorkflow(wcs_api, **self.workflow or {})
self.evolution = [Evolution(wcs_api, **evo) for evo in self.evolution or []]
self.functions = {}
self.concerned_roles = []
@ -217,7 +212,7 @@ class Schema(BaseObject):
def __init__(self, wcs_api, **kwargs):
super(Schema, self).__init__(wcs_api, **kwargs)
self.workflow = Workflow(wcs_api, **self.workflow)
self.fields = [Field(wcs_api, **f) for f in self.fields]
self.fields = [Field(wcs_api, **f) for f in self.fields or []]
self.geolocations = sorted((k, v) for k, v in (self.geolocations or {}).items())