Skip to content

Commit a7d234c

Browse files
authored
remove SimpleRepositoryPage (#9166)
fixes python-poetry#6885
1 parent 5bab98c commit a7d234c

File tree

7 files changed

+127
-20
lines changed

7 files changed

+127
-20
lines changed

src/poetry/repositories/legacy_repository.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from poetry.inspection.info import PackageInfo
1313
from poetry.repositories.exceptions import PackageNotFound
1414
from poetry.repositories.http_repository import HTTPRepository
15-
from poetry.repositories.link_sources.html import SimpleRepositoryPage
15+
from poetry.repositories.link_sources.html import HTMLPage
1616
from poetry.repositories.link_sources.html import SimpleRepositoryRootPage
1717

1818

@@ -125,10 +125,10 @@ def _get_release_info(
125125
),
126126
)
127127

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

133133
@cached_property
134134
def root_page(self) -> SimpleRepositoryRootPage:

src/poetry/repositories/link_sources/html.py

-7
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,3 @@ def package_names(self) -> list[str]:
100100
results.append(href.rstrip("/"))
101101

102102
return results
103-
104-
105-
class SimpleRepositoryPage(HTMLPage):
106-
def __init__(self, url: str, content: str) -> None:
107-
if not url.endswith("/"):
108-
url += "/"
109-
super().__init__(url=url, content=content)

src/poetry/repositories/single_page_repository.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44

55
from poetry.repositories.exceptions import PackageNotFound
66
from poetry.repositories.legacy_repository import LegacyRepository
7-
from poetry.repositories.link_sources.html import SimpleRepositoryPage
7+
from poetry.repositories.link_sources.html import HTMLPage
88

99

1010
if TYPE_CHECKING:
1111
from packaging.utils import NormalizedName
1212

1313

1414
class SinglePageRepository(LegacyRepository):
15-
def _get_page(self, name: NormalizedName) -> SimpleRepositoryPage:
15+
def _get_page(self, name: NormalizedName) -> HTMLPage:
1616
"""
1717
Single page repositories only have one page irrespective of endpoint.
1818
"""
1919
response = self._get_response("")
2020
if not response:
2121
raise PackageNotFound(f"Package [{name}] not found.")
22-
return SimpleRepositoryPage(response.url, response.text)
22+
return HTMLPage(response.url, response.text)

tests/repositories/fixtures/legacy.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from packaging.utils import NormalizedName
2323
from pytest_mock import MockerFixture
2424

25-
from poetry.repositories.link_sources.html import SimpleRepositoryPage
25+
from poetry.repositories.link_sources.html import HTMLPage
2626
from tests.types import HTTPrettyRequestCallback
2727
from tests.types import NormalizedNameTransformer
2828
from tests.types import SpecializedLegacyRepositoryMocker
@@ -129,7 +129,7 @@ def mock(
129129
)
130130
original_get_page = specialized_repository._get_page
131131

132-
def _mocked_get_page(name: NormalizedName) -> SimpleRepositoryPage:
132+
def _mocked_get_page(name: NormalizedName) -> HTMLPage:
133133
return original_get_page(
134134
canonicalize_name(f"{name}{transformer_or_suffix}")
135135
if isinstance(transformer_or_suffix, str)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
<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>
2+
<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>
3+
<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>
4+
<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>
5+
<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>
6+
<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>
7+
<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>
8+
<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>
9+
<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>
10+
<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>
11+
<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>
12+
<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>
13+
<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>
14+
<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>
15+
<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>
16+
<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>
17+
<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>
18+
<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>
19+
<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>
20+
<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>
21+
<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>
22+
<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>
23+
<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>
24+
<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>
25+
<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>
26+
<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>
27+
<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>
28+
<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>
29+
<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>
30+
<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>
31+
<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>
32+
<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>
33+
<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>
34+
<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>
35+
<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>
36+
<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>
37+
<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>
38+
<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>
39+
<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>
40+
<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>
41+
<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>
42+
<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>
43+
<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>
44+
<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>
45+
<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>
46+
<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>
47+
<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>
48+
<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>
49+
<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>
50+
<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>
51+
<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>
52+
<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>
53+
<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>
54+
<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>
55+
<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>
56+
<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>
57+
<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>
58+
<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>
59+
<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>
60+
<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>
61+
<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>
62+
<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>
63+
<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>
64+
<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>
65+
<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>
66+
<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>
67+
<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>
68+
<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>
69+
<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>
70+
<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>
71+
<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>
72+
<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>
73+
<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>
74+
<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>
75+
<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>
76+
<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>
77+
<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>
78+
<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>
79+
<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>
80+
<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>
81+
<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>
82+
<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>
83+
<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>
84+
<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>
85+
<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>
86+
<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>
87+
<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>
88+
<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>
89+
<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>
90+
<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>
91+
<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>
92+
<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>
93+
<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>
94+
<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>
95+
<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>
96+
<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>
97+
<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>
98+
<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>
99+
<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>
100+
<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>
101+
<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>
102+
<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>
103+
<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>
104+
<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>

tests/repositories/test_legacy_repository.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ def get_mock(
592592
monkeypatch.setattr(repo.session, "get", get_mock)
593593
page = repo.get_page("foo")
594594
assert page is not None
595-
assert page._url == "http://legacy.redirect.bar/foo/"
595+
assert page._url == "http://legacy.redirect.bar/foo"
596596

597597

598598
@pytest.mark.parametrize(

tests/repositories/test_single_page_repository.py

+14-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from poetry.core.packages.dependency import Dependency
99

1010
from poetry.repositories.exceptions import PackageNotFound
11-
from poetry.repositories.link_sources.html import SimpleRepositoryPage
11+
from poetry.repositories.link_sources.html import HTMLPage
1212
from poetry.repositories.single_page_repository import SinglePageRepository
1313

1414

@@ -22,18 +22,18 @@ class MockSinglePageRepository(SinglePageRepository):
2222
def __init__(self, page: str) -> None:
2323
super().__init__(
2424
"single-page",
25-
url=f"http://single-page.foo.bar/{page}.html",
25+
url=f"http://single-page.foo.bar/single/page/repo/{page}.html",
2626
disable_cache=True,
2727
)
2828
self._lazy_wheel = False
2929

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

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

3838
def _download(
3939
self, url: str, dest: Path, *, raise_accepts_ranges: bool = False
@@ -67,3 +67,13 @@ def test_single_page_repository_find_packages() -> None:
6767
package = packages[0]
6868
assert package.name == dep.name
6969
assert package.to_dependency().to_pep_508() == dep.to_pep_508()
70+
71+
72+
def test_single_page_repository_get_page_with_relative_links() -> None:
73+
repo = MockSinglePageRepository("mmcv_torch_releases")
74+
75+
base_path = Path("/single/page/torch1.12.0")
76+
page = repo.get_page("mmcv")
77+
for link in page.links:
78+
path = Path(link.path)
79+
assert path.parent == base_path

0 commit comments

Comments
 (0)