173 lines
5.4 KiB
Diff
173 lines
5.4 KiB
Diff
From 05230749a23ea0396b22bbcfedb6e7e0526173fe Mon Sep 17 00:00:00 2001
|
|
From: Eli Schwartz <eschwartz93@gmail.com>
|
|
Date: Fri, 13 Nov 2020 05:02:18 -0500
|
|
Subject: [PATCH] tests: do not depend on pathlib2 for modern python (#1739)
|
|
|
|
Try pathlib and fall back to pathlib2.
|
|
|
|
The latter is technically installable on python 3.4+, but does nothing
|
|
the stdlib doesn't do better. And in tightly constrained build
|
|
environments, e.g. distro packaging, any dependency or test dependency
|
|
must be a system package, but old, python2-specific backports of the
|
|
stdlib might not actually be packaged...
|
|
|
|
Make the job of distro packagers easier by not requiring patches to use
|
|
pathlib while testing python3.
|
|
|
|
Fixes #1549
|
|
|
|
re-apply patch onto the PyPI tarball, because for reasons defying logic
|
|
the PyPI tarball has both trailing whitespace and spaces converted to
|
|
tabs in the distributed setup.cfg
|
|
---
|
|
setup.cfg | 2 +-
|
|
tests/integration/test_package_int.py | 6 +++++-
|
|
tests/integration/test_parallel_interrupt.py | 6 +++++-
|
|
tests/integration/test_provision_int.py | 6 +++++-
|
|
tests/unit/package/test_package.py | 11 ++++++++---
|
|
tests/unit/session/test_provision.py | 7 ++++++-
|
|
tests/unit/test_z_cmdline.py | 7 +++++--
|
|
7 files changed, 35 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/setup.cfg b/setup.cfg
|
|
index 1b98a99..9885f6f 100644
|
|
--- a/setup.cfg
|
|
+++ b/setup.cfg
|
|
@@ -61,13 +61,13 @@ docs =
|
|
testing =
|
|
flaky>=3.4.0
|
|
freezegun>=0.3.11
|
|
- pathlib2>=2.3.3
|
|
psutil>=5.6.1
|
|
pytest>=4.0.0
|
|
pytest-cov>=2.5.1
|
|
pytest-mock>=1.10.0
|
|
pytest-randomly>=1.0.0
|
|
pytest-xdist>=1.22.2
|
|
+ pathlib2>=2.3.3;python_version<"3.4"
|
|
|
|
[options.packages.find]
|
|
where = src
|
|
diff --git a/tests/integration/test_package_int.py b/tests/integration/test_package_int.py
|
|
index b4d221a..01c59f6 100644
|
|
--- a/tests/integration/test_package_int.py
|
|
+++ b/tests/integration/test_package_int.py
|
|
@@ -4,7 +4,11 @@ import subprocess
|
|
import sys
|
|
|
|
import pytest
|
|
-from pathlib2 import Path
|
|
+
|
|
+if sys.version_info[:2] >= (3, 4):
|
|
+ from pathlib import Path
|
|
+else:
|
|
+ from pathlib2 import Path
|
|
|
|
from tests.lib import need_git
|
|
|
|
diff --git a/tests/integration/test_parallel_interrupt.py b/tests/integration/test_parallel_interrupt.py
|
|
index b21bfac..b89072a 100644
|
|
--- a/tests/integration/test_parallel_interrupt.py
|
|
+++ b/tests/integration/test_parallel_interrupt.py
|
|
@@ -7,7 +7,11 @@ from datetime import datetime
|
|
|
|
import pytest
|
|
from flaky import flaky
|
|
-from pathlib2 import Path
|
|
+
|
|
+if sys.version_info[:2] >= (3, 4):
|
|
+ from pathlib import Path
|
|
+else:
|
|
+ from pathlib2 import Path
|
|
|
|
from tox.constants import INFO
|
|
from tox.util.main import MAIN_FILE
|
|
diff --git a/tests/integration/test_provision_int.py b/tests/integration/test_provision_int.py
|
|
index a7683b0..0ae411b 100644
|
|
--- a/tests/integration/test_provision_int.py
|
|
+++ b/tests/integration/test_provision_int.py
|
|
@@ -4,7 +4,11 @@ import sys
|
|
import time
|
|
|
|
import pytest
|
|
-from pathlib2 import Path
|
|
+
|
|
+if sys.version_info[:2] >= (3, 4):
|
|
+ from pathlib import Path
|
|
+else:
|
|
+ from pathlib2 import Path
|
|
|
|
from tox.constants import INFO
|
|
from tox.util.main import MAIN_FILE
|
|
diff --git a/tests/unit/package/test_package.py b/tests/unit/package/test_package.py
|
|
index d546ecc..5a196d5 100644
|
|
--- a/tests/unit/package/test_package.py
|
|
+++ b/tests/unit/package/test_package.py
|
|
@@ -132,12 +132,17 @@ def test_build_backend_without_submodule(initproj, cmd):
|
|
# To trigger original bug, must be package with __init__.py
|
|
"inline_backend": {
|
|
"__init__.py": """\
|
|
+ import sys
|
|
def get_requires_for_build_sdist(*args, **kwargs):
|
|
- return ["pathlib2"]
|
|
+ return ["pathlib2;python_version<'3.4'"]
|
|
|
|
def build_sdist(sdist_directory, config_settings=None):
|
|
- import pathlib2
|
|
- (pathlib2.Path(sdist_directory) / "magic-0.1.0.tar.gz").touch()
|
|
+ if sys.version_info[:2] >= (3, 4):
|
|
+ import pathlib
|
|
+ else:
|
|
+ import pathlib2 as pathlib
|
|
+
|
|
+ (pathlib.Path(sdist_directory) / "magic-0.1.0.tar.gz").touch()
|
|
return "magic-0.1.0.tar.gz"
|
|
""",
|
|
},
|
|
diff --git a/tests/unit/session/test_provision.py b/tests/unit/session/test_provision.py
|
|
index ffc2c20..3065932 100644
|
|
--- a/tests/unit/session/test_provision.py
|
|
+++ b/tests/unit/session/test_provision.py
|
|
@@ -7,7 +7,12 @@ import sys
|
|
|
|
import py
|
|
import pytest
|
|
-from pathlib2 import Path
|
|
+
|
|
+if sys.version_info[:2] >= (3, 4):
|
|
+ from pathlib import Path
|
|
+else:
|
|
+ from pathlib2 import Path
|
|
+
|
|
from six.moves.urllib.parse import urljoin
|
|
from six.moves.urllib.request import pathname2url
|
|
|
|
diff --git a/tests/unit/test_z_cmdline.py b/tests/unit/test_z_cmdline.py
|
|
index 8a641f8..ec50b55 100644
|
|
--- a/tests/unit/test_z_cmdline.py
|
|
+++ b/tests/unit/test_z_cmdline.py
|
|
@@ -6,7 +6,10 @@ import subprocess
|
|
import sys
|
|
import tempfile
|
|
|
|
-import pathlib2
|
|
+if sys.version_info[:2] >= (3, 4):
|
|
+ import pathlib
|
|
+else:
|
|
+ import pathlib2 as pathlib
|
|
import py
|
|
import pytest
|
|
|
|
@@ -462,7 +465,7 @@ def test_no_setup_py_exits_but_pyproject_toml_does(cmd, initproj):
|
|
},
|
|
)
|
|
os.remove("setup.py")
|
|
- pathlib2.Path("pyproject.toml").touch()
|
|
+ pathlib.Path("pyproject.toml").touch()
|
|
result = cmd()
|
|
result.assert_fail()
|
|
assert any(
|
|
--
|
|
2.29.2
|
|
|