Skip to content

Commit 6a9bf11

Browse files
committed
write .metadata
1 parent 6adb5fd commit 6a9bf11

File tree

4 files changed

+24
-11
lines changed

4 files changed

+24
-11
lines changed

docker/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ filelock==3.13.1
1212
jinja2==3.1.6
1313
markupsafe==2.1.1
1414
packaging==21.3
15+
patchelf==0.16.1.0 ; sys_platform == "linux"
1516
platformdirs==4.2.0
1617
pyelftools==0.28
1718
pyparsing==3.0.9

make_index.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,19 @@ def main(argv: Sequence[str] | None = None) -> int:
8484
for filename in filenames
8585
):
8686
basename = os.path.basename(filename)
87-
#if basename in on_pypi:
88-
# raise AssertionError(f"{basename}: already on pypi?")
89-
#elif basename in seen:
90-
# continue
87+
if basename in on_pypi:
88+
raise AssertionError(f"{basename}: already on pypi?")
89+
elif basename in seen:
90+
continue
9191

9292
seen.add(basename)
93-
new_packages.append(_make_info(filename))
93+
package_info = _make_info(filename)
94+
new_packages.append(package_info)
9495
shutil.copy(filename, wheels_dir)
9596

97+
with open(f"{wheels_dir}/{basename}.metadata", "w") as f:
98+
f.write(package_info["core_metadata"])
99+
96100
with tempfile.TemporaryDirectory() as tmpdir:
97101
prev_json = os.path.join(tmpdir, "previous.json")
98102
with open(prev_json, "w") as f:

tests/make_index_test.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io
44
import json
5+
import re
56
import os.path
67
import urllib.request
78
import zipfile
@@ -35,8 +36,6 @@ def test_make_info_empty_wheel_metadata(tmp_path):
3536
}
3637

3738

38-
# todo
39-
4039
def test_make_info_full_wheel_metadata(tmp_path):
4140
filename = str(tmp_path.joinpath("a-1-py3-none-any.whl"))
4241
make_wheel(
@@ -67,7 +66,8 @@ def test_make_info_full_wheel_metadata(tmp_path):
6766
def test_main_new_package(tmp_path):
6867
dist = tmp_path.joinpath("dist")
6968
dist.mkdir()
70-
make_wheel(dist.joinpath("a-1-py3-none-any.whl"), ())
69+
wheel_name = "a-1-py3-none-any.whl"
70+
make_wheel(dist.joinpath(wheel_name), ())
7171
dest = tmp_path.joinpath("dest")
7272

7373
bio = io.BytesIO(b"")
@@ -82,8 +82,16 @@ def test_main_new_package(tmp_path):
8282

8383
# just some smoke tests about the output
8484
assert dest.joinpath("packages.json").exists()
85-
assert dest.joinpath("wheels/a-1-py3-none-any.whl").exists()
86-
assert dest.joinpath("simple/a/index.html").exists()
85+
assert dest.joinpath(f"wheels/{wheel_name}").exists()
86+
87+
sha = "64f7f4664408d711c17ad28c1d3ba7dd155501e67c8632fafc8a525ba3ebc527"
88+
89+
with open(dest.joinpath("simple/a/index.html")) as f:
90+
index_html = re.sub(r'\s+', ' ', f.read())
91+
assert f'<a href="http://example.com/wheels/{wheel_name}#sha256={sha}" data-core-metadata="sha256={sha}" >a-1-py3-none-any.whl</a>' in index_html
92+
93+
with open(dest.joinpath(f"wheels/{wheel_name}.metadata")) as f:
94+
assert f.read() == f"sha256={sha}"
8795

8896

8997
def test_main_multiple_provide_same_package_first_wins(tmp_path):

tox.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tox]
2-
envlist = py311
2+
envlist = py
33

44
[testenv]
55
skip_install = true

0 commit comments

Comments
 (0)