Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove SimpleRepositoryPage #9166

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/poetry/repositories/legacy_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from poetry.inspection.info import PackageInfo
from poetry.repositories.exceptions import PackageNotFound
from poetry.repositories.http_repository import HTTPRepository
from poetry.repositories.link_sources.html import SimpleRepositoryPage
from poetry.repositories.link_sources.html import HTMLPage
from poetry.repositories.link_sources.html import SimpleRepositoryRootPage


Expand Down Expand Up @@ -125,10 +125,10 @@ def _get_release_info(
),
)

def _get_page(self, name: NormalizedName) -> SimpleRepositoryPage:
def _get_page(self, name: NormalizedName) -> HTMLPage:
if not (response := self._get_response(f"/{name}/")):
raise PackageNotFound(f"Package [{name}] not found.")
return SimpleRepositoryPage(response.url, response.text)
return HTMLPage(response.url, response.text)

@cached_property
def root_page(self) -> SimpleRepositoryRootPage:
Expand Down
7 changes: 0 additions & 7 deletions src/poetry/repositories/link_sources/html.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,3 @@ def package_names(self) -> list[str]:
results.append(href.rstrip("/"))

return results


class SimpleRepositoryPage(HTMLPage):
def __init__(self, url: str, content: str) -> None:
if not url.endswith("/"):
url += "/"
super().__init__(url=url, content=content)
6 changes: 3 additions & 3 deletions src/poetry/repositories/single_page_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@

from poetry.repositories.exceptions import PackageNotFound
from poetry.repositories.legacy_repository import LegacyRepository
from poetry.repositories.link_sources.html import SimpleRepositoryPage
from poetry.repositories.link_sources.html import HTMLPage


if TYPE_CHECKING:
from packaging.utils import NormalizedName


class SinglePageRepository(LegacyRepository):
def _get_page(self, name: NormalizedName) -> SimpleRepositoryPage:
def _get_page(self, name: NormalizedName) -> HTMLPage:
"""
Single page repositories only have one page irrespective of endpoint.
"""
response = self._get_response("")
if not response:
raise PackageNotFound(f"Package [{name}] not found.")
return SimpleRepositoryPage(response.url, response.text)
return HTMLPage(response.url, response.text)
4 changes: 2 additions & 2 deletions tests/repositories/fixtures/legacy.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
from packaging.utils import NormalizedName
from pytest_mock import MockerFixture

from poetry.repositories.link_sources.html import SimpleRepositoryPage
from poetry.repositories.link_sources.html import HTMLPage
from tests.types import HTTPrettyRequestCallback
from tests.types import NormalizedNameTransformer
from tests.types import SpecializedLegacyRepositoryMocker
Expand Down Expand Up @@ -129,7 +129,7 @@ def mock(
)
original_get_page = specialized_repository._get_page

def _mocked_get_page(name: NormalizedName) -> SimpleRepositoryPage:
def _mocked_get_page(name: NormalizedName) -> HTMLPage:
return original_get_page(
canonicalize_name(f"{name}{transformer_or_suffix}")
if isinstance(transformer_or_suffix, str)
Expand Down
104 changes: 104 additions & 0 deletions tests/repositories/fixtures/single-page/mmcv_torch_releases.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
<a href="../torch1.12.0/mmcv-2.0.0-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv-2.0.0-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv-2.0.0-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv-2.0.0-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv-2.0.0-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc1-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc1-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc1-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc1-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc1-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc1-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc1-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc1-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc1-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc1-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc1-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc1-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc1-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc1-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc1-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc1-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc2-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc2-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc2-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc2-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc2-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc2-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc2-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc2-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc2-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc2-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc2-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc2-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc2-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc2-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc2-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc2-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc3-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc3-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc3-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc3-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc3-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc3-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc3-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc3-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc3-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc3-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc3-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc3-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc3-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc3-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc3-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc3-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc4-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc4-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc4-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc4-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc4-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc4-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc4-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc4-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc4-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc4-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc4-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc4-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc4-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.0rc4-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.0rc4-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv-2.0.0rc4-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.1-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.1-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.1-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv-2.0.1-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.1-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.1-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.1-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv-2.0.1-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.1-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.1-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.1-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv-2.0.1-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.1-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.0.1-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.0.1-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv-2.0.1-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.1.0-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.1.0-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.1.0-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv-2.1.0-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.1.0-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.1.0-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.1.0-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv-2.1.0-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.1.0-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.1.0-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.1.0-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv-2.1.0-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.1.0-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv-2.1.0-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv-2.1.0-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv-2.1.0-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.0-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.0-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.0-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.0-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.0-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.0-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.0-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.0-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.0-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.0-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.0-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.0-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.0-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.0-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.0-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.0-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.1-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.1-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.1-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.1-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.1-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.1-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.1-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.1-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.1-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.1-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.1-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.1-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.1-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.1-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.1-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.1-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.2-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.2-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.2-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.2-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.2-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.2-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.2-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.2-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.2-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.2-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.2-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.2-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.2-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.6.2-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.6.2-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv_full-1.6.2-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.0-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.0-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.0-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.0-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.0-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.0-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.0-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.0-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.0-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.0-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.0-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.0-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.0-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.0-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.0-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.0-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.1-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.1-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.1-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.1-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.1-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.1-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.1-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.1-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.1-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.1-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.1-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.1-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.1-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.1-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.1-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.1-cp39-cp39-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.2-cp310-cp310-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.2-cp310-cp310-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.2-cp310-cp310-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.2-cp310-cp310-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.2-cp37-cp37m-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.2-cp37-cp37m-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.2-cp37-cp37m-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.2-cp37-cp37m-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.2-cp38-cp38-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.2-cp38-cp38-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.2-cp38-cp38-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.2-cp38-cp38-win_amd64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.2-cp39-cp39-manylinux1_x86_64.whl">../torch1.12.0/mmcv_full-1.7.2-cp39-cp39-manylinux1_x86_64.whl</a><br>
<a href="../torch1.12.0/mmcv_full-1.7.2-cp39-cp39-win_amd64.whl">../torch1.12.0/mmcv_full-1.7.2-cp39-cp39-win_amd64.whl</a><br>
2 changes: 1 addition & 1 deletion tests/repositories/test_legacy_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@ def get_mock(
monkeypatch.setattr(repo.session, "get", get_mock)
page = repo.get_page("foo")
assert page is not None
assert page._url == "http://legacy.redirect.bar/foo/"
assert page._url == "http://legacy.redirect.bar/foo"


@pytest.mark.parametrize(
Expand Down
18 changes: 14 additions & 4 deletions tests/repositories/test_single_page_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from poetry.core.packages.dependency import Dependency

from poetry.repositories.exceptions import PackageNotFound
from poetry.repositories.link_sources.html import SimpleRepositoryPage
from poetry.repositories.link_sources.html import HTMLPage
from poetry.repositories.single_page_repository import SinglePageRepository


Expand All @@ -22,18 +22,18 @@ class MockSinglePageRepository(SinglePageRepository):
def __init__(self, page: str) -> None:
super().__init__(
"single-page",
url=f"http://single-page.foo.bar/{page}.html",
url=f"http://single-page.foo.bar/single/page/repo/{page}.html",
disable_cache=True,
)
self._lazy_wheel = False

def _get_page(self, name: NormalizedName) -> SimpleRepositoryPage:
def _get_page(self, name: NormalizedName) -> HTMLPage:
fixture = self.FIXTURES / self.url.rsplit("/", 1)[-1]
if not fixture.exists():
raise PackageNotFound(f"Package [{name}] not found.")

with fixture.open(encoding="utf-8") as f:
return SimpleRepositoryPage(self._url, f.read())
return HTMLPage(self._url, f.read())

def _download(
self, url: str, dest: Path, *, raise_accepts_ranges: bool = False
Expand Down Expand Up @@ -67,3 +67,13 @@ def test_single_page_repository_find_packages() -> None:
package = packages[0]
assert package.name == dep.name
assert package.to_dependency().to_pep_508() == dep.to_pep_508()


def test_single_page_repository_get_page_with_relative_links() -> None:
repo = MockSinglePageRepository("mmcv_torch_releases")

base_path = Path("/single/page/torch1.12.0")
page = repo.get_page("mmcv")
for link in page.links:
path = Path(link.path)
assert path.parent == base_path
Loading