Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • debian-gis-team/python-pyproj
  • laney/python-pyproj
2 results
Show changes
Commits on Source (2)
python-pyproj (2.3.0+ds-1~exp2) UNRELEASED; urgency=medium
python-pyproj (2.3.0+ds-1~exp2) experimental; urgency=medium
* Ignore test failures on arm64.
* Add upstream patches to fix test failures.
-- Bas Couwenberg <sebastic@debian.org> Mon, 19 Aug 2019 19:56:29 +0200
-- Bas Couwenberg <sebastic@debian.org> Tue, 20 Aug 2019 05:56:37 +0200
python-pyproj (2.3.0+ds-1~exp1) experimental; urgency=medium
......
Description: reduce precision constrants on geodesic tests
Author: "Alan D. Snow" <alansnow21@gmail.com>
Origin: https://github.com/pyproj4/pyproj/commit/2fe0630d399f6647215031b2e07c03448f61947a
Bug: https://github.com/pyproj4/pyproj/pull/405
--- a/pyproj/geod.py
+++ b/pyproj/geod.py
@@ -396,8 +396,8 @@ class Geod(_Geod):
>>> lons = [-74, -102, -102, -131, -163, 163, 172, 140, 113,
... 88, 59, 25, -4, -14, -33, -46, -61]
>>> poly_area, poly_perimeter = geod.polygon_area_perimeter(lons, lats)
- >>> "{:.3f} {:.3f}".format(poly_area, poly_perimeter)
- '13376856682207.406 14710425.407'
+ >>> "{:.1f} {:.1f}".format(poly_area, poly_perimeter)
+ '13376856682207.4 14710425.4'
Parameters
--- a/test/test_geod.py
+++ b/test/test_geod.py
@@ -183,7 +183,7 @@ def test_geometry_length__linestring():
assert_almost_equal(
geod.geometry_length(LineString([Point(1, 2), Point(3, 4)])),
313588.39721259556,
- decimal=3,
+ decimal=2,
)
@@ -201,7 +201,7 @@ def test_geometry_length__linestring__ra
radians=True,
),
313588.39721259556,
- decimal=3,
+ decimal=2,
)
@@ -213,7 +213,7 @@ def test_geometry_length__linearring():
LinearRing(LineString([Point(1, 2), Point(3, 4), Point(5, 2)]))
),
1072185.2103813463,
- decimal=3,
+ decimal=2,
)
@@ -225,7 +225,7 @@ def test_geometry_length__polygon():
Polygon(LineString([Point(1, 2), Point(3, 4), Point(5, 2)]))
),
1072185.2103813463,
- decimal=3,
+ decimal=2,
)
@@ -246,7 +246,7 @@ def test_geometry_length__polygon__radia
radians=True,
),
1072185.2103813463,
- decimal=3,
+ decimal=2,
)
@@ -257,7 +257,7 @@ def test_geometry_length__multipolygon()
assert_almost_equal(
geod.geometry_length(MultiPolygon([polygon, polygon])),
2 * 1072185.2103813463,
- decimal=3,
+ decimal=2,
)
@@ -276,7 +276,7 @@ def test_geometry_length__multipolygon__
assert_almost_equal(
geod.geometry_length(MultiPolygon([polygon, polygon]), radians=True),
2 * 1072185.2103813463,
- decimal=3,
+ decimal=2,
)
@@ -287,7 +287,7 @@ def test_geometry_length__multilinestrin
assert_almost_equal(
geod.geometry_length(MultiLineString([line_string, line_string])),
1254353.5888503822,
- decimal=3,
+ decimal=2,
)
@@ -311,7 +311,7 @@ def test_geometry_area_perimeter__linest
assert_almost_equal(
geod.geometry_area_perimeter(LineString([Point(1, 2), Point(3, 4)])),
(0.0, 627176.7944251911),
- decimal=3,
+ decimal=2,
)
@@ -329,7 +329,7 @@ def test_geometry_area_perimeter__linest
radians=True,
),
(0.0, 627176.7944251911),
- decimal=3,
+ decimal=2,
)
@@ -341,7 +341,7 @@ def test_geometry_area_perimeter__linear
LinearRing(LineString([Point(1, 2), Point(3, 4), Point(5, 2)]))
),
(-49187690467.58623, 1072185.2103813463),
- decimal=3,
+ decimal=2,
)
@@ -353,7 +353,7 @@ def test_geometry_area_perimeter__polygo
Polygon(LineString([Point(1, 2), Point(3, 4), Point(5, 2)]))
),
(-49187690467.58623, 1072185.2103813463),
- decimal=3,
+ decimal=2,
)
@@ -374,7 +374,7 @@ def test_geometry_area_perimeter__polygo
radians=True,
),
(-49187690467.58623, 1072185.2103813463),
- decimal=3,
+ decimal=2,
)
@@ -389,6 +389,7 @@ def test_geometry_area_perimeter__polygo
)
),
(-944373881400.3394, 3979008.0359657984),
+ decimal=2,
)
@@ -399,7 +400,7 @@ def test_geometry_area_perimeter__multip
assert_almost_equal(
geod.geometry_area_perimeter(MultiPolygon([polygon, polygon])),
(-98375380935.17245, 2144370.4207626926),
- decimal=3,
+ decimal=2,
)
@@ -418,7 +419,7 @@ def test_geometry_area_perimeter__multip
assert_almost_equal(
geod.geometry_area_perimeter(MultiPolygon([polygon, polygon]), radians=True),
(-98375380935.17245, 2144370.4207626926),
- decimal=3,
+ decimal=2,
)
@@ -429,7 +430,7 @@ def test_geometry_area_perimeter__multil
assert_almost_equal(
geod.geometry_area_perimeter(MultiLineString([line_string, line_string])),
(-98375380935.17245, 2144370.4207626926),
- decimal=3,
+ decimal=2,
)
Description: use mock for changing os.environ and sys.prefix in data directory tests
Author: "Alan D. Snow" <alansnow21@gmail.com>
Origin: https://github.com/pyproj4/pyproj/commit/288c149f5306e8b62ee2652bfe0ac5efe555f681
Bug: https://github.com/pyproj4/pyproj/pull/404
--- a/test/test_datadir.py
+++ b/test/test_datadir.py
@@ -27,16 +27,9 @@ def proj_env():
"""
Ensure environment variable the same at the end of the test.
"""
- proj_lib = os.environ.get("PROJ_LIB")
try:
yield
finally:
- if proj_lib is not None:
- # add it back if it used to be there
- os.environ["PROJ_LIB"] = proj_lib
- else:
- # remove it if it wasn't there previously
- os.environ.pop("PROJ_LIB", None)
# make sure the data dir is cleared
set_data_dir(None)
@@ -53,72 +46,101 @@ def temporary_directory():
shutil.rmtree(temp_dir)
-@unittest.skipIf(os.name == "nt", reason="Cannot modify Windows environment variables.")
+_INVALID_PATH = "/invalid/path/to/nowhere"
+
+
+def setup_os_mock(os_mock, abspath_return=_INVALID_PATH, proj_dir=None):
+ os_mock.path.abspath.return_value = abspath_return
+ os_mock.path.join = os.path.join
+ os_mock.path.dirname = os.path.dirname
+ os_mock.path.exists = os.path.exists
+ os_mock.pathsep = os.pathsep
+ if proj_dir is None:
+ os_mock.environ = {}
+ else:
+ os_mock.environ = {"PROJ_LIB": proj_dir}
+
+
def test_get_data_dir__missing():
with proj_env(), pytest.raises(DataDirError), patch(
- "pyproj.datadir.os.path.abspath", return_value="INVALID"
- ), patch("pyproj.datadir.find_executable", return_value=None):
+ "pyproj.datadir.find_executable", return_value=None
+ ), patch("pyproj.datadir.os") as os_mock, patch("pyproj.datadir.sys") as sys_mock:
+ sys_mock.prefix = _INVALID_PATH
+ setup_os_mock(os_mock)
unset_data_dir()
- os.environ.pop("PROJ_LIB", None)
assert get_data_dir() is None
def test_get_data_dir__from_user():
- with proj_env(), temporary_directory() as tmpdir, temporary_directory() as tmpdir_env: # noqa: E501
+ with proj_env(), temporary_directory() as tmpdir, patch(
+ "pyproj.datadir.os"
+ ) as os_mock, patch(
+ "pyproj.datadir.sys"
+ ) as sys_mock, temporary_directory() as tmpdir_env: # noqa: E501
+ setup_os_mock(
+ os_mock,
+ abspath_return=os.path.join(tmpdir, "randomfilename.py"),
+ proj_dir=tmpdir_env,
+ )
+ sys_mock.prefix = tmpdir_env
create_projdb(tmpdir)
- os.environ["PROJ_LIB"] = tmpdir_env
create_projdb(tmpdir_env)
set_data_dir(tmpdir)
internal_proj_dir = os.path.join(tmpdir, "proj_dir", "share", "proj")
os.makedirs(internal_proj_dir)
create_projdb(internal_proj_dir)
- with patch("pyproj.datadir.os.path.abspath") as abspath_mock:
- abspath_mock.return_value = os.path.join(tmpdir, "randomfilename.py")
- assert get_data_dir() == tmpdir
+ assert get_data_dir() == tmpdir
def test_get_data_dir__internal():
- with proj_env(), temporary_directory() as tmpdir:
+ with proj_env(), temporary_directory() as tmpdir, patch(
+ "pyproj.datadir.os"
+ ) as os_mock, temporary_directory() as tmpdir_fake, patch(
+ "pyproj.datadir.sys"
+ ) as sys_mock:
+ setup_os_mock(
+ os_mock,
+ abspath_return=os.path.join(tmpdir, "randomfilename.py"),
+ proj_dir=tmpdir_fake,
+ )
+ sys_mock.prefix = tmpdir_fake
unset_data_dir()
- os.environ["PROJ_LIB"] = tmpdir
create_projdb(tmpdir)
+ create_projdb(tmpdir_fake)
internal_proj_dir = os.path.join(tmpdir, "proj_dir", "share", "proj")
os.makedirs(internal_proj_dir)
create_projdb(internal_proj_dir)
- with patch("pyproj.datadir.os.path.abspath") as abspath_mock:
- abspath_mock.return_value = os.path.join(tmpdir, "randomfilename.py")
- assert get_data_dir() == internal_proj_dir
+ assert get_data_dir() == internal_proj_dir
-@unittest.skipIf(os.name == "nt", reason="Cannot modify Windows environment variables.")
def test_get_data_dir__from_env_var():
with proj_env(), temporary_directory() as tmpdir, patch(
- "pyproj.datadir.os.path.abspath", return_value="INVALID"
- ):
+ "pyproj.datadir.os"
+ ) as os_mock, patch("pyproj.datadir.sys") as sys_mock:
+ setup_os_mock(os_mock, proj_dir=tmpdir)
+ sys_mock.prefix = _INVALID_PATH
unset_data_dir()
- os.environ["PROJ_LIB"] = tmpdir
create_projdb(tmpdir)
assert get_data_dir() == tmpdir
-@unittest.skipIf(os.name == "nt", reason="Cannot modify Windows environment variables.")
def test_get_data_dir__from_env_var__multiple():
with proj_env(), temporary_directory() as tmpdir, patch(
- "pyproj.datadir.os.path.abspath", return_value="INVALID"
- ):
+ "pyproj.datadir.os"
+ ) as os_mock, patch("pyproj.datadir.sys") as sys_mock:
+ setup_os_mock(os_mock, proj_dir=os.pathsep.join([tmpdir, tmpdir, tmpdir]))
+ sys_mock.prefix = _INVALID_PATH
unset_data_dir()
- os.environ["PROJ_LIB"] = os.pathsep.join([tmpdir, tmpdir, tmpdir])
create_projdb(tmpdir)
assert get_data_dir() == os.pathsep.join([tmpdir, tmpdir, tmpdir])
-@unittest.skipIf(os.name == "nt", reason="Cannot modify Windows environment variables.")
def test_get_data_dir__from_prefix():
with proj_env(), temporary_directory() as tmpdir, patch(
- "pyproj.datadir.os.path.abspath", return_value="INVALID"
- ), patch("pyproj.datadir.sys") as sys_mock:
+ "pyproj.datadir.os"
+ ) as os_mock, patch("pyproj.datadir.sys") as sys_mock:
+ setup_os_mock(os_mock)
unset_data_dir()
- os.environ.pop("PROJ_LIB", None)
sys_mock.prefix = tmpdir
proj_dir = os.path.join(tmpdir, "share", "proj")
os.makedirs(proj_dir)
@@ -126,13 +148,15 @@ def test_get_data_dir__from_prefix():
assert get_data_dir() == proj_dir
-@unittest.skipIf(os.name == "nt", reason="Cannot modify Windows environment variables.")
def test_get_data_dir__from_path():
with proj_env(), temporary_directory() as tmpdir, patch(
- "pyproj.datadir.os.path.abspath", return_value="INVALID"
- ), patch("pyproj.datadir.find_executable") as find_exe:
+ "pyproj.datadir.os"
+ ) as os_mock, patch("pyproj.datadir.sys") as sys_mock, patch(
+ "pyproj.datadir.find_executable"
+ ) as find_exe:
+ setup_os_mock(os_mock)
+ sys_mock.prefix = _INVALID_PATH
unset_data_dir()
- os.environ.pop("PROJ_LIB", None)
find_exe.return_value = os.path.join(tmpdir, "bin", "proj")
proj_dir = os.path.join(tmpdir, "share", "proj")
os.makedirs(proj_dir)
@@ -141,18 +165,18 @@ def test_get_data_dir__from_path():
def test_append_data_dir__internal():
- with proj_env(), temporary_directory() as tmpdir:
+ with proj_env(), temporary_directory() as tmpdir, patch(
+ "pyproj.datadir.os"
+ ) as os_mock:
+ setup_os_mock(os_mock, os.path.join(tmpdir, "randomfilename.py"))
unset_data_dir()
- os.environ["PROJ_LIB"] = tmpdir
create_projdb(tmpdir)
internal_proj_dir = os.path.join(tmpdir, "proj_dir", "share", "proj")
os.makedirs(internal_proj_dir)
create_projdb(internal_proj_dir)
extra_datadir = str(os.path.join(tmpdir, "extra_datumgrids"))
- with patch("pyproj.datadir.os.path.abspath") as abspath_mock:
- abspath_mock.return_value = os.path.join(tmpdir, "randomfilename.py")
- append_data_dir(extra_datadir)
- assert get_data_dir() == os.pathsep.join([internal_proj_dir, extra_datadir])
+ append_data_dir(extra_datadir)
+ assert get_data_dir() == os.pathsep.join([internal_proj_dir, extra_datadir])
def test_creating_multiple_crs_without_file_limit():
0001-use-mock-for-changing-os.environ-and-sys.prefix-in-d.patch
0001-reduce-precision-constrants-on-geodesic-tests-405.patch
......@@ -9,7 +9,7 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
export PYBUILD_NAME=pyproj
export PYBUILD_TEST_PYTEST=1
export PYBUILD_TEST_ARGS=-v --ignore=test/test_datadir.py
export PYBUILD_TEST_ARGS=-v
# Path to system installed PROJ data.
export PROJ_DIR=/usr
......@@ -25,7 +25,7 @@ include /usr/share/dpkg/architecture.mk
override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
ifneq (,$(filter $(DEB_BUILD_ARCH),arm64 armhf i386 hppa hurd-i386 kfreebsd-i386 powerpc))
ifneq (,$(filter $(DEB_BUILD_ARCH),i386 hppa hurd-i386 kfreebsd-i386 powerpc))
dh_auto_test || echo "Ignoring test failures"
else
dh_auto_test
......