def test_get_featurecatalogue_uuid_nouuidref(self, md_metadata): """Test the owsutil.get_featurecatalogue_uuid method when the gmd:contentInfo element is missing a 'uuidref' attribute. Test whether a FeatureCatalogueNotFoundError is raised. Parameters ---------- md_metadata : pytest.fixture providing owslib.iso.MD_Metadata Parsed metadata describing the Boringen WFS layer in more detail, in the ISO 19115/19139 format. """ tree = etree.fromstring(md_metadata.xml) for ci in tree.findall( nspath_eval( 'gmd:MD_Metadata/gmd:contentInfo/' 'gmd:MD_FeatureCatalogueDescription/' 'gmd:featureCatalogueCitation', {'gmd': 'http://www.isotc211.org/2005/gmd'})): ci.attrib.pop('uuidref') md_metadata.xml = etree.tostring(tree) with pytest.raises(FeatureCatalogueNotFoundError): owsutil.get_featurecatalogue_uuid(md_metadata)
def _init_fields(self): if self._fields is None: if SonderingSearch.__wfs_schema is None: SonderingSearch.__wfs_schema = self._get_schema() if SonderingSearch.__md_metadata is None: SonderingSearch.__md_metadata = self._get_remote_metadata() if SonderingSearch.__fc_featurecatalogue is None: csw_url = self._get_csw_base_url() fc_uuid = owsutil.get_featurecatalogue_uuid( SonderingSearch.__md_metadata) SonderingSearch.__fc_featurecatalogue = \ owsutil.get_remote_featurecatalogue(csw_url, fc_uuid) if SonderingSearch.__xsd_schemas is None: SonderingSearch.__xsd_schemas = \ self._get_remote_xsd_schemas() fields = self._build_fields(SonderingSearch.__wfs_schema, SonderingSearch.__fc_featurecatalogue, SonderingSearch.__xsd_schemas) for field in fields.values(): if field['name'] not in self._type.get_field_names( include_wfs_injected=True): self._type.fields.append( _WfsInjectedField(name=field['name'], datatype=field['type'])) self._fields = self._build_fields( SonderingSearch.__wfs_schema, SonderingSearch.__fc_featurecatalogue, SonderingSearch.__xsd_schemas)
def test_get_featurecatalogue_uuid_nocontentinfo(self, md_metadata): """Test the owsutil.get_featurecatalogue_uuid method when the metadata is missing the gmd:contentInfo element. Test whether a FeatureCatalogueNotFoundError is raised. Parameters ---------- md_metadata : pytest.fixture providing owslib.iso.MD_Metadata Parsed metadata describing the Boringen WFS layer in more detail, in the ISO 19115/19139 format. """ tree = etree.fromstring(md_metadata.xml) for ci in tree.findall( './/{http://www.isotc211.org/2005/gmd}contentInfo'): tree.remove(ci) md_metadata = MD_Metadata(tree) with pytest.raises(FeatureCatalogueNotFoundError): owsutil.get_featurecatalogue_uuid(md_metadata)
def test_get_featurecatalogue_uuid(self, md_metadata): """Test the owsutil.get_featurecatalogue_uuid method. Test whether the featurecatalogue uuid of the dov-pub:Boringen layer is correct. Parameters ---------- md_metadata : pytest.fixture providing owslib.iso.MD_Metadata Parsed metadata describing the Boringen WFS layer in more detail, in the ISO 19115/19139 format. """ assert owsutil.get_featurecatalogue_uuid(md_metadata) == \ 'c0cbd397-520f-4ee1-aca7-d70e271eeed6'
def _init_fields(self): """Initialise the fields and their metadata available in this search class.""" if self._fields is None: if InformeleHydrogeologischeStratigrafieSearch.__wfs_schema is \ None: InformeleHydrogeologischeStratigrafieSearch.__wfs_schema = \ self._get_schema() if InformeleHydrogeologischeStratigrafieSearch.__md_metadata is \ None: InformeleHydrogeologischeStratigrafieSearch.__md_metadata = \ self._get_remote_metadata() if InformeleHydrogeologischeStratigrafieSearch.\ __fc_featurecatalogue is None: csw_url = self._get_csw_base_url() fc_uuid = owsutil.get_featurecatalogue_uuid( InformeleHydrogeologischeStratigrafieSearch.__md_metadata) InformeleHydrogeologischeStratigrafieSearch.\ __fc_featurecatalogue = \ owsutil.get_remote_featurecatalogue(csw_url, fc_uuid) if InformeleHydrogeologischeStratigrafieSearch.__xsd_schemas is \ None: InformeleHydrogeologischeStratigrafieSearch.__xsd_schemas = \ self._get_remote_xsd_schemas() fields = self._build_fields( InformeleHydrogeologischeStratigrafieSearch.__wfs_schema, InformeleHydrogeologischeStratigrafieSearch. __fc_featurecatalogue, InformeleHydrogeologischeStratigrafieSearch.__xsd_schemas) for field in fields.values(): if field['name'] not in self._type.get_field_names( include_wfs_injected=True): self._type.fields.append( _WfsInjectedField(name=field['name'], datatype=field['type'])) self._fields = self._build_fields( InformeleHydrogeologischeStratigrafieSearch.__wfs_schema, InformeleHydrogeologischeStratigrafieSearch. __fc_featurecatalogue, InformeleHydrogeologischeStratigrafieSearch.__xsd_schemas)
def _init_fields(self): """Initialise the fields and their metadata available in this search class.""" if self._fields is None: if GeotechnischeCoderingSearch.__wfs_schema is None: GeotechnischeCoderingSearch.__wfs_schema = \ self._get_schema() if GeotechnischeCoderingSearch.__md_metadata is None: GeotechnischeCoderingSearch.__md_metadata = \ self._get_remote_metadata() if GeotechnischeCoderingSearch.__fc_featurecatalogue \ is None: csw_url = self._get_csw_base_url() fc_uuid = owsutil.get_featurecatalogue_uuid( GeotechnischeCoderingSearch.__md_metadata) GeotechnischeCoderingSearch.__fc_featurecatalogue = \ owsutil.get_remote_featurecatalogue(csw_url, fc_uuid) if GeotechnischeCoderingSearch.__xsd_schemas is None: GeotechnischeCoderingSearch.__xsd_schemas = \ self._get_remote_xsd_schemas() fields = self._build_fields( GeotechnischeCoderingSearch.__wfs_schema, GeotechnischeCoderingSearch.__fc_featurecatalogue, GeotechnischeCoderingSearch.__xsd_schemas) for field in fields.values(): if field['name'] not in self._type.get_field_names( include_wfs_injected=True): self._type._fields.append({ 'name': field['name'], 'source': 'wfs', 'sourcefield': field['name'], 'type': field['type'], 'wfs_injected': True }) self._fields = self._build_fields( GeotechnischeCoderingSearch.__wfs_schema, GeotechnischeCoderingSearch.__fc_featurecatalogue, GeotechnischeCoderingSearch.__xsd_schemas)
def _init_fields(self): """Initialise the fields and their metadata available in this search class. Raises ------ NotImplementedError This is an abstract method that should be implemented in a subclass. """ if self._fields is None: if self._wfs_schema is None: self._wfs_schema = self._get_schema() if self._md_metadata is None: self._md_metadata = self._get_remote_metadata() if self._fc_featurecatalogue is None: csw_url = self._get_csw_base_url() fc_uuid = owsutil.get_featurecatalogue_uuid(self._md_metadata) self._fc_featurecatalogue = \ owsutil.get_remote_featurecatalogue(csw_url, fc_uuid) if self._xsd_schemas is None: self._xsd_schemas = self._get_remote_xsd_schemas() fields = self._build_fields(self._wfs_schema, self._fc_featurecatalogue, self._xsd_schemas) for field in fields.values(): if field['name'] not in self._type.get_field_names( include_wfs_injected=True): self._type.fields.append( _WfsInjectedField(name=field['name'], datatype=field['type'])) self._fields = self._build_fields(self._wfs_schema, self._fc_featurecatalogue, self._xsd_schemas)