Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
python-poetry
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open
python-poetry
Commits
9fb6c95d
Commit
9fb6c95d
authored
Aug 25, 2022
by
Randy Döring
Committed by
Bjorn Neergaard
Aug 26, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
repository: keep (uncanonicalized) pretty_name
parent
4392bd6e
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
188 additions
and
45 deletions
+188
-45
src/poetry/puzzle/provider.py
+1
-1
src/poetry/repositories/cached.py
+5
-2
src/poetry/repositories/legacy_repository.py
+1
-1
src/poetry/repositories/pool.py
+1
-2
src/poetry/repositories/repository.py
+4
-2
tests/masonry/builders/test_editable_builder.py
+1
-4
tests/repositories/fixtures/legacy/discord-py.html
+11
-0
tests/repositories/fixtures/pypi.org/dists/discord.py-2.0.0-py3-none-any.whl
+0
-0
tests/repositories/fixtures/pypi.org/json/discord-py/2.0.0.json
+113
-0
tests/repositories/test_legacy_repository.py
+24
-19
tests/repositories/test_pool.py
+1
-2
tests/repositories/test_pypi_repository.py
+16
-8
tests/repositories/test_repository.py
+10
-4
No files found.
src/poetry/puzzle/provider.py
View file @
9fb6c95d
...
@@ -528,7 +528,7 @@ class Provider:
...
@@ -528,7 +528,7 @@ class Provider:
dependency_package
=
DependencyPackage
(
dependency_package
=
DependencyPackage
(
dependency
,
dependency
,
self
.
_pool
.
package
(
self
.
_pool
.
package
(
package
.
name
,
package
.
pretty_
name
,
package
.
version
,
package
.
version
,
extras
=
list
(
dependency
.
extras
),
extras
=
list
(
dependency
.
extras
),
repository
=
dependency
.
source_name
,
repository
=
dependency
.
source_name
,
...
...
src/poetry/repositories/cached.py
View file @
9fb6c95d
...
@@ -6,6 +6,7 @@ from typing import TYPE_CHECKING
...
@@ -6,6 +6,7 @@ from typing import TYPE_CHECKING
from
typing
import
Any
from
typing
import
Any
from
cachy
import
CacheManager
from
cachy
import
CacheManager
from
packaging.utils
import
canonicalize_name
from
poetry.core.semver.helpers
import
parse_constraint
from
poetry.core.semver.helpers
import
parse_constraint
from
poetry.config.config
import
Config
from
poetry.config.config
import
Config
...
@@ -78,8 +79,10 @@ class CachedRepository(Repository, ABC):
...
@@ -78,8 +79,10 @@ class CachedRepository(Repository, ABC):
def
package
(
def
package
(
self
,
self
,
name
:
NormalizedName
,
name
:
str
,
version
:
Version
,
version
:
Version
,
extras
:
list
[
str
]
|
None
=
None
,
extras
:
list
[
str
]
|
None
=
None
,
)
->
Package
:
)
->
Package
:
return
self
.
get_release_info
(
name
,
version
)
.
to_package
(
name
=
name
,
extras
=
extras
)
return
self
.
get_release_info
(
canonicalize_name
(
name
),
version
)
.
to_package
(
name
=
name
,
extras
=
extras
)
src/poetry/repositories/legacy_repository.py
View file @
9fb6c95d
...
@@ -34,7 +34,7 @@ class LegacyRepository(HTTPRepository):
...
@@ -34,7 +34,7 @@ class LegacyRepository(HTTPRepository):
super
()
.
__init__
(
name
,
url
.
rstrip
(
"/"
),
config
,
disable_cache
)
super
()
.
__init__
(
name
,
url
.
rstrip
(
"/"
),
config
,
disable_cache
)
def
package
(
def
package
(
self
,
name
:
NormalizedName
,
version
:
Version
,
extras
:
list
[
str
]
|
None
=
None
self
,
name
:
str
,
version
:
Version
,
extras
:
list
[
str
]
|
None
=
None
)
->
Package
:
)
->
Package
:
"""
"""
Retrieve the release information.
Retrieve the release information.
...
...
src/poetry/repositories/pool.py
View file @
9fb6c95d
...
@@ -7,7 +7,6 @@ from poetry.repositories.repository import Repository
...
@@ -7,7 +7,6 @@ from poetry.repositories.repository import Repository
if
TYPE_CHECKING
:
if
TYPE_CHECKING
:
from
packaging.utils
import
NormalizedName
from
poetry.core.packages.dependency
import
Dependency
from
poetry.core.packages.dependency
import
Dependency
from
poetry.core.packages.package
import
Package
from
poetry.core.packages.package
import
Package
from
poetry.core.semver.version
import
Version
from
poetry.core.semver.version
import
Version
...
@@ -134,7 +133,7 @@ class Pool(Repository):
...
@@ -134,7 +133,7 @@ class Pool(Repository):
def
package
(
def
package
(
self
,
self
,
name
:
NormalizedName
,
name
:
str
,
version
:
Version
,
version
:
Version
,
extras
:
list
[
str
]
|
None
=
None
,
extras
:
list
[
str
]
|
None
=
None
,
repository
:
str
|
None
=
None
,
repository
:
str
|
None
=
None
,
...
...
src/poetry/repositories/repository.py
View file @
9fb6c95d
...
@@ -4,6 +4,7 @@ import logging
...
@@ -4,6 +4,7 @@ import logging
from
typing
import
TYPE_CHECKING
from
typing
import
TYPE_CHECKING
from
packaging.utils
import
canonicalize_name
from
poetry.core.semver.helpers
import
parse_constraint
from
poetry.core.semver.helpers
import
parse_constraint
from
poetry.core.semver.version
import
Version
from
poetry.core.semver.version
import
Version
from
poetry.core.semver.version_constraint
import
VersionConstraint
from
poetry.core.semver.version_constraint
import
VersionConstraint
...
@@ -139,10 +140,11 @@ class Repository:
...
@@ -139,10 +140,11 @@ class Repository:
return
[]
return
[]
def
package
(
def
package
(
self
,
name
:
NormalizedName
,
version
:
Version
,
extras
:
list
[
str
]
|
None
=
None
self
,
name
:
str
,
version
:
Version
,
extras
:
list
[
str
]
|
None
=
None
)
->
Package
:
)
->
Package
:
canonicalized_name
=
canonicalize_name
(
name
)
for
package
in
self
.
packages
:
for
package
in
self
.
packages
:
if
name
==
package
.
name
and
package
.
version
==
version
:
if
canonicalized_
name
==
package
.
name
and
package
.
version
==
version
:
return
package
.
clone
()
return
package
.
clone
()
raise
PackageNotFound
(
f
"Package {name} ({version}) not found."
)
raise
PackageNotFound
(
f
"Package {name} ({version}) not found."
)
tests/masonry/builders/test_editable_builder.py
View file @
9fb6c95d
...
@@ -12,7 +12,6 @@ import pytest
...
@@ -12,7 +12,6 @@ import pytest
from
cleo.io.null_io
import
NullIO
from
cleo.io.null_io
import
NullIO
from
deepdiff
import
DeepDiff
from
deepdiff
import
DeepDiff
from
packaging.utils
import
canonicalize_name
from
poetry.core.semver.version
import
Version
from
poetry.core.semver.version
import
Version
from
poetry.factory
import
Factory
from
poetry.factory
import
Factory
...
@@ -243,9 +242,7 @@ def test_builder_setup_generation_runs_with_pip_editable(tmp_dir: str) -> None:
...
@@ -243,9 +242,7 @@ def test_builder_setup_generation_runs_with_pip_editable(tmp_dir: str) -> None:
# is the package installed?
# is the package installed?
repository
=
InstalledRepository
.
load
(
venv
)
repository
=
InstalledRepository
.
load
(
venv
)
package
=
repository
.
package
(
package
=
repository
.
package
(
"extended-project"
,
Version
.
parse
(
"1.2.3"
))
canonicalize_name
(
"extended-project"
),
Version
.
parse
(
"1.2.3"
)
)
assert
package
.
name
==
"extended-project"
assert
package
.
name
==
"extended-project"
# check for the module built by build.py
# check for the module built by build.py
...
...
tests/repositories/fixtures/legacy/discord-py.html
0 → 100644
View file @
9fb6c95d
<!DOCTYPE html>
<html>
<head>
<title>
Links for discord-py
</title>
<body>
<h1>
Links for discord-py
</h1>
<a
href=
"https://files.pythonhosted.org/packages/0e/d9/7b057cab41c16144925ba4f96dab576a8ebb7b80a98d40e06bd94298eb3b/discord.py-2.0.0-py3-none-any.whl#sha256=18b06870bdc85d29e0d55f4a4b2abe9d7cdae2b197e23d49f82886ba27ba1aec"
data-requires-python=
">=3.8.0"
>
discord.py-2.0.0-py3-none-any.whl
</a><br
/>
<a
href=
"https://files.pythonhosted.org/packages/4c/73/fb89115b07588bf7a46e9eca972b89dd62b5856abd52297fe130b41d9d63/discord.py-2.0.0.tar.gz#sha256=c36f26935938194c3465c2abf8ecfbbf5560c50b189f1b746d6f00d1e78c0d3b"
data-requires-python=
">=3.8.0"
>
discord.py-2.0.0.tar.gz
</a><br
/>
</body>
</html>
<!--SERIAL 14796560-->
tests/repositories/fixtures/pypi.org/dists/discord.py-2.0.0-py3-none-any.whl
0 → 100644
View file @
9fb6c95d
File added
tests/repositories/fixtures/pypi.org/json/discord-py/2.0.0.json
0 → 100644
View file @
9fb6c95d
{
"info"
:
{
"author"
:
"Rapptz"
,
"author_email"
:
""
,
"bugtrack_url"
:
null
,
"classifiers"
:
[
"Development Status :: 5 - Production/Stable"
,
"Intended Audience :: Developers"
,
"License :: OSI Approved :: MIT License"
,
"Natural Language :: English"
,
"Operating System :: OS Independent"
,
"Programming Language :: Python :: 3.10"
,
"Programming Language :: Python :: 3.8"
,
"Programming Language :: Python :: 3.9"
,
"Topic :: Internet"
,
"Topic :: Software Development :: Libraries"
,
"Topic :: Software Development :: Libraries :: Python Modules"
,
"Topic :: Utilities"
,
"Typing :: Typed"
],
"description"
:
""
,
"description_content_type"
:
"text/x-rst"
,
"docs_url"
:
null
,
"download_url"
:
""
,
"downloads"
:
{
"last_day"
:
-1
,
"last_month"
:
-1
,
"last_week"
:
-1
},
"home_page"
:
"https://github.com/Rapptz/discord.py"
,
"keywords"
:
""
,
"license"
:
"MIT"
,
"maintainer"
:
""
,
"maintainer_email"
:
""
,
"name"
:
"discord.py"
,
"package_url"
:
"https://pypi.org/project/discord.py/"
,
"platform"
:
null
,
"project_url"
:
"https://pypi.org/project/discord.py/"
,
"project_urls"
:
{
"Documentation"
:
"https://discordpy.readthedocs.io/en/latest/"
,
"Homepage"
:
"https://github.com/Rapptz/discord.py"
,
"Issue tracker"
:
"https://github.com/Rapptz/discord.py/issues"
},
"release_url"
:
"https://pypi.org/project/discord.py/2.0.0/"
,
"requires_dist"
:
[
"PyNaCl (<1.6,>=1.3.0) ; extra == 'voice'"
,
"typing-extensions (<5,>=4.3) ; extra == 'test'"
,
"pytest-mock ; extra == 'test'"
,
"pytest-cov ; extra == 'test'"
,
"pytest-asyncio ; extra == 'test'"
,
"pytest ; extra == 'test'"
,
"coverage[toml] ; extra == 'test'"
,
"cchardet ; extra == 'speed'"
,
"Brotli ; extra == 'speed'"
,
"aiodns (>=1.1) ; extra == 'speed'"
,
"orjson (>=3.5.4) ; extra == 'speed'"
,
"typing-extensions (<5,>=4.3) ; extra == 'docs'"
,
"sphinxcontrib-websupport ; extra == 'docs'"
,
"sphinxcontrib-trio (==1.1.2) ; extra == 'docs'"
,
"sphinx (==4.4.0) ; extra == 'docs'"
,
"aiohttp (<4,>=3.7.4)"
],
"requires_python"
:
">=3.8.0"
,
"summary"
:
"A Python wrapper for the Discord API"
,
"version"
:
"2.0.0"
,
"yanked"
:
false
,
"yanked_reason"
:
null
},
"last_serial"
:
14796560
,
"urls"
:
[
{
"comment_text"
:
""
,
"digests"
:
{
"md5"
:
"4df2fceef99934d1fdac5a9b0aa94173"
,
"sha256"
:
"18b06870bdc85d29e0d55f4a4b2abe9d7cdae2b197e23d49f82886ba27ba1aec"
},
"downloads"
:
-1
,
"filename"
:
"discord.py-2.0.0-py3-none-any.whl"
,
"has_sig"
:
false
,
"md5_digest"
:
"4df2fceef99934d1fdac5a9b0aa94173"
,
"packagetype"
:
"bdist_wheel"
,
"python_version"
:
"py3"
,
"requires_python"
:
">=3.8.0"
,
"size"
:
1059049
,
"upload_time"
:
"2022-08-18T03:47:52"
,
"upload_time_iso_8601"
:
"2022-08-18T03:47:52.438785Z"
,
"url"
:
"https://files.pythonhosted.org/packages/0e/d9/7b057cab41c16144925ba4f96dab576a8ebb7b80a98d40e06bd94298eb3b/discord.py-2.0.0-py3-none-any.whl"
,
"yanked"
:
false
,
"yanked_reason"
:
null
},
{
"comment_text"
:
""
,
"digests"
:
{
"md5"
:
"3aaca51997210bd2ae4d4b5401c00ab7"
,
"sha256"
:
"c36f26935938194c3465c2abf8ecfbbf5560c50b189f1b746d6f00d1e78c0d3b"
},
"downloads"
:
-1
,
"filename"
:
"discord.py-2.0.0.tar.gz"
,
"has_sig"
:
false
,
"md5_digest"
:
"3aaca51997210bd2ae4d4b5401c00ab7"
,
"packagetype"
:
"sdist"
,
"python_version"
:
"source"
,
"requires_python"
:
">=3.8.0"
,
"size"
:
955054
,
"upload_time"
:
"2022-08-18T03:47:54"
,
"upload_time_iso_8601"
:
"2022-08-18T03:47:54.173712Z"
,
"url"
:
"https://files.pythonhosted.org/packages/4c/73/fb89115b07588bf7a46e9eca972b89dd62b5856abd52297fe130b41d9d63/discord.py-2.0.0.tar.gz"
,
"yanked"
:
false
,
"yanked_reason"
:
null
}
],
"vulnerabilities"
:
[]
}
tests/repositories/test_legacy_repository.py
View file @
9fb6c95d
...
@@ -148,7 +148,7 @@ def test_missing_version() -> None:
...
@@ -148,7 +148,7 @@ def test_missing_version() -> None:
def
test_get_package_information_fallback_read_setup
()
->
None
:
def
test_get_package_information_fallback_read_setup
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"jupyter"
)
,
Version
.
parse
(
"1.0.0"
))
package
=
repo
.
package
(
"jupyter"
,
Version
.
parse
(
"1.0.0"
))
assert
package
.
source_type
==
"legacy"
assert
package
.
source_type
==
"legacy"
assert
package
.
source_reference
==
repo
.
name
assert
package
.
source_reference
==
repo
.
name
...
@@ -164,9 +164,7 @@ def test_get_package_information_fallback_read_setup() -> None:
...
@@ -164,9 +164,7 @@ def test_get_package_information_fallback_read_setup() -> None:
def
test_get_package_information_skips_dependencies_with_invalid_constraints
()
->
None
:
def
test_get_package_information_skips_dependencies_with_invalid_constraints
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
package
=
repo
.
package
(
"python-language-server"
,
Version
.
parse
(
"0.21.2"
))
canonicalize_name
(
"python-language-server"
),
Version
.
parse
(
"0.21.2"
)
)
assert
package
.
name
==
"python-language-server"
assert
package
.
name
==
"python-language-server"
assert
package
.
version
.
text
==
"0.21.2"
assert
package
.
version
.
text
==
"0.21.2"
...
@@ -199,6 +197,15 @@ def test_get_package_information_skips_dependencies_with_invalid_constraints() -
...
@@ -199,6 +197,15 @@ def test_get_package_information_skips_dependencies_with_invalid_constraints() -
]
]
def
test_package_not_canonicalized
()
->
None
:
repo
=
MockRepository
()
package
=
repo
.
package
(
"discord.py"
,
Version
.
parse
(
"2.0.0"
))
assert
package
.
name
==
"discord-py"
assert
package
.
pretty_name
==
"discord.py"
def
test_find_packages_no_prereleases
()
->
None
:
def
test_find_packages_no_prereleases
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
...
@@ -255,7 +262,7 @@ def test_find_packages_yanked(constraint: str, expected: list[str]) -> None:
...
@@ -255,7 +262,7 @@ def test_find_packages_yanked(constraint: str, expected: list[str]) -> None:
def
test_get_package_information_chooses_correct_distribution
()
->
None
:
def
test_get_package_information_chooses_correct_distribution
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"isort"
)
,
Version
.
parse
(
"4.3.4"
))
package
=
repo
.
package
(
"isort"
,
Version
.
parse
(
"4.3.4"
))
assert
package
.
name
==
"isort"
assert
package
.
name
==
"isort"
assert
package
.
version
.
text
==
"4.3.4"
assert
package
.
version
.
text
==
"4.3.4"
...
@@ -268,7 +275,7 @@ def test_get_package_information_chooses_correct_distribution() -> None:
...
@@ -268,7 +275,7 @@ def test_get_package_information_chooses_correct_distribution() -> None:
def
test_get_package_information_includes_python_requires
()
->
None
:
def
test_get_package_information_includes_python_requires
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"futures"
)
,
Version
.
parse
(
"3.2.0"
))
package
=
repo
.
package
(
"futures"
,
Version
.
parse
(
"3.2.0"
))
assert
package
.
name
==
"futures"
assert
package
.
name
==
"futures"
assert
package
.
version
.
text
==
"3.2.0"
assert
package
.
version
.
text
==
"3.2.0"
...
@@ -280,7 +287,7 @@ def test_get_package_information_sets_appropriate_python_versions_if_wheels_only
...
@@ -280,7 +287,7 @@ def test_get_package_information_sets_appropriate_python_versions_if_wheels_only
):
):
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"futures"
)
,
Version
.
parse
(
"3.2.0"
))
package
=
repo
.
package
(
"futures"
,
Version
.
parse
(
"3.2.0"
))
assert
package
.
name
==
"futures"
assert
package
.
name
==
"futures"
assert
package
.
version
.
text
==
"3.2.0"
assert
package
.
version
.
text
==
"3.2.0"
...
@@ -290,7 +297,7 @@ def test_get_package_information_sets_appropriate_python_versions_if_wheels_only
...
@@ -290,7 +297,7 @@ def test_get_package_information_sets_appropriate_python_versions_if_wheels_only
def
test_get_package_from_both_py2_and_py3_specific_wheels
()
->
None
:
def
test_get_package_from_both_py2_and_py3_specific_wheels
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"ipython"
)
,
Version
.
parse
(
"5.7.0"
))
package
=
repo
.
package
(
"ipython"
,
Version
.
parse
(
"5.7.0"
))
assert
package
.
name
==
"ipython"
assert
package
.
name
==
"ipython"
assert
package
.
version
.
text
==
"5.7.0"
assert
package
.
version
.
text
==
"5.7.0"
...
@@ -328,9 +335,7 @@ def test_get_package_from_both_py2_and_py3_specific_wheels() -> None:
...
@@ -328,9 +335,7 @@ def test_get_package_from_both_py2_and_py3_specific_wheels() -> None:
def
test_get_package_from_both_py2_and_py3_specific_wheels_python_constraint
()
->
None
:
def
test_get_package_from_both_py2_and_py3_specific_wheels_python_constraint
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
package
=
repo
.
package
(
"poetry-test-py2-py3-metadata-merge"
,
Version
.
parse
(
"0.1.0"
))
canonicalize_name
(
"poetry-test-py2-py3-metadata-merge"
),
Version
.
parse
(
"0.1.0"
)
)
assert
package
.
name
==
"poetry-test-py2-py3-metadata-merge"
assert
package
.
name
==
"poetry-test-py2-py3-metadata-merge"
assert
package
.
version
.
text
==
"0.1.0"
assert
package
.
version
.
text
==
"0.1.0"
...
@@ -340,7 +345,7 @@ def test_get_package_from_both_py2_and_py3_specific_wheels_python_constraint() -
...
@@ -340,7 +345,7 @@ def test_get_package_from_both_py2_and_py3_specific_wheels_python_constraint() -
def
test_get_package_with_dist_and_universal_py3_wheel
()
->
None
:
def
test_get_package_with_dist_and_universal_py3_wheel
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"ipython"
)
,
Version
.
parse
(
"7.5.0"
))
package
=
repo
.
package
(
"ipython"
,
Version
.
parse
(
"7.5.0"
))
assert
package
.
name
==
"ipython"
assert
package
.
name
==
"ipython"
assert
package
.
version
.
text
==
"7.5.0"
assert
package
.
version
.
text
==
"7.5.0"
...
@@ -368,7 +373,7 @@ def test_get_package_with_dist_and_universal_py3_wheel() -> None:
...
@@ -368,7 +373,7 @@ def test_get_package_with_dist_and_universal_py3_wheel() -> None:
def
test_get_package_retrieves_non_sha256_hashes
()
->
None
:
def
test_get_package_retrieves_non_sha256_hashes
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"ipython"
)
,
Version
.
parse
(
"7.5.0"
))
package
=
repo
.
package
(
"ipython"
,
Version
.
parse
(
"7.5.0"
))
expected
=
[
expected
=
[
{
{
...
@@ -387,7 +392,7 @@ def test_get_package_retrieves_non_sha256_hashes() -> None:
...
@@ -387,7 +392,7 @@ def test_get_package_retrieves_non_sha256_hashes() -> None:
def
test_get_package_retrieves_non_sha256_hashes_mismatching_known_hash
()
->
None
:
def
test_get_package_retrieves_non_sha256_hashes_mismatching_known_hash
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"ipython"
)
,
Version
.
parse
(
"5.7.0"
))
package
=
repo
.
package
(
"ipython"
,
Version
.
parse
(
"5.7.0"
))
expected
=
[
expected
=
[
{
{
...
@@ -410,7 +415,7 @@ def test_get_package_retrieves_non_sha256_hashes_mismatching_known_hash() -> Non
...
@@ -410,7 +415,7 @@ def test_get_package_retrieves_non_sha256_hashes_mismatching_known_hash() -> Non
def
test_get_package_retrieves_packages_with_no_hashes
()
->
None
:
def
test_get_package_retrieves_packages_with_no_hashes
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"jupyter"
)
,
Version
.
parse
(
"1.0.0"
))
package
=
repo
.
package
(
"jupyter"
,
Version
.
parse
(
"1.0.0"
))
assert
[
assert
[
{
{
...
@@ -432,7 +437,7 @@ def test_package_yanked(
...
@@ -432,7 +437,7 @@ def test_package_yanked(
)
->
None
:
)
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
package_name
)
,
Version
.
parse
(
version
))
package
=
repo
.
package
(
package_name
,
Version
.
parse
(
version
))
assert
package
.
name
==
package_name
assert
package
.
name
==
package_name
assert
str
(
package
.
version
)
==
version
assert
str
(
package
.
version
)
==
version
...
@@ -446,11 +451,11 @@ def test_package_partial_yank():
...
@@ -446,11 +451,11 @@ def test_package_partial_yank():
return
super
()
.
_get_page
(
f
"/{endpoint.strip('/')}_partial_yank/"
)
return
super
()
.
_get_page
(
f
"/{endpoint.strip('/')}_partial_yank/"
)
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"futures"
)
,
Version
.
parse
(
"3.2.0"
))
package
=
repo
.
package
(
"futures"
,
Version
.
parse
(
"3.2.0"
))
assert
len
(
package
.
files
)
==
2
assert
len
(
package
.
files
)
==
2
repo
=
SpecialMockRepository
()
repo
=
SpecialMockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"futures"
)
,
Version
.
parse
(
"3.2.0"
))
package
=
repo
.
package
(
"futures"
,
Version
.
parse
(
"3.2.0"
))
assert
len
(
package
.
files
)
==
1
assert
len
(
package
.
files
)
==
1
assert
package
.
files
[
0
][
"file"
]
.
endswith
(
".tar.gz"
)
assert
package
.
files
[
0
][
"file"
]
.
endswith
(
".tar.gz"
)
...
@@ -467,7 +472,7 @@ def test_find_links_for_package_yanked(
...
@@ -467,7 +472,7 @@ def test_find_links_for_package_yanked(
)
->
None
:
)
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
package_name
)
,
Version
.
parse
(
version
))
package
=
repo
.
package
(
package_name
,
Version
.
parse
(
version
))
links
=
repo
.
find_links_for_package
(
package
)
links
=
repo
.
find_links_for_package
(
package
)
assert
len
(
links
)
==
1
assert
len
(
links
)
==
1
...
...
tests/repositories/test_pool.py
View file @
9fb6c95d
...
@@ -2,7 +2,6 @@ from __future__ import annotations
...
@@ -2,7 +2,6 @@ from __future__ import annotations
import
pytest
import
pytest
from
packaging.utils
import
canonicalize_name
from
poetry.core.semver.version
import
Version
from
poetry.core.semver.version
import
Version
from
poetry.repositories
import
Pool
from
poetry.repositories
import
Pool
...
@@ -16,7 +15,7 @@ def test_pool_raises_package_not_found_when_no_package_is_found() -> None:
...
@@ -16,7 +15,7 @@ def test_pool_raises_package_not_found_when_no_package_is_found() -> None:
pool
.
add_repository
(
Repository
(
"repo"
))
pool
.
add_repository
(
Repository
(
"repo"
))
with
pytest
.
raises
(
PackageNotFound
):
with
pytest
.
raises
(
PackageNotFound
):
pool
.
package
(
canonicalize_name
(
"foo"
)
,
Version
.
parse
(
"1.0.0"
))
pool
.
package
(
"foo"
,
Version
.
parse
(
"1.0.0"
))
def
test_pool
():
def
test_pool
():
...
...
tests/repositories/test_pypi_repository.py
View file @
9fb6c95d
...
@@ -9,7 +9,6 @@ from typing import TYPE_CHECKING
...
@@ -9,7 +9,6 @@ from typing import TYPE_CHECKING
import
pytest
import
pytest
from
packaging.utils
import
canonicalize_name
from
poetry.core.packages.dependency
import
Dependency
from
poetry.core.packages.dependency
import
Dependency
from
poetry.core.semver.version
import
Version
from
poetry.core.semver.version
import
Version
from
requests.exceptions
import
TooManyRedirects
from
requests.exceptions
import
TooManyRedirects
...
@@ -117,7 +116,7 @@ def test_find_packages_yanked(constraint: str, expected: list[str]) -> None:
...
@@ -117,7 +116,7 @@ def test_find_packages_yanked(constraint: str, expected: list[str]) -> None:
def
test_package
()
->
None
:
def
test_package
()
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
canonicalize_name
(
"requests"
)
,
Version
.
parse
(
"2.18.4"
))
package
=
repo
.
package
(
"requests"
,
Version
.
parse
(
"2.18.4"
))
assert
package
.
name
==
"requests"
assert
package
.
name
==
"requests"
assert
len
(
package
.
requires
)
==
9
assert
len
(
package
.
requires
)
==
9
...
@@ -158,7 +157,7 @@ def test_package_yanked(
...
@@ -158,7 +157,7 @@ def test_package_yanked(
)
->
None
:
)
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
package_name
,
version
)
package
=
repo
.
package
(
package_name
,
Version
.
parse
(
version
)
)
assert
package
.
name
==
package_name
assert
package
.
name
==
package_name
assert
str
(
package
.
version
)
==
version
assert
str
(
package
.
version
)
==
version
...
@@ -166,6 +165,15 @@ def test_package_yanked(
...
@@ -166,6 +165,15 @@ def test_package_yanked(
assert
package
.
yanked_reason
==
yanked_reason
assert
package
.
yanked_reason
==
yanked_reason
def
test_package_not_canonicalized
()
->
None
:
repo
=
MockRepository
()
package
=
repo
.
package
(
"discord.py"
,
Version
.
parse
(
"2.0.0"
))
assert
package
.
name
==
"discord-py"
assert
package
.
pretty_name
==
"discord.py"
@pytest.mark.parametrize
(
@pytest.mark.parametrize
(
"package_name, version, yanked, yanked_reason"
,
"package_name, version, yanked, yanked_reason"
,
[
[
...
@@ -178,7 +186,7 @@ def test_find_links_for_package_yanked(
...
@@ -178,7 +186,7 @@ def test_find_links_for_package_yanked(
)
->
None
:
)
->
None
:
repo
=
MockRepository
()
repo
=
MockRepository
()
package
=
repo
.
package
(
package_name
,
version
)
package
=
repo
.
package
(
package_name
,
Version
.
parse
(
version
)
)
links
=
repo
.
find_links_for_package
(
package
)
links
=
repo
.
find_links_for_package
(
package
)
assert
len
(
links
)
==
2
assert
len
(
links
)
==
2
...
@@ -190,7 +198,7 @@ def test_find_links_for_package_yanked(
...
@@ -190,7 +198,7 @@ def test_find_links_for_package_yanked(
def
test_fallback_on_downloading_packages
()
->
None
:
def
test_fallback_on_downloading_packages
()
->
None
:
repo
=
MockRepository
(
fallback
=
True
)
repo
=
MockRepository
(
fallback
=
True
)
package
=
repo
.
package
(
canonicalize_name
(
"jupyter"
)
,
Version
.
parse
(
"1.0.0"
))
package
=
repo
.
package
(
"jupyter"
,
Version
.
parse
(
"1.0.0"
))
assert
package
.
name
==
"jupyter"
assert
package
.
name
==
"jupyter"
assert
len
(
package
.
requires
)
==
6
assert
len
(
package
.
requires
)
==
6
...
@@ -209,7 +217,7 @@ def test_fallback_on_downloading_packages() -> None:
...
@@ -209,7 +217,7 @@ def test_fallback_on_downloading_packages() -> None:
def
test_fallback_inspects_sdist_first_if_no_matching_wheels_can_be_found
()
->
None
:
def
test_fallback_inspects_sdist_first_if_no_matching_wheels_can_be_found
()
->
None
:
repo
=
MockRepository
(
fallback
=
True
)
repo
=
MockRepository
(
fallback
=
True
)
package
=
repo
.
package
(
canonicalize_name
(
"isort"
)
,
Version
.
parse
(
"4.3.4"
))
package
=
repo
.
package
(
"isort"
,
Version
.
parse
(
"4.3.4"
))
assert
package
.
name
==
"isort"
assert
package
.
name
==
"isort"
assert
len
(
package
.
requires
)
==
1
assert
len
(
package
.
requires
)
==
1
...
@@ -222,7 +230,7 @@ def test_fallback_inspects_sdist_first_if_no_matching_wheels_can_be_found() -> N
...
@@ -222,7 +230,7 @@ def test_fallback_inspects_sdist_first_if_no_matching_wheels_can_be_found() -> N
def
test_fallback_can_read_setup_to_get_dependencies
()
->
None
:
def
test_fallback_can_read_setup_to_get_dependencies
()
->
None
:
repo
=
MockRepository
(
fallback
=
True
)
repo
=
MockRepository
(
fallback
=
True
)
package
=
repo
.
package
(
canonicalize_name
(
"sqlalchemy"
)
,
Version
.
parse
(
"1.2.12"
))
package
=
repo
.
package
(
"sqlalchemy"
,
Version
.
parse
(
"1.2.12"
))
assert
package
.
name
==
"sqlalchemy"
assert
package
.
name
==
"sqlalchemy"
assert
len
(
package
.
requires
)
==
9
assert
len
(
package
.
requires
)
==
9
...
@@ -244,7 +252,7 @@ def test_fallback_can_read_setup_to_get_dependencies() -> None:
...
@@ -244,7 +252,7 @@ def test_fallback_can_read_setup_to_get_dependencies() -> None:
def
test_pypi_repository_supports_reading_bz2_files
()
->
None
:
def
test_pypi_repository_supports_reading_bz2_files
()
->
None
:
repo
=
MockRepository
(
fallback
=
True
)
repo
=
MockRepository
(
fallback
=
True
)
package
=
repo
.
package
(
canonicalize_name
(
"twisted"
)
,
Version
.
parse
(
"18.9.0"
))
package
=
repo
.
package
(
"twisted"
,
Version
.
parse
(
"18.9.0"
))
assert
package
.
name
==
"twisted"
assert
package
.
name
==
"twisted"
assert
len
(
package
.
requires
)
==
71
assert
len
(
package
.
requires
)
==
71
...
...
tests/repositories/test_repository.py
View file @
9fb6c95d
...
@@ -2,7 +2,6 @@ from __future__ import annotations
...
@@ -2,7 +2,6 @@ from __future__ import annotations
import
pytest
import
pytest
from
packaging.utils
import
canonicalize_name
from
poetry.core.packages.package
import
Package
from
poetry.core.packages.package
import
Package
from
poetry.core.semver.version
import
Version
from
poetry.core.semver.version
import
Version
...
@@ -53,11 +52,18 @@ def test_package_yanked(
...
@@ -53,11 +52,18 @@ def test_package_yanked(
yanked
:
bool
,
yanked
:
bool
,
yanked_reason
:
str
,
yanked_reason
:
str
,
)
->
None
:
)
->
None
:
package
=
black_repository
.
package
(
package
=
black_repository
.
package
(
package_name
,
Version
.
parse
(
version
))
canonicalize_name
(
package_name
),
Version
.
parse
(
version
)
)
assert
package
.
name
==
package_name
assert
package
.
name
==
package_name
assert
str
(
package
.
version
)
==
version
assert
str
(
package
.
version
)
==
version
assert
package
.
yanked
is
yanked
assert
package
.
yanked
is
yanked
assert
package
.
yanked_reason
==
yanked_reason
assert
package
.
yanked_reason
==
yanked_reason
def
test_package_pretty_name_is_kept
()
->
None
:
pretty_name
=
"Not_canoni-calized.name"
repo
=
Repository
(
"repo"
)
repo
.
add_package
(
Package
(
pretty_name
,
"1.0"
))
package
=
repo
.
package
(
pretty_name
,
Version
.
parse
(
"1.0"
))
assert
package
.
pretty_name
==
pretty_name
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment