def describe_xml(self): """ :return: describeprocess response xml element """ doc = E.Input( OWS.Identifier(self.identifier), OWS.Title(self.title) ) doc.attrib['minOccurs'] = str(self.min_occurs) doc.attrib['maxOccurs'] = str(self.max_occurs) if self.abstract: doc.append(OWS.Abstract(self.abstract)) if self.keywords: kws = map(OWS.Keyword, self.keywords) doc.append(OWS.Keywords(*kws)) for m in self.metadata: doc.append(OWS.Metadata(dict(m))) bbox_data_doc = E.BoundingBoxData() doc.append(bbox_data_doc) default_doc = E.Default() default_doc.append(E.CRS(self.crss[0])) supported_doc = E.Supported() for c in self.crss: supported_doc.append(E.CRS(c)) bbox_data_doc.append(default_doc) bbox_data_doc.append(supported_doc) return doc
def describe_xml(self): """Return Describe process element """ default_format_el = self.supported_formats[0].describe_xml() supported_format_elements = [ f.describe_xml() for f in self.supported_formats ] doc = E.Input(OWS.Identifier(self.identifier), OWS.Title(self.title)) doc.attrib['minOccurs'] = str(self.min_occurs) doc.attrib['maxOccurs'] = str(self.max_occurs) if self.abstract: doc.append(OWS.Abstract(self.abstract)) if self.metadata: doc.append(OWS.Metadata(*self.metadata)) doc.append( E.ComplexData(E.Default(default_format_el), E.Supported(*supported_format_elements))) return doc
def test_complex_input_identifier(self): complex_in = ComplexInput('foo', 'Complex foo', supported_formats=[Format('bar/baz')]) doc = complex_in.describe_xml() self.assertEqual(doc.tag, E.Input().tag) [identifier_el] = xpath_ns(doc, './ows:Identifier') self.assertEqual(identifier_el.text, 'foo')