Date: Tuesday, October 5, 2021 @ 21:24:11 Author: svenstaro Revision: 1027811
archrelease: copy trunk to community-any Added: python-poetry/repos/community-any/0001-Suppress-dependency-versions-which-are-known-to-be-t.patch (from rev 1027810, python-poetry/trunk/0001-Suppress-dependency-versions-which-are-known-to-be-t.patch) python-poetry/repos/community-any/0001-tests-cleanup-cache-and-http-usage.patch (from rev 1027810, python-poetry/trunk/0001-tests-cleanup-cache-and-http-usage.patch) python-poetry/repos/community-any/PKGBUILD (from rev 1027810, python-poetry/trunk/PKGBUILD) python-poetry/repos/community-any/poetry-completions-generator (from rev 1027810, python-poetry/trunk/poetry-completions-generator) Deleted: python-poetry/repos/community-any/0001-Suppress-dependency-versions-which-are-known-to-be-t.patch python-poetry/repos/community-any/0001-tests-cleanup-cache-and-http-usage.patch python-poetry/repos/community-any/PKGBUILD python-poetry/repos/community-any/poetry-completions-generator -----------------------------------------------------------------+ 0001-Suppress-dependency-versions-which-are-known-to-be-t.patch | 106 0001-tests-cleanup-cache-and-http-usage.patch | 1116 +++++----- PKGBUILD | 158 - poetry-completions-generator | 30 4 files changed, 705 insertions(+), 705 deletions(-) Deleted: 0001-Suppress-dependency-versions-which-are-known-to-be-t.patch =================================================================== --- 0001-Suppress-dependency-versions-which-are-known-to-be-t.patch 2021-10-05 21:24:00 UTC (rev 1027810) +++ 0001-Suppress-dependency-versions-which-are-known-to-be-t.patch 2021-10-05 21:24:11 UTC (rev 1027811) @@ -1,53 +0,0 @@ -From cc5b938f7f9e3c536f4a60c35cdd2085b3933618 Mon Sep 17 00:00:00 2001 -From: Eli Schwartz <eschwa...@archlinux.org> -Date: Mon, 27 Apr 2020 21:51:57 -0400 -Subject: [PATCH] Fix completely broken dependencies. - -poetry habitually engages in: -- dependency versions which are known to be too pessimistic -- multiple editions of dependencies per python version - -The former all work just fine in reported use and should not be pinned; we -package versions in Arch which are "too new". This is what unittests are -for, anyway. - -The latter tries to enforce minimum versions of dependencies, but pins -it twice, once with more relaxed pinning for older versions of python. -If an old version works, it works irrespective of the python version, -and you don't need to use minimum requirements as your mallet to force -people to upgrade to the latest version anyway. -https://github.com/dephell/dephell/issues/330 ---- - pyproject.toml | 11 ++--------- - 1 file changed, 2 insertions(+), 9 deletions(-) - -diff --git a/pyproject.toml b/pyproject.toml -index 8c1f137..81ebc89 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -51,20 +51,13 @@ futures = { version = "^3.3.0", python = "~2.7" } - glob2 = { version = "^0.6", python = "~2.7" } - # functools32 is needed for Python 2.7 - functools32 = { version = "^3.2.3", python = "~2.7" } --keyring = [ -- { version = "^18.0.1", python = "~2.7" }, -- { version = "^20.0.1", python = "~3.5" }, -- { version = "^21.2.0", python = "^3.6" } --] -+keyring = "*" - # Use subprocess32 for Python 2.7 - subprocess32 = { version = "^3.5", python = "~2.7" } - importlib-metadata = {version = "^1.6.0", python = "<3.8"} - - [tool.poetry.dev-dependencies] --pytest = [ -- {version = "^4.1", python = "<3.5"}, -- {version = "^5.4.3", python = ">=3.5"} --] -+pytest = { version = ">=4.1" } - pytest-cov = "^2.5" - pytest-mock = "^1.9" - pre-commit = { version = "^2.6", python = "^3.6.1" } --- -2.28.0 - Copied: python-poetry/repos/community-any/0001-Suppress-dependency-versions-which-are-known-to-be-t.patch (from rev 1027810, python-poetry/trunk/0001-Suppress-dependency-versions-which-are-known-to-be-t.patch) =================================================================== --- 0001-Suppress-dependency-versions-which-are-known-to-be-t.patch (rev 0) +++ 0001-Suppress-dependency-versions-which-are-known-to-be-t.patch 2021-10-05 21:24:11 UTC (rev 1027811) @@ -0,0 +1,53 @@ +From cc5b938f7f9e3c536f4a60c35cdd2085b3933618 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwa...@archlinux.org> +Date: Mon, 27 Apr 2020 21:51:57 -0400 +Subject: [PATCH] Fix completely broken dependencies. + +poetry habitually engages in: +- dependency versions which are known to be too pessimistic +- multiple editions of dependencies per python version + +The former all work just fine in reported use and should not be pinned; we +package versions in Arch which are "too new". This is what unittests are +for, anyway. + +The latter tries to enforce minimum versions of dependencies, but pins +it twice, once with more relaxed pinning for older versions of python. +If an old version works, it works irrespective of the python version, +and you don't need to use minimum requirements as your mallet to force +people to upgrade to the latest version anyway. +https://github.com/dephell/dephell/issues/330 +--- + pyproject.toml | 11 ++--------- + 1 file changed, 2 insertions(+), 9 deletions(-) + +diff --git a/pyproject.toml b/pyproject.toml +index 8c1f137..81ebc89 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -51,20 +51,13 @@ futures = { version = "^3.3.0", python = "~2.7" } + glob2 = { version = "^0.6", python = "~2.7" } + # functools32 is needed for Python 2.7 + functools32 = { version = "^3.2.3", python = "~2.7" } +-keyring = [ +- { version = "^18.0.1", python = "~2.7" }, +- { version = "^20.0.1", python = "~3.5" }, +- { version = "^21.2.0", python = "^3.6" } +-] ++keyring = "*" + # Use subprocess32 for Python 2.7 + subprocess32 = { version = "^3.5", python = "~2.7" } + importlib-metadata = {version = "^1.6.0", python = "<3.8"} + + [tool.poetry.dev-dependencies] +-pytest = [ +- {version = "^4.1", python = "<3.5"}, +- {version = "^5.4.3", python = ">=3.5"} +-] ++pytest = { version = ">=4.1" } + pytest-cov = "^2.5" + pytest-mock = "^1.9" + pre-commit = { version = "^2.6", python = "^3.6.1" } +-- +2.28.0 + Deleted: 0001-tests-cleanup-cache-and-http-usage.patch =================================================================== --- 0001-tests-cleanup-cache-and-http-usage.patch 2021-10-05 21:24:00 UTC (rev 1027810) +++ 0001-tests-cleanup-cache-and-http-usage.patch 2021-10-05 21:24:11 UTC (rev 1027811) @@ -1,558 +0,0 @@ -From c966775dd5cce42353a32b4df67a03699aa8d445 Mon Sep 17 00:00:00 2001 -From: Arun Babu Neelicattu <arun.neelica...@gmail.com> -Date: Tue, 20 Oct 2020 18:32:36 +0200 -Subject: [PATCH] tests: cleanup cache and http usage - -- ensure tests rely on temporary cache directory -- remove external http call requirement for lock --no-update - -Relates-to: #1645 -(cherry picked from commit bf61dd56399b5d0cfadf66fed72b4d63062a827f) - -# Conflicts: -# tests/console/commands/test_config.py -# tests/console/commands/test_lock.py -# tests/utils/test_env.py ---- - tests/config/test_config.py | 4 +- - tests/conftest.py | 21 ++- - tests/console/commands/test_config.py | 30 ++-- - tests/console/commands/test_lock.py | 37 +++-- - tests/fixtures/old_lock/poetry.lock | 150 +----------------- - tests/fixtures/old_lock/pyproject.toml | 2 +- - tests/installation/test_chef.py | 7 +- - tests/installation/test_executor.py | 6 +- - .../masonry/builders/test_editable_builder.py | 8 +- - tests/utils/test_env.py | 26 ++- - 10 files changed, 92 insertions(+), 199 deletions(-) - -diff --git a/tests/config/test_config.py b/tests/config/test_config.py -index 4bd0cd04..f3b13f23 100644 ---- a/tests/config/test_config.py -+++ b/tests/config/test_config.py -@@ -10,8 +10,8 @@ def test_config_get_default_value(config, name, value): - assert config.get(name) is value - - --def test_config_get_processes_depended_on_values(config): -- assert os.path.join("/foo", "virtualenvs") == config.get("virtualenvs.path") -+def test_config_get_processes_depended_on_values(config, config_cache_dir): -+ assert str(config_cache_dir / "virtualenvs") == config.get("virtualenvs.path") - - - @pytest.mark.parametrize( -diff --git a/tests/conftest.py b/tests/conftest.py -index e2b73936..51128f76 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -54,9 +54,21 @@ class Config(BaseConfig): - - - @pytest.fixture --def config_source(): -+def config_cache_dir(tmp_dir): -+ path = Path(tmp_dir) / ".cache" / "pypoetry" -+ path.mkdir(parents=True) -+ return path -+ -+ -+@pytest.fixture -+def config_virtualenvs_path(config_cache_dir): -+ return config_cache_dir / "virtualenvs" -+ -+ -+@pytest.fixture -+def config_source(config_cache_dir): - source = DictConfigSource() -- source.add_property("cache-dir", "/foo") -+ source.add_property("cache-dir", str(config_cache_dir)) - - return source - -@@ -226,6 +238,7 @@ def project_factory(tmp_dir, config, repo, installed, default_python): - dependencies=None, - dev_dependencies=None, - pyproject_content=None, -+ poetry_lock_content=None, - install_deps=True, - ): - project_dir = workspace / "poetry-fixture-{}".format(name) -@@ -249,6 +262,10 @@ def project_factory(tmp_dir, config, repo, installed, default_python): - dev_dependencies=dev_dependencies, - ).create(project_dir, with_tests=False) - -+ if poetry_lock_content: -+ lock_file = project_dir / "poetry.lock" -+ lock_file.write_text(data=poetry_lock_content, encoding="utf-8") -+ - poetry = Factory().create_poetry(project_dir) - - locker = TestLocker( -diff --git a/tests/console/commands/test_config.py b/tests/console/commands/test_config.py -index fa0bea4a..e85fb697 100644 ---- a/tests/console/commands/test_config.py -+++ b/tests/console/commands/test_config.py -@@ -25,35 +25,39 @@ def test_show_config_with_local_config_file_empty(tester, mocker): - assert "" == tester.io.fetch_output() - - --def test_list_displays_default_value_if_not_set(tester, config): -+def test_list_displays_default_value_if_not_set(tester, config, config_cache_dir): - tester.execute("--list") - -- expected = """cache-dir = "/foo" -+ expected = """cache-dir = {cache} - experimental.new-installer = true - installer.parallel = true - virtualenvs.create = true - virtualenvs.in-project = null --virtualenvs.path = {path} # /foo{sep}virtualenvs -+virtualenvs.path = {path} # {virtualenvs} - """.format( -- path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), sep=os.path.sep -+ cache=json.dumps(str(config_cache_dir)), -+ path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), -+ virtualenvs=str(config_cache_dir / "virtualenvs"), - ) - - assert expected == tester.io.fetch_output() - - --def test_list_displays_set_get_setting(tester, config): -+def test_list_displays_set_get_setting(tester, config, config_cache_dir): - tester.execute("virtualenvs.create false") - - tester.execute("--list") - -- expected = """cache-dir = "/foo" -+ expected = """cache-dir = {cache} - experimental.new-installer = true - installer.parallel = true - virtualenvs.create = false - virtualenvs.in-project = null --virtualenvs.path = {path} # /foo{sep}virtualenvs -+virtualenvs.path = {path} # {virtualenvs} - """.format( -- path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), sep=os.path.sep -+ cache=json.dumps(str(config_cache_dir)), -+ path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), -+ virtualenvs=str(config_cache_dir / "virtualenvs"), - ) - - assert 0 == config.set_config_source.call_count -@@ -81,19 +85,21 @@ def test_display_single_local_setting(command_tester_factory, fixture_dir): - assert expected == tester.io.fetch_output() - - --def test_list_displays_set_get_local_setting(tester, config): -+def test_list_displays_set_get_local_setting(tester, config, config_cache_dir): - tester.execute("virtualenvs.create false --local") - - tester.execute("--list") - -- expected = """cache-dir = "/foo" -+ expected = """cache-dir = {cache} - experimental.new-installer = true - installer.parallel = true - virtualenvs.create = false - virtualenvs.in-project = null --virtualenvs.path = {path} # /foo{sep}virtualenvs -+virtualenvs.path = {path} # {virtualenvs} - """.format( -- path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), sep=os.path.sep -+ cache=json.dumps(str(config_cache_dir)), -+ path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), -+ virtualenvs=str(config_cache_dir / "virtualenvs"), - ) - - assert 1 == config.set_config_source.call_count -diff --git a/tests/console/commands/test_lock.py b/tests/console/commands/test_lock.py -index 823a8ba4..c05ba257 100644 ---- a/tests/console/commands/test_lock.py -+++ b/tests/console/commands/test_lock.py -@@ -1,11 +1,8 @@ --import shutil --import sys -- - import pytest - --from poetry.factory import Factory - from poetry.packages import Locker - from poetry.utils._compat import Path -+from tests.helpers import get_package - - - @pytest.fixture -@@ -19,18 +16,26 @@ def tester(command_tester_factory): - - - @pytest.fixture --def poetry_with_old_lockfile(fixture_dir, source_dir): -- project_dir = source_dir / "project" -- shutil.copytree(str(fixture_dir("old_lock")), str(project_dir)) -- poetry = Factory().create_poetry(cwd=project_dir) -- return poetry -- -- --@pytest.mark.skipif( -- sys.platform == "win32", reason="does not work on windows under ci environments" --) --def test_lock_no_update(command_tester_factory, poetry_with_old_lockfile, http): -- http.disable() -+def poetry_with_old_lockfile(project_factory, fixture_dir, source_dir): -+ source = fixture_dir("old_lock") -+ pyproject_content = (source / "pyproject.toml").read_text(encoding="utf-8") -+ poetry_lock_content = (source / "poetry.lock").read_text(encoding="utf-8") -+ return project_factory( -+ name="foobar", -+ pyproject_content=pyproject_content, -+ poetry_lock_content=poetry_lock_content, -+ ) -+ -+ -+def test_lock_no_update(command_tester_factory, poetry_with_old_lockfile, repo): -+ repo.add_package(get_package("sampleproject", "1.3.1")) -+ repo.add_package(get_package("sampleproject", "2.0.0")) -+ -+ locker = Locker( -+ lock=poetry_with_old_lockfile.pyproject.file.path.parent / "poetry.lock", -+ local_config=poetry_with_old_lockfile.locker._local_config, -+ ) -+ poetry_with_old_lockfile.set_locker(locker) - - locked_repository = poetry_with_old_lockfile.locker.locked_repository( - with_dev_reqs=True -diff --git a/tests/fixtures/old_lock/poetry.lock b/tests/fixtures/old_lock/poetry.lock -index 57d58570..498df2ed 100644 ---- a/tests/fixtures/old_lock/poetry.lock -+++ b/tests/fixtures/old_lock/poetry.lock -@@ -1,153 +1,19 @@ - [[package]] - category = "main" --description = "Python package for providing Mozilla's CA Bundle." --name = "certifi" --optional = false --python-versions = "*" --version = "2020.6.20" -- --[[package]] --category = "main" --description = "Universal encoding detector for Python 2 and 3" --name = "chardet" --optional = false --python-versions = "*" --version = "3.0.4" -- --[[package]] --category = "main" --description = "A Python library for the Docker Engine API." --name = "docker" --optional = false --python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" --version = "4.3.1" -- --[package.dependencies] --pywin32 = "227" --requests = ">=2.14.2,<2.18.0 || >2.18.0" --six = ">=1.4.0" --websocket-client = ">=0.32.0" -- --[package.extras] --ssh = ["paramiko (>=2.4.2)"] --tls = ["pyOpenSSL (>=17.5.0)", "cryptography (>=1.3.4)", "idna (>=2.0.0)"] -- --[[package]] --category = "main" --description = "Internationalized Domain Names in Applications (IDNA)" --name = "idna" --optional = false --python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" --version = "2.10" -- --[[package]] --category = "main" --description = "Python for Window Extensions" --marker = "sys_platform == \"win32\"" --name = "pywin32" --optional = false --python-versions = "*" --version = "227" -- --[[package]] --category = "main" --description = "Python HTTP for Humans." --name = "requests" --optional = false --python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" --version = "2.24.0" -- --[package.dependencies] --certifi = ">=2017.4.17" --chardet = ">=3.0.2,<4" --idna = ">=2.5,<3" --urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26" -- --[package.extras] --security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] --socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"] -- --[[package]] --category = "main" --description = "Python 2 and 3 compatibility utilities" --name = "six" --optional = false --python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" --version = "1.15.0" -- --[[package]] --category = "main" --description = "HTTP library with thread-safe connection pooling, file post, and more." --name = "urllib3" -+description = "A sample Python project" -+name = "sampleproject" - optional = false - python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" --version = "1.25.10" -- --[package.extras] --brotli = ["brotlipy (>=0.6.0)"] --secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"] --socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"] -- --[[package]] --category = "main" --description = "WebSocket client for Python. hybi13 is supported." --name = "websocket-client" --optional = false --python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" --version = "0.57.0" -- --[package.dependencies] --six = "*" -+version = "1.3.1" - - [metadata] --content-hash = "bb4c2f3c089b802c1930b6acbeed04711d93e9cdfd9a003eb17518a6d9f350c6" -+content-hash = "c8c2c9d899e47bac3972e029ef0e71b75d5df98a28eebef25a75640a19aac177" - lock-version = "1.0" - python-versions = "^3.8" - - [metadata.files] --certifi = [ -- {file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"}, -- {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"}, --] --chardet = [ -- {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, -- {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, --] --docker = [ -- {file = "docker-4.3.1-py2.py3-none-any.whl", hash = "sha256:13966471e8bc23b36bfb3a6fb4ab75043a5ef1dac86516274777576bed3b9828"}, -- {file = "docker-4.3.1.tar.gz", hash = "sha256:bad94b8dd001a8a4af19ce4becc17f41b09f228173ffe6a4e0355389eef142f2"}, --] --idna = [ -- {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, -- {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, --] --pywin32 = [ -- {file = "pywin32-227-cp27-cp27m-win32.whl", hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"}, -- {file = "pywin32-227-cp27-cp27m-win_amd64.whl", hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"}, -- {file = "pywin32-227-cp35-cp35m-win32.whl", hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"}, -- {file = "pywin32-227-cp35-cp35m-win_amd64.whl", hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"}, -- {file = "pywin32-227-cp36-cp36m-win32.whl", hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"}, -- {file = "pywin32-227-cp36-cp36m-win_amd64.whl", hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"}, -- {file = "pywin32-227-cp37-cp37m-win32.whl", hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"}, -- {file = "pywin32-227-cp37-cp37m-win_amd64.whl", hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"}, -- {file = "pywin32-227-cp38-cp38-win32.whl", hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"}, -- {file = "pywin32-227-cp38-cp38-win_amd64.whl", hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"}, -- {file = "pywin32-227-cp39-cp39-win32.whl", hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"}, -- {file = "pywin32-227-cp39-cp39-win_amd64.whl", hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"}, --] --requests = [ -- {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"}, -- {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"}, --] --six = [ -- {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, -- {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, --] --urllib3 = [ -- {file = "urllib3-1.25.10-py2.py3-none-any.whl", hash = "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461"}, -- {file = "urllib3-1.25.10.tar.gz", hash = "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a"}, --] --websocket-client = [ -- {file = "websocket_client-0.57.0-py2.py3-none-any.whl", hash = "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549"}, -- {file = "websocket_client-0.57.0.tar.gz", hash = "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010"}, -+sampleproject = [ -+ {file = "sampleproject-1.3.1-py2.py3-none-any.whl", hash = "sha256:26c9172e08244873b0e09c574a229bf2c251c67723a05e08fd3ec0c5ee423796"}, -+ {file = "sampleproject-1.3.1-py3-none-any.whl", hash = "sha256:75bb5bb4e74a1b77dc0cff25ebbacb54fe1318aaf99a86a036cefc86ed885ced"}, -+ {file = "sampleproject-1.3.1.tar.gz", hash = "sha256:3593ca2f1e057279d70d6144b14472fb28035b1da213dde60906b703d6f82c55"}, - ] -diff --git a/tests/fixtures/old_lock/pyproject.toml b/tests/fixtures/old_lock/pyproject.toml -index 56ea6350..377aa676 100644 ---- a/tests/fixtures/old_lock/pyproject.toml -+++ b/tests/fixtures/old_lock/pyproject.toml -@@ -6,7 +6,7 @@ authors = ["Poetry Developer <develo...@python-poetry.org>"] - - [tool.poetry.dependencies] - python = "^3.8" --docker = "^4.3.1" -+sampleproject = ">=1.3.1" - - [tool.poetry.dev-dependencies] - -diff --git a/tests/installation/test_chef.py b/tests/installation/test_chef.py -index 9fcbbea1..4e59b608 100644 ---- a/tests/installation/test_chef.py -+++ b/tests/installation/test_chef.py -@@ -60,7 +60,7 @@ def test_get_cached_archives_for_link(config, mocker): - } - - --def test_get_cache_directory_for_link(config): -+def test_get_cache_directory_for_link(config, config_cache_dir): - chef = Chef( - config, - MockEnv( -@@ -71,8 +71,11 @@ def test_get_cache_directory_for_link(config): - directory = chef.get_cache_directory_for_link( - Link("https://files.python-poetry.org/poetry-1.1.0.tar.gz") - ) -+ - expected = Path( -- "/foo/artifacts/ba/63/13/283a3b3b7f95f05e9e6f84182d276f7bb0951d5b0cc24422b33f7a4648" -+ "{}/artifacts/ba/63/13/283a3b3b7f95f05e9e6f84182d276f7bb0951d5b0cc24422b33f7a4648".format( -+ config_cache_dir.as_posix() -+ ) - ) - - assert expected == directory -diff --git a/tests/installation/test_executor.py b/tests/installation/test_executor.py -index bb659321..3dfd818b 100644 ---- a/tests/installation/test_executor.py -+++ b/tests/installation/test_executor.py -@@ -126,9 +126,11 @@ Package operations: 4 installs, 1 update, 1 removal - assert 5 == len(env.executed) - - --def test_execute_shows_skipped_operations_if_verbose(config, pool, io): -+def test_execute_shows_skipped_operations_if_verbose( -+ config, pool, io, config_cache_dir -+): - config = Config() -- config.merge({"cache-dir": "/foo"}) -+ config.merge({"cache-dir": config_cache_dir.as_posix()}) - - env = MockEnv() - executor = Executor(env, pool, config, io) -diff --git a/tests/masonry/builders/test_editable_builder.py b/tests/masonry/builders/test_editable_builder.py -index daeff0e7..3bf1e59c 100644 ---- a/tests/masonry/builders/test_editable_builder.py -+++ b/tests/masonry/builders/test_editable_builder.py -@@ -176,9 +176,9 @@ if __name__ == '__main__': - - - def test_builder_falls_back_on_setup_and_pip_for_packages_with_build_scripts( -- extended_poetry, -+ extended_poetry, tmp_dir - ): -- env = MockEnv(path=Path("/foo")) -+ env = MockEnv(path=Path(tmp_dir) / "foo") - builder = EditableBuilder(extended_poetry, env, NullIO()) - - builder.build() -@@ -219,8 +219,8 @@ def test_builder_installs_proper_files_when_packages_configured( - assert len(paths) == len(expected) - - --def test_builder_should_execute_build_scripts(extended_without_setup_poetry): -- env = MockEnv(path=Path("/foo")) -+def test_builder_should_execute_build_scripts(extended_without_setup_poetry, tmp_dir): -+ env = MockEnv(path=Path(tmp_dir) / "foo") - builder = EditableBuilder(extended_without_setup_poetry, env, NullIO()) - - builder.build() -diff --git a/tests/utils/test_env.py b/tests/utils/test_env.py -index cd5e1b9f..ad1e17f2 100644 ---- a/tests/utils/test_env.py -+++ b/tests/utils/test_env.py -@@ -634,7 +634,7 @@ def test_run_with_input_non_zero_return(tmp_dir, tmp_venv): - - - def test_create_venv_tries_to_find_a_compatible_python_executable_using_generic_ones_first( -- manager, poetry, config, mocker -+ manager, poetry, config, mocker, config_virtualenvs_path - ): - if "VIRTUAL_ENV" in os.environ: - del os.environ["VIRTUAL_ENV"] -@@ -654,12 +654,12 @@ def test_create_venv_tries_to_find_a_compatible_python_executable_using_generic_ - manager.create_venv(NullIO()) - - m.assert_called_with( -- Path("/foo/virtualenvs/{}-py3.7".format(venv_name)), executable="python3" -+ config_virtualenvs_path / "{}-py3.7".format(venv_name), executable="python3" - ) - - - def test_create_venv_tries_to_find_a_compatible_python_executable_using_specific_ones( -- manager, poetry, config, mocker -+ manager, poetry, config, mocker, config_virtualenvs_path - ): - if "VIRTUAL_ENV" in os.environ: - del os.environ["VIRTUAL_ENV"] -@@ -678,7 +678,7 @@ def test_create_venv_tries_to_find_a_compatible_python_executable_using_specific - manager.create_venv(NullIO()) - - m.assert_called_with( -- Path("/foo/virtualenvs/{}-py3.9".format(venv_name)), executable="python3.9" -+ config_virtualenvs_path / "{}-py3.9".format(venv_name), executable="python3.9" - ) - - -@@ -737,7 +737,7 @@ def test_create_venv_does_not_try_to_find_compatible_versions_with_executable( - - - def test_create_venv_uses_patch_version_to_detect_compatibility( -- manager, poetry, config, mocker -+ manager, poetry, config, mocker, config_virtualenvs_path - ): - if "VIRTUAL_ENV" in os.environ: - del os.environ["VIRTUAL_ENV"] -@@ -761,17 +761,14 @@ def test_create_venv_uses_patch_version_to_detect_compatibility( - - assert not check_output.called - m.assert_called_with( -- Path( -- "/foo/virtualenvs/{}-py{}.{}".format( -- venv_name, version.major, version.minor -- ) -- ), -+ config_virtualenvs_path -+ / "{}-py{}.{}".format(venv_name, version.major, version.minor), - executable=None, - ) - - - def test_create_venv_uses_patch_version_to_detect_compatibility_with_executable( -- manager, poetry, config, mocker -+ manager, poetry, config, mocker, config_virtualenvs_path - ): - if "VIRTUAL_ENV" in os.environ: - del os.environ["VIRTUAL_ENV"] -@@ -798,11 +795,8 @@ def test_create_venv_uses_patch_version_to_detect_compatibility_with_executable( - - assert check_output.called - m.assert_called_with( -- Path( -- "/foo/virtualenvs/{}-py{}.{}".format( -- venv_name, version.major, version.minor - 1 -- ) -- ), -+ config_virtualenvs_path -+ / "{}-py{}.{}".format(venv_name, version.major, version.minor - 1), - executable="python{}.{}".format(version.major, version.minor - 1), - ) - --- -2.30.0 - Copied: python-poetry/repos/community-any/0001-tests-cleanup-cache-and-http-usage.patch (from rev 1027810, python-poetry/trunk/0001-tests-cleanup-cache-and-http-usage.patch) =================================================================== --- 0001-tests-cleanup-cache-and-http-usage.patch (rev 0) +++ 0001-tests-cleanup-cache-and-http-usage.patch 2021-10-05 21:24:11 UTC (rev 1027811) @@ -0,0 +1,558 @@ +From c966775dd5cce42353a32b4df67a03699aa8d445 Mon Sep 17 00:00:00 2001 +From: Arun Babu Neelicattu <arun.neelica...@gmail.com> +Date: Tue, 20 Oct 2020 18:32:36 +0200 +Subject: [PATCH] tests: cleanup cache and http usage + +- ensure tests rely on temporary cache directory +- remove external http call requirement for lock --no-update + +Relates-to: #1645 +(cherry picked from commit bf61dd56399b5d0cfadf66fed72b4d63062a827f) + +# Conflicts: +# tests/console/commands/test_config.py +# tests/console/commands/test_lock.py +# tests/utils/test_env.py +--- + tests/config/test_config.py | 4 +- + tests/conftest.py | 21 ++- + tests/console/commands/test_config.py | 30 ++-- + tests/console/commands/test_lock.py | 37 +++-- + tests/fixtures/old_lock/poetry.lock | 150 +----------------- + tests/fixtures/old_lock/pyproject.toml | 2 +- + tests/installation/test_chef.py | 7 +- + tests/installation/test_executor.py | 6 +- + .../masonry/builders/test_editable_builder.py | 8 +- + tests/utils/test_env.py | 26 ++- + 10 files changed, 92 insertions(+), 199 deletions(-) + +diff --git a/tests/config/test_config.py b/tests/config/test_config.py +index 4bd0cd04..f3b13f23 100644 +--- a/tests/config/test_config.py ++++ b/tests/config/test_config.py +@@ -10,8 +10,8 @@ def test_config_get_default_value(config, name, value): + assert config.get(name) is value + + +-def test_config_get_processes_depended_on_values(config): +- assert os.path.join("/foo", "virtualenvs") == config.get("virtualenvs.path") ++def test_config_get_processes_depended_on_values(config, config_cache_dir): ++ assert str(config_cache_dir / "virtualenvs") == config.get("virtualenvs.path") + + + @pytest.mark.parametrize( +diff --git a/tests/conftest.py b/tests/conftest.py +index e2b73936..51128f76 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -54,9 +54,21 @@ class Config(BaseConfig): + + + @pytest.fixture +-def config_source(): ++def config_cache_dir(tmp_dir): ++ path = Path(tmp_dir) / ".cache" / "pypoetry" ++ path.mkdir(parents=True) ++ return path ++ ++ ++@pytest.fixture ++def config_virtualenvs_path(config_cache_dir): ++ return config_cache_dir / "virtualenvs" ++ ++ ++@pytest.fixture ++def config_source(config_cache_dir): + source = DictConfigSource() +- source.add_property("cache-dir", "/foo") ++ source.add_property("cache-dir", str(config_cache_dir)) + + return source + +@@ -226,6 +238,7 @@ def project_factory(tmp_dir, config, repo, installed, default_python): + dependencies=None, + dev_dependencies=None, + pyproject_content=None, ++ poetry_lock_content=None, + install_deps=True, + ): + project_dir = workspace / "poetry-fixture-{}".format(name) +@@ -249,6 +262,10 @@ def project_factory(tmp_dir, config, repo, installed, default_python): + dev_dependencies=dev_dependencies, + ).create(project_dir, with_tests=False) + ++ if poetry_lock_content: ++ lock_file = project_dir / "poetry.lock" ++ lock_file.write_text(data=poetry_lock_content, encoding="utf-8") ++ + poetry = Factory().create_poetry(project_dir) + + locker = TestLocker( +diff --git a/tests/console/commands/test_config.py b/tests/console/commands/test_config.py +index fa0bea4a..e85fb697 100644 +--- a/tests/console/commands/test_config.py ++++ b/tests/console/commands/test_config.py +@@ -25,35 +25,39 @@ def test_show_config_with_local_config_file_empty(tester, mocker): + assert "" == tester.io.fetch_output() + + +-def test_list_displays_default_value_if_not_set(tester, config): ++def test_list_displays_default_value_if_not_set(tester, config, config_cache_dir): + tester.execute("--list") + +- expected = """cache-dir = "/foo" ++ expected = """cache-dir = {cache} + experimental.new-installer = true + installer.parallel = true + virtualenvs.create = true + virtualenvs.in-project = null +-virtualenvs.path = {path} # /foo{sep}virtualenvs ++virtualenvs.path = {path} # {virtualenvs} + """.format( +- path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), sep=os.path.sep ++ cache=json.dumps(str(config_cache_dir)), ++ path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), ++ virtualenvs=str(config_cache_dir / "virtualenvs"), + ) + + assert expected == tester.io.fetch_output() + + +-def test_list_displays_set_get_setting(tester, config): ++def test_list_displays_set_get_setting(tester, config, config_cache_dir): + tester.execute("virtualenvs.create false") + + tester.execute("--list") + +- expected = """cache-dir = "/foo" ++ expected = """cache-dir = {cache} + experimental.new-installer = true + installer.parallel = true + virtualenvs.create = false + virtualenvs.in-project = null +-virtualenvs.path = {path} # /foo{sep}virtualenvs ++virtualenvs.path = {path} # {virtualenvs} + """.format( +- path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), sep=os.path.sep ++ cache=json.dumps(str(config_cache_dir)), ++ path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), ++ virtualenvs=str(config_cache_dir / "virtualenvs"), + ) + + assert 0 == config.set_config_source.call_count +@@ -81,19 +85,21 @@ def test_display_single_local_setting(command_tester_factory, fixture_dir): + assert expected == tester.io.fetch_output() + + +-def test_list_displays_set_get_local_setting(tester, config): ++def test_list_displays_set_get_local_setting(tester, config, config_cache_dir): + tester.execute("virtualenvs.create false --local") + + tester.execute("--list") + +- expected = """cache-dir = "/foo" ++ expected = """cache-dir = {cache} + experimental.new-installer = true + installer.parallel = true + virtualenvs.create = false + virtualenvs.in-project = null +-virtualenvs.path = {path} # /foo{sep}virtualenvs ++virtualenvs.path = {path} # {virtualenvs} + """.format( +- path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), sep=os.path.sep ++ cache=json.dumps(str(config_cache_dir)), ++ path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), ++ virtualenvs=str(config_cache_dir / "virtualenvs"), + ) + + assert 1 == config.set_config_source.call_count +diff --git a/tests/console/commands/test_lock.py b/tests/console/commands/test_lock.py +index 823a8ba4..c05ba257 100644 +--- a/tests/console/commands/test_lock.py ++++ b/tests/console/commands/test_lock.py +@@ -1,11 +1,8 @@ +-import shutil +-import sys +- + import pytest + +-from poetry.factory import Factory + from poetry.packages import Locker + from poetry.utils._compat import Path ++from tests.helpers import get_package + + + @pytest.fixture +@@ -19,18 +16,26 @@ def tester(command_tester_factory): + + + @pytest.fixture +-def poetry_with_old_lockfile(fixture_dir, source_dir): +- project_dir = source_dir / "project" +- shutil.copytree(str(fixture_dir("old_lock")), str(project_dir)) +- poetry = Factory().create_poetry(cwd=project_dir) +- return poetry +- +- +-@pytest.mark.skipif( +- sys.platform == "win32", reason="does not work on windows under ci environments" +-) +-def test_lock_no_update(command_tester_factory, poetry_with_old_lockfile, http): +- http.disable() ++def poetry_with_old_lockfile(project_factory, fixture_dir, source_dir): ++ source = fixture_dir("old_lock") ++ pyproject_content = (source / "pyproject.toml").read_text(encoding="utf-8") ++ poetry_lock_content = (source / "poetry.lock").read_text(encoding="utf-8") ++ return project_factory( ++ name="foobar", ++ pyproject_content=pyproject_content, ++ poetry_lock_content=poetry_lock_content, ++ ) ++ ++ ++def test_lock_no_update(command_tester_factory, poetry_with_old_lockfile, repo): ++ repo.add_package(get_package("sampleproject", "1.3.1")) ++ repo.add_package(get_package("sampleproject", "2.0.0")) ++ ++ locker = Locker( ++ lock=poetry_with_old_lockfile.pyproject.file.path.parent / "poetry.lock", ++ local_config=poetry_with_old_lockfile.locker._local_config, ++ ) ++ poetry_with_old_lockfile.set_locker(locker) + + locked_repository = poetry_with_old_lockfile.locker.locked_repository( + with_dev_reqs=True +diff --git a/tests/fixtures/old_lock/poetry.lock b/tests/fixtures/old_lock/poetry.lock +index 57d58570..498df2ed 100644 +--- a/tests/fixtures/old_lock/poetry.lock ++++ b/tests/fixtures/old_lock/poetry.lock +@@ -1,153 +1,19 @@ + [[package]] + category = "main" +-description = "Python package for providing Mozilla's CA Bundle." +-name = "certifi" +-optional = false +-python-versions = "*" +-version = "2020.6.20" +- +-[[package]] +-category = "main" +-description = "Universal encoding detector for Python 2 and 3" +-name = "chardet" +-optional = false +-python-versions = "*" +-version = "3.0.4" +- +-[[package]] +-category = "main" +-description = "A Python library for the Docker Engine API." +-name = "docker" +-optional = false +-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +-version = "4.3.1" +- +-[package.dependencies] +-pywin32 = "227" +-requests = ">=2.14.2,<2.18.0 || >2.18.0" +-six = ">=1.4.0" +-websocket-client = ">=0.32.0" +- +-[package.extras] +-ssh = ["paramiko (>=2.4.2)"] +-tls = ["pyOpenSSL (>=17.5.0)", "cryptography (>=1.3.4)", "idna (>=2.0.0)"] +- +-[[package]] +-category = "main" +-description = "Internationalized Domain Names in Applications (IDNA)" +-name = "idna" +-optional = false +-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +-version = "2.10" +- +-[[package]] +-category = "main" +-description = "Python for Window Extensions" +-marker = "sys_platform == \"win32\"" +-name = "pywin32" +-optional = false +-python-versions = "*" +-version = "227" +- +-[[package]] +-category = "main" +-description = "Python HTTP for Humans." +-name = "requests" +-optional = false +-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +-version = "2.24.0" +- +-[package.dependencies] +-certifi = ">=2017.4.17" +-chardet = ">=3.0.2,<4" +-idna = ">=2.5,<3" +-urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26" +- +-[package.extras] +-security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] +-socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"] +- +-[[package]] +-category = "main" +-description = "Python 2 and 3 compatibility utilities" +-name = "six" +-optional = false +-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +-version = "1.15.0" +- +-[[package]] +-category = "main" +-description = "HTTP library with thread-safe connection pooling, file post, and more." +-name = "urllib3" ++description = "A sample Python project" ++name = "sampleproject" + optional = false + python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" +-version = "1.25.10" +- +-[package.extras] +-brotli = ["brotlipy (>=0.6.0)"] +-secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"] +-socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"] +- +-[[package]] +-category = "main" +-description = "WebSocket client for Python. hybi13 is supported." +-name = "websocket-client" +-optional = false +-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +-version = "0.57.0" +- +-[package.dependencies] +-six = "*" ++version = "1.3.1" + + [metadata] +-content-hash = "bb4c2f3c089b802c1930b6acbeed04711d93e9cdfd9a003eb17518a6d9f350c6" ++content-hash = "c8c2c9d899e47bac3972e029ef0e71b75d5df98a28eebef25a75640a19aac177" + lock-version = "1.0" + python-versions = "^3.8" + + [metadata.files] +-certifi = [ +- {file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"}, +- {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"}, +-] +-chardet = [ +- {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, +- {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, +-] +-docker = [ +- {file = "docker-4.3.1-py2.py3-none-any.whl", hash = "sha256:13966471e8bc23b36bfb3a6fb4ab75043a5ef1dac86516274777576bed3b9828"}, +- {file = "docker-4.3.1.tar.gz", hash = "sha256:bad94b8dd001a8a4af19ce4becc17f41b09f228173ffe6a4e0355389eef142f2"}, +-] +-idna = [ +- {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, +- {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, +-] +-pywin32 = [ +- {file = "pywin32-227-cp27-cp27m-win32.whl", hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"}, +- {file = "pywin32-227-cp27-cp27m-win_amd64.whl", hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"}, +- {file = "pywin32-227-cp35-cp35m-win32.whl", hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"}, +- {file = "pywin32-227-cp35-cp35m-win_amd64.whl", hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"}, +- {file = "pywin32-227-cp36-cp36m-win32.whl", hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"}, +- {file = "pywin32-227-cp36-cp36m-win_amd64.whl", hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"}, +- {file = "pywin32-227-cp37-cp37m-win32.whl", hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"}, +- {file = "pywin32-227-cp37-cp37m-win_amd64.whl", hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"}, +- {file = "pywin32-227-cp38-cp38-win32.whl", hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"}, +- {file = "pywin32-227-cp38-cp38-win_amd64.whl", hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"}, +- {file = "pywin32-227-cp39-cp39-win32.whl", hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"}, +- {file = "pywin32-227-cp39-cp39-win_amd64.whl", hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"}, +-] +-requests = [ +- {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"}, +- {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"}, +-] +-six = [ +- {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, +- {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, +-] +-urllib3 = [ +- {file = "urllib3-1.25.10-py2.py3-none-any.whl", hash = "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461"}, +- {file = "urllib3-1.25.10.tar.gz", hash = "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a"}, +-] +-websocket-client = [ +- {file = "websocket_client-0.57.0-py2.py3-none-any.whl", hash = "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549"}, +- {file = "websocket_client-0.57.0.tar.gz", hash = "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010"}, ++sampleproject = [ ++ {file = "sampleproject-1.3.1-py2.py3-none-any.whl", hash = "sha256:26c9172e08244873b0e09c574a229bf2c251c67723a05e08fd3ec0c5ee423796"}, ++ {file = "sampleproject-1.3.1-py3-none-any.whl", hash = "sha256:75bb5bb4e74a1b77dc0cff25ebbacb54fe1318aaf99a86a036cefc86ed885ced"}, ++ {file = "sampleproject-1.3.1.tar.gz", hash = "sha256:3593ca2f1e057279d70d6144b14472fb28035b1da213dde60906b703d6f82c55"}, + ] +diff --git a/tests/fixtures/old_lock/pyproject.toml b/tests/fixtures/old_lock/pyproject.toml +index 56ea6350..377aa676 100644 +--- a/tests/fixtures/old_lock/pyproject.toml ++++ b/tests/fixtures/old_lock/pyproject.toml +@@ -6,7 +6,7 @@ authors = ["Poetry Developer <develo...@python-poetry.org>"] + + [tool.poetry.dependencies] + python = "^3.8" +-docker = "^4.3.1" ++sampleproject = ">=1.3.1" + + [tool.poetry.dev-dependencies] + +diff --git a/tests/installation/test_chef.py b/tests/installation/test_chef.py +index 9fcbbea1..4e59b608 100644 +--- a/tests/installation/test_chef.py ++++ b/tests/installation/test_chef.py +@@ -60,7 +60,7 @@ def test_get_cached_archives_for_link(config, mocker): + } + + +-def test_get_cache_directory_for_link(config): ++def test_get_cache_directory_for_link(config, config_cache_dir): + chef = Chef( + config, + MockEnv( +@@ -71,8 +71,11 @@ def test_get_cache_directory_for_link(config): + directory = chef.get_cache_directory_for_link( + Link("https://files.python-poetry.org/poetry-1.1.0.tar.gz") + ) ++ + expected = Path( +- "/foo/artifacts/ba/63/13/283a3b3b7f95f05e9e6f84182d276f7bb0951d5b0cc24422b33f7a4648" ++ "{}/artifacts/ba/63/13/283a3b3b7f95f05e9e6f84182d276f7bb0951d5b0cc24422b33f7a4648".format( ++ config_cache_dir.as_posix() ++ ) + ) + + assert expected == directory +diff --git a/tests/installation/test_executor.py b/tests/installation/test_executor.py +index bb659321..3dfd818b 100644 +--- a/tests/installation/test_executor.py ++++ b/tests/installation/test_executor.py +@@ -126,9 +126,11 @@ Package operations: 4 installs, 1 update, 1 removal + assert 5 == len(env.executed) + + +-def test_execute_shows_skipped_operations_if_verbose(config, pool, io): ++def test_execute_shows_skipped_operations_if_verbose( ++ config, pool, io, config_cache_dir ++): + config = Config() +- config.merge({"cache-dir": "/foo"}) ++ config.merge({"cache-dir": config_cache_dir.as_posix()}) + + env = MockEnv() + executor = Executor(env, pool, config, io) +diff --git a/tests/masonry/builders/test_editable_builder.py b/tests/masonry/builders/test_editable_builder.py +index daeff0e7..3bf1e59c 100644 +--- a/tests/masonry/builders/test_editable_builder.py ++++ b/tests/masonry/builders/test_editable_builder.py +@@ -176,9 +176,9 @@ if __name__ == '__main__': + + + def test_builder_falls_back_on_setup_and_pip_for_packages_with_build_scripts( +- extended_poetry, ++ extended_poetry, tmp_dir + ): +- env = MockEnv(path=Path("/foo")) ++ env = MockEnv(path=Path(tmp_dir) / "foo") + builder = EditableBuilder(extended_poetry, env, NullIO()) + + builder.build() +@@ -219,8 +219,8 @@ def test_builder_installs_proper_files_when_packages_configured( + assert len(paths) == len(expected) + + +-def test_builder_should_execute_build_scripts(extended_without_setup_poetry): +- env = MockEnv(path=Path("/foo")) ++def test_builder_should_execute_build_scripts(extended_without_setup_poetry, tmp_dir): ++ env = MockEnv(path=Path(tmp_dir) / "foo") + builder = EditableBuilder(extended_without_setup_poetry, env, NullIO()) + + builder.build() +diff --git a/tests/utils/test_env.py b/tests/utils/test_env.py +index cd5e1b9f..ad1e17f2 100644 +--- a/tests/utils/test_env.py ++++ b/tests/utils/test_env.py +@@ -634,7 +634,7 @@ def test_run_with_input_non_zero_return(tmp_dir, tmp_venv): + + + def test_create_venv_tries_to_find_a_compatible_python_executable_using_generic_ones_first( +- manager, poetry, config, mocker ++ manager, poetry, config, mocker, config_virtualenvs_path + ): + if "VIRTUAL_ENV" in os.environ: + del os.environ["VIRTUAL_ENV"] +@@ -654,12 +654,12 @@ def test_create_venv_tries_to_find_a_compatible_python_executable_using_generic_ + manager.create_venv(NullIO()) + + m.assert_called_with( +- Path("/foo/virtualenvs/{}-py3.7".format(venv_name)), executable="python3" ++ config_virtualenvs_path / "{}-py3.7".format(venv_name), executable="python3" + ) + + + def test_create_venv_tries_to_find_a_compatible_python_executable_using_specific_ones( +- manager, poetry, config, mocker ++ manager, poetry, config, mocker, config_virtualenvs_path + ): + if "VIRTUAL_ENV" in os.environ: + del os.environ["VIRTUAL_ENV"] +@@ -678,7 +678,7 @@ def test_create_venv_tries_to_find_a_compatible_python_executable_using_specific + manager.create_venv(NullIO()) + + m.assert_called_with( +- Path("/foo/virtualenvs/{}-py3.9".format(venv_name)), executable="python3.9" ++ config_virtualenvs_path / "{}-py3.9".format(venv_name), executable="python3.9" + ) + + +@@ -737,7 +737,7 @@ def test_create_venv_does_not_try_to_find_compatible_versions_with_executable( + + + def test_create_venv_uses_patch_version_to_detect_compatibility( +- manager, poetry, config, mocker ++ manager, poetry, config, mocker, config_virtualenvs_path + ): + if "VIRTUAL_ENV" in os.environ: + del os.environ["VIRTUAL_ENV"] +@@ -761,17 +761,14 @@ def test_create_venv_uses_patch_version_to_detect_compatibility( + + assert not check_output.called + m.assert_called_with( +- Path( +- "/foo/virtualenvs/{}-py{}.{}".format( +- venv_name, version.major, version.minor +- ) +- ), ++ config_virtualenvs_path ++ / "{}-py{}.{}".format(venv_name, version.major, version.minor), + executable=None, + ) + + + def test_create_venv_uses_patch_version_to_detect_compatibility_with_executable( +- manager, poetry, config, mocker ++ manager, poetry, config, mocker, config_virtualenvs_path + ): + if "VIRTUAL_ENV" in os.environ: + del os.environ["VIRTUAL_ENV"] +@@ -798,11 +795,8 @@ def test_create_venv_uses_patch_version_to_detect_compatibility_with_executable( + + assert check_output.called + m.assert_called_with( +- Path( +- "/foo/virtualenvs/{}-py{}.{}".format( +- venv_name, version.major, version.minor - 1 +- ) +- ), ++ config_virtualenvs_path ++ / "{}-py{}.{}".format(venv_name, version.major, version.minor - 1), + executable="python{}.{}".format(version.major, version.minor - 1), + ) + +-- +2.30.0 + Deleted: PKGBUILD =================================================================== --- PKGBUILD 2021-10-05 21:24:00 UTC (rev 1027810) +++ PKGBUILD 2021-10-05 21:24:11 UTC (rev 1027811) @@ -1,79 +0,0 @@ -# Maintainer: Eli Schwartz <eschwa...@archlinux.org> -# Maintainer: Sven-Hendrik Haase <svenst...@gmail.com> - -_pkgname=poetry -pkgname=python-poetry -pkgver=1.1.10 -pkgrel=1 -pkgdesc="Python dependency management and packaging made easy" -arch=('any') -url="https://poetry.eustace.io/" -license=('MIT') -_deps=('cachecontrol' 'cachy' 'cleo' 'html5lib' 'lockfile' - 'packaging' 'pkginfo' 'poetry-core' 'requests' 'requests-toolbelt' - 'shellingham' 'tomlkit' 'keyring' 'pexpect' 'virtualenv') -depends=("${_deps[@]/#/python-}") -makedepends=('python-dephell') -checkdepends=('git' 'python-pytest' 'python-pytest-mock' 'python-httpretty') -provides=('poetry') -conflicts=('poetry') -replaces=('poetry') -source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/sdispater/${_pkgname}/archive/${pkgver}.tar.gz" - "0001-Suppress-dependency-versions-which-are-known-to-be-t.patch" - "0001-tests-cleanup-cache-and-http-usage.patch" - "poetry-completions-generator") -sha256sums=('fbe606581dcf2200d63d15c3fc8d2b24895f459d805c9c8b62e8061b9409f31b' - '8bb321ae9ad06d4829c71727af7979bc68d7f325ccdaec919dda4fe8ac92f1a7' - '4658321c04f36fb3aced9acc44b61f2cf22c5f9d8b8c715111881b24c3e0c99b' - '970225289188ea8dc49fbec8a2bfe0c891aee80ff56ba6e69bdd8afef8bccab6') -b2sums=('b65dd506eaefea49db20aafd21fcf7a48178625686f6f412cb97e76e8e8366a79843a2ee13550e4822828694c2bf8f17b7fb31be94a2e1197344b2d363cfef7a' - 'c1c65fdfa1153d3e4c872adc00f02aea055268d28cd385918a5a3d60fb355c39b15eab895cf4aebd1b74f126cc225f870d60aa971a6593855ce094b448786a02' - '8750de6ee2748a7dac079af1ff35b43dbce3f2c48249322f3322290d03f46ea95513dfd223adc232f7f73cf0ac19554de96a3b8793a0dc13b38041e87569ca19' - '3fd62e7936d7547dcd06a1a7519f176a1597553ecc959144a4be799bb7e2d688e187f14604d3e359ed10c128c722ebd588c07ca318e0be0a31d276dcb388e2e1') - -prepare() { - cd "${srcdir}"/${_pkgname}-${pkgver} - - # fix various overly restrictive version pinning - patch -p1 -i ../0001-Suppress-dependency-versions-which-are-known-to-be-t.patch - - # fix tests trying to write to the root directory - # See: https://github.com/python-poetry/poetry/issues/1645 - patch -p1 -i ../0001-tests-cleanup-cache-and-http-usage.patch - - dephell deps convert --from pyproject.toml --to setup.py -} - -build() { - cd "${srcdir}"/${_pkgname}-${pkgver} - - python setup.py build -} - -check() { - cd "${srcdir}"/${_pkgname}-${pkgver} - - # tries to write all over sys.executable's containing directory, and fails - # use venv instead - # See (again): https://github.com/python-poetry/poetry/issues/1645 - # python -m venv --system-site-packages --without-pip poetrytests - # ./poetrytests/bin/python -m pytest -} - -package() { - cd "${srcdir}"/${_pkgname}-${pkgver} - - python setup.py install --root="${pkgdir}" --optimize=1 --skip-build - install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE - - # install completions, which for some crazy reason hardcode the filename - # used to invoke which is __main__.py if we use python -m poetry, and also - # adds the full directory path??? - install -m755 "${srcdir}"/poetry-completions-generator ./poetry-completions-generator - ./poetry-completions-generator completions bash | sed "\|${srcdir}|d" | \ - install -Dm644 /dev/stdin "${pkgdir}"/usr/share/bash-completion/completions/poetry - ./poetry-completions-generator completions zsh | sed "\|${srcdir}|d" | \ - install -Dm644 /dev/stdin "${pkgdir}"/usr/share/zsh/site-functions/_poetry - ./poetry-completions-generator completions fish | \ - install -Dm644 /dev/stdin "${pkgdir}"/usr/share/fish/vendor_completions.d/poetry.fish -} Copied: python-poetry/repos/community-any/PKGBUILD (from rev 1027810, python-poetry/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2021-10-05 21:24:11 UTC (rev 1027811) @@ -0,0 +1,79 @@ +# Maintainer: Eli Schwartz <eschwa...@archlinux.org> +# Maintainer: Sven-Hendrik Haase <svenst...@gmail.com> + +_pkgname=poetry +pkgname=python-poetry +pkgver=1.1.11 +pkgrel=1 +pkgdesc="Python dependency management and packaging made easy" +arch=('any') +url="https://poetry.eustace.io/" +license=('MIT') +_deps=('cachecontrol' 'cachy' 'cleo' 'html5lib' 'lockfile' + 'packaging' 'pkginfo' 'poetry-core' 'requests' 'requests-toolbelt' + 'shellingham' 'tomlkit' 'keyring' 'pexpect' 'virtualenv') +depends=("${_deps[@]/#/python-}") +makedepends=('python-dephell') +checkdepends=('git' 'python-pytest' 'python-pytest-mock' 'python-httpretty') +provides=('poetry') +conflicts=('poetry') +replaces=('poetry') +source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/sdispater/${_pkgname}/archive/${pkgver}.tar.gz" + "0001-Suppress-dependency-versions-which-are-known-to-be-t.patch" + "0001-tests-cleanup-cache-and-http-usage.patch" + "poetry-completions-generator") +sha256sums=('abe56468c0ac989c9c6c4e02265806b8fb40decbf6635f1ab2515b354114705c' + '8bb321ae9ad06d4829c71727af7979bc68d7f325ccdaec919dda4fe8ac92f1a7' + '4658321c04f36fb3aced9acc44b61f2cf22c5f9d8b8c715111881b24c3e0c99b' + '970225289188ea8dc49fbec8a2bfe0c891aee80ff56ba6e69bdd8afef8bccab6') +b2sums=('852a9fa3a4308515121fa77a7fc58d76f7786a5b3b0493c30bc4a72e5353bb252f7d506f3dd6fd344e93722552bea3c71bff647b7e5f4b41977b97b5ffe52298' + 'c1c65fdfa1153d3e4c872adc00f02aea055268d28cd385918a5a3d60fb355c39b15eab895cf4aebd1b74f126cc225f870d60aa971a6593855ce094b448786a02' + '8750de6ee2748a7dac079af1ff35b43dbce3f2c48249322f3322290d03f46ea95513dfd223adc232f7f73cf0ac19554de96a3b8793a0dc13b38041e87569ca19' + '3fd62e7936d7547dcd06a1a7519f176a1597553ecc959144a4be799bb7e2d688e187f14604d3e359ed10c128c722ebd588c07ca318e0be0a31d276dcb388e2e1') + +prepare() { + cd "${srcdir}"/${_pkgname}-${pkgver} + + # fix various overly restrictive version pinning + patch -p1 -i ../0001-Suppress-dependency-versions-which-are-known-to-be-t.patch + + # fix tests trying to write to the root directory + # See: https://github.com/python-poetry/poetry/issues/1645 + patch -p1 -i ../0001-tests-cleanup-cache-and-http-usage.patch + + dephell deps convert --from pyproject.toml --to setup.py +} + +build() { + cd "${srcdir}"/${_pkgname}-${pkgver} + + python setup.py build +} + +check() { + cd "${srcdir}"/${_pkgname}-${pkgver} + + # tries to write all over sys.executable's containing directory, and fails + # use venv instead + # See (again): https://github.com/python-poetry/poetry/issues/1645 + # python -m venv --system-site-packages --without-pip poetrytests + # ./poetrytests/bin/python -m pytest +} + +package() { + cd "${srcdir}"/${_pkgname}-${pkgver} + + python setup.py install --root="${pkgdir}" --optimize=1 --skip-build + install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE + + # install completions, which for some crazy reason hardcode the filename + # used to invoke which is __main__.py if we use python -m poetry, and also + # adds the full directory path??? + install -m755 "${srcdir}"/poetry-completions-generator ./poetry-completions-generator + ./poetry-completions-generator completions bash | sed "\|${srcdir}|d" | \ + install -Dm644 /dev/stdin "${pkgdir}"/usr/share/bash-completion/completions/poetry + ./poetry-completions-generator completions zsh | sed "\|${srcdir}|d" | \ + install -Dm644 /dev/stdin "${pkgdir}"/usr/share/zsh/site-functions/_poetry + ./poetry-completions-generator completions fish | \ + install -Dm644 /dev/stdin "${pkgdir}"/usr/share/fish/vendor_completions.d/poetry.fish +} Deleted: poetry-completions-generator =================================================================== --- poetry-completions-generator 2021-10-05 21:24:00 UTC (rev 1027810) +++ poetry-completions-generator 2021-10-05 21:24:11 UTC (rev 1027811) @@ -1,15 +0,0 @@ -#!/usr/bin/python3 - -# This is a dummy script that fakes its own sys.argv[0] to make the completions -# subcommand do the correct thing when run from the build directory. cleo's -# completion generator uses this to generate completions for sys.argv[0] as well -# as (???) os.path.join(os.getcwd(), sys.argv[0]) for mysterious reasons. -# -# We don't want to complete 'poetry/__main__.py'.... - -import sys -from poetry.console import main - -sys.argv = ['poetry', 'completions', sys.argv.pop()] - -main() Copied: python-poetry/repos/community-any/poetry-completions-generator (from rev 1027810, python-poetry/trunk/poetry-completions-generator) =================================================================== --- poetry-completions-generator (rev 0) +++ poetry-completions-generator 2021-10-05 21:24:11 UTC (rev 1027811) @@ -0,0 +1,15 @@ +#!/usr/bin/python3 + +# This is a dummy script that fakes its own sys.argv[0] to make the completions +# subcommand do the correct thing when run from the build directory. cleo's +# completion generator uses this to generate completions for sys.argv[0] as well +# as (???) os.path.join(os.getcwd(), sys.argv[0]) for mysterious reasons. +# +# We don't want to complete 'poetry/__main__.py'.... + +import sys +from poetry.console import main + +sys.argv = ['poetry', 'completions', sys.argv.pop()] + +main()