From 47b298ce2a9a1a758b0ccd35cb1180e70e637145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bern=C3=A1t=20G=C3=A1bor?= Date: Mon, 8 Oct 2018 13:34:17 +0100 Subject: bugfix specifying --installpkg breaks build with 3.5.0 (#1043) Resolves #1042. cc @suutari URL of RTD document: https://tox.readthedocs.io/en/1042/ --- docs/changelog/1042.bugfix.rst | 1 + src/tox/package.py | 6 +++--- tests/unit/test_package.py | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 docs/changelog/1042.bugfix.rst diff --git a/docs/changelog/1042.bugfix.rst b/docs/changelog/1042.bugfix.rst new file mode 100644 index 00000000..250208f3 --- /dev/null +++ b/docs/changelog/1042.bugfix.rst @@ -0,0 +1 @@ +fix regression with ``3.5.0``: specifying ``--installpkg`` raises ``AttributeError: 'str' object has no attribute 'basename'`` diff --git a/src/tox/package.py b/src/tox/package.py index bbd191fd..29548c65 100644 --- a/src/tox/package.py +++ b/src/tox/package.py @@ -108,9 +108,9 @@ def get_local_package(config, report, session): path = config.option.installpkg if not path: path = config.sdistsrc - path = session._resolve_package(path) - report.info("using package {!r}, skipping 'sdist' activity ".format(str(path))) - return path + py_path = py.path.local(session._resolve_package(path)) + report.info("using package {!r}, skipping 'sdist' activity ".format(str(py_path))) + return py_path def build_package(config, report, session): diff --git a/tests/unit/test_package.py b/tests/unit/test_package.py index d46d229d..e4c39a48 100644 --- a/tests/unit/test_package.py +++ b/tests/unit/test_package.py @@ -389,3 +389,18 @@ def test_tox_parallel_build_safe(initproj, cmd, mock_venv, monkeypatch): assert len(dist_after) == 1 sdist = dist_after[0] assert t1_package != sdist + + +def test_install_via_installpkg(mock_venv, initproj, cmd): + base = initproj( + "pkg-0.1", + filedefs={ + "tox.ini": """ + [tox] + install_cmd = python -m -c 'print("ok")' -- {opts} {packages}' + """ + }, + ) + fake_package = base.ensure(".tox", "dist", "pkg123-0.1.zip") + result = cmd("-e", "py", "--notest", "--installpkg", str(fake_package.relto(base))) + assert result.ret == 0, result.out -- cgit v1.2.1