# Works with either ElementTree or python-lxml # No pyproj for Python 3 in EPEL7 %bcond_with python3 Name: python-OWSLib Version: 0.9.2 Release: %autorelease Summary: Client library for OGC web services License: BSD-3-Clause URL: http://geopython.github.io/OWSLib %global forgeurl https://github.com/geopython/OWSLib Source0: %{forgeurl}/archive/%{version}/OWSLib-%{version}.tar.gz BuildArch: noarch %global common_description %{expand: Package for client programming with Open Geospatial Consortium (OGC) web service (hence OWS) interface standards, and their related content models.} %description %{common_description} %package -n python2-OWSLib Summary: %{summary} %{?python_provide:%python_provide python2-OWSLib} BuildRequires: python2-devel BuildRequires: python2-setuptools BuildRequires: python2-pytest BuildRequires: python2-dateutil >= 1.5 BuildRequires: python2-requests >= 1.0 BuildRequires: python2-pytz BuildRequires: pyproj Requires: python2-dateutil >= 1.5 Requires: python2-requests >= 1.0 Requires: python2-pytz Requires: python2-pyproj %description -n python2-OWSLib %{common_description} %if %{with python3} %package -n python%{python3_pkgversion}-OWSLib Summary: %{summary} %{?python_provide:%python_provide python%{python3_pkgversion}-OWSLib} BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-pytest BuildRequires: python%{python3_pkgversion}-dateutil >= 1.5 BuildRequires: python%{python3_pkgversion}-requests >= 1.0 BuildRequires: python%{python3_pkgversion}-pytz BuildRequires: python%{python3_pkgversion}-pyproj Requires: python%{python3_pkgversion}-dateutil >= 1.5 Requires: python%{python3_pkgversion}-requests >= 1.0 Requires: python%{python3_pkgversion}-pytz Requires: python%{python3_pkgversion}-pyproj %description -n python%{python3_pkgversion}-OWSLib %{common_description} %endif %prep %autosetup -n OWSLib-%{version} rm -rf OWSLib.egg-info # Remove shebangs from non-script sources. The find-then-modify pattern # preserves mtimes on sources that did not need to be modified. find 'owslib' -type f -name '*.py' \ -exec gawk '/^#!/ { print FILENAME }; { nextfile }' '{}' '+' | xargs -r sed -r -i '1{/^#!/d}' # https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters sed -r -i 's/--cov[^[:blank:]=]*([=[:blank:]][^-][^[:blank:]]+)?//g' tox.ini %build %py2_build %if %{with python3} %py3_build %endif %install %py2_install %if %{with python3} %py3_install %endif %check # Otherwise, pytest finds the package twice in the Python path and complains. rm -rf owslib # In recent versions, there is a convenient “online” mark for deselecting tests # that require Internet access, but we still have to manually deselect doctests # that try to make network requests. k="${k-}${k+ and }not (wms_geoserver_mass_gis and txt)" k="${k-}${k+ and }not (wfs_MapServerWFSFeature and txt)" k="${k-}${k+ and }not (wfs_MapServerWFSCapabilities and txt)" k="${k-}${k+ and }not (wfs2_storedqueries and txt)" k="${k-}${k+ and }not (wfs1_generic and txt)" k="${k-}${k+ and }not (wcs_thredds and txt)" k="${k-}${k+ and }not (test_wmts_example_informatievlaanderen and txt)" # These require network access, and would be covered by the “online” mark: k="${k-}${k+ and }not (WebMapService and getmap)" k="${k-}${k+ and }not (WebMapTileService and buildTileRequest)" k="${k-}${k+ and }not (WebMapTileService and gettile)" k="${k-}${k+ and }not (csw_gdp and txt)" k="${k-}${k+ and }not (csw_geonetwork and txt)" k="${k-}${k+ and }not (csw_geoserver and txt)" k="${k-}${k+ and }not (csw_linz and txt)" k="${k-}${k+ and }not (csw_ngdc and txt)" k="${k-}${k+ and }not (csw_nlr and txt)" k="${k-}${k+ and }not (csw_pycsw and txt)" k="${k-}${k+ and }not (csw_pycsw_skip_caps and txt)" k="${k-}${k+ and }not (csw_skgeodsy and txt)" k="${k-}${k+ and }not (csw_uuid_constrain and txt)" k="${k-}${k+ and }not (ows_interfaces and txt)" k="${k-}${k+ and }not (sos_10_ndbc_getobservation and txt)" k="${k-}${k+ and }not (tms and txt)" k="${k-}${k+ and }not (wcs_idee and txt)" k="${k-}${k+ and }not (wfs_USDASSURGO and txt)" k="${k-}${k+ and }not (wms_JPLCapabilities and txt)" k="${k-}${k+ and }not (wms_getfeatureinfo and txt)" k="${k-}${k+ and }not (wmts and txt)" k="${k-}${k+ and }not (wps_execute and txt)" k="${k-}${k+ and }not (wps_execute_invalid_request and txt)" # Unknown problem—check if it is fixed in a later version: k="${k-}${k+ and } not (TestOffline and test_wfs_110_remotemd_parse_all)" k="${k-}${k+ and } not (TestOffline and test_wfs_110_remotemd_parse_single)" k="${k-}${k+ and } not (TestOffline and test_wfs_200_remotemd_parse_single)" k="${k-}${k+ and } not (TestOffline and test_wms_130_remotemd_parse_all)" k="${k-}${k+ and } not (TestOffline and test_wms_130_remotemd_parse_single)" # ____________ [doctest] tests/doctests/wms_GeoServerCapabilities.txt ____________ # 062 >>> x = wms['opengeo:poi'].styles # 063 >>> x == {'point': {'legend': 'http://localhost:8080/geoserver/wms?request=GetLegendGraphic&format=image%2Fpng&width=20&height=20&layer=poi', 'title': 'A boring default style'}} # 064 True # 065 # 066 Test nested layer # 067 # 068 >>> wms['parent_layer'].title # 069 'Parent Layer' # 070 # 071 >>> wms['parent_layer'].queryable # Expected: # 1 # Got: # 0 k="${k-}${k+ and } not (wms_GeoServerCapabilities and txt)" PYTHONPATH='%{buildroot}%{python2_sitelib}' PYTHONDONTWRITEBYTECODE=1 \ %{python2} -m pytest -m 'not online' -k "${k-}" %if %{with python3} PYTHONPATH='%{buildroot}%{python3_sitelib}' PYTHONDONTWRITEBYTECODE=1 \ %{python3} -m pytest -m 'not online' -k "${k-}" %endif %files -n python2-OWSLib %license LICENSE.txt %doc CHANGES.txt %doc CREDITS.txt %doc FAQ.txt %doc HISTORY.txt %doc README.txt %{python2_sitelib}/owslib/ %{python2_sitelib}/OWSLib-%{version}-py%{python2_version}.egg-info %if %{with python3} %files -n python%{python3_pkgversion}-OWSLib %license LICENSE.txt %doc CHANGES.txt %doc CREDITS.txt %doc FAQ.txt %doc HISTORY.txt %doc README.txt %{python3_sitelib}/owslib/ %{python3_sitelib}/OWSLib-%{version}-py%{python3_version}.egg-info %endif %changelog %autochangelog