From 3ca2accb2fd36bd1efe24b8bb77c2486567b699c Mon Sep 17 00:00:00 2001 From: Ronny Pfannschmidt Date: Mon, 15 Sep 2025 23:47:44 +0200 Subject: [PATCH 1/2] Update datetime handling to use timezone-aware methods in Package class and build_repo function --- dumb_pypi/main.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dumb_pypi/main.py b/dumb_pypi/main.py index 830d12debda..044007a4955 100644 --- a/dumb_pypi/main.py +++ b/dumb_pypi/main.py @@ -24,6 +24,7 @@ from collections.abc import Iterator from collections.abc import Sequence from datetime import datetime +from datetime import timezone from typing import Any from typing import IO from typing import NamedTuple @@ -132,7 +133,7 @@ def sort_key(self) -> tuple[str, packaging.version.Version, bool, tuple[str | in @property def formatted_upload_time(self) -> str: assert self.upload_timestamp is not None - dt = datetime.utcfromtimestamp(self.upload_timestamp) + dt = datetime.fromtimestamp(self.upload_timestamp, tz=timezone.utc) return _format_datetime(dt) @property @@ -305,7 +306,7 @@ def build_repo( ) -> None: simple = os.path.join(settings.output_dir, 'simple') pypi = os.path.join(settings.output_dir, 'pypi') - current_date = _format_datetime(datetime.utcnow()) + current_date = _format_datetime(datetime.now(timezone.utc)) jinja_env = jinja2.Environment( loader=jinja2.PackageLoader('dumb_pypi', 'templates'), From 4d5fb970bef24481b41d49276872b23f09ad4fa3 Mon Sep 17 00:00:00 2001 From: Ronny Pfannschmidt Date: Mon, 15 Sep 2025 23:48:30 +0200 Subject: [PATCH 2/2] migrate running_server fixture to use tmp_path_factory and pathlib --- tests/conftest.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 85bd9245746..078c1e0efa7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -18,15 +18,15 @@ @pytest.fixture(scope='session') -def running_server(tmpdir_factory): +def running_server(tmp_path_factory): ip = '127.0.0.1' port = ephemeral_port_reserve.reserve(ip=ip) url = f'http://{ip}:{port}' - path = tmpdir_factory.mktemp('http') + path = tmp_path_factory.mktemp('http') proc = subprocess.Popen( (sys.executable, '-m', 'http.server', '-b', ip, str(port)), - cwd=path.strpath, + cwd=str(path), ) try: for _ in range(100): @@ -52,7 +52,8 @@ def tmpweb(running_server, tmpdir): # symlink some uuid under the running server path to our tmpdir name = str(uuid.uuid4()) - running_server.path.join(name).mksymlinkto(path) + # running_server.path is a pathlib.Path; `path` is a py.path.local + (running_server.path / name).symlink_to(path.strpath, target_is_directory=True) return UrlAndPath(f'{running_server.url}/{name}', path)