From 3afc79b42eefb0d70e8e7025beaec267ae33c2d1 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 31 Jan 2020 18:23:39 +0100 Subject: [PATCH] wcs_api: handle empty dict in FormData.workflow (#39373) --- wcs_olap/wcs_api.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/wcs_olap/wcs_api.py b/wcs_olap/wcs_api.py index 41a0c60..5ab52a3 100644 --- a/wcs_olap/wcs_api.py +++ b/wcs_olap/wcs_api.py @@ -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())