Skip to content

Commit d8390fe

Browse files
committed
Extract _resolve_download_filename with test.
1 parent 4e1e893 commit d8390fe

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

setuptools/package_index.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -807,9 +807,16 @@ def open_url(self, url, warning=None): # noqa: C901 # is too complex (12)
807807
else:
808808
raise DistutilsError(f"Download error for {url}: {v}") from v
809809

810-
def _download_url(self, url, tmpdir):
811-
# Determine download filename
812-
#
810+
@staticmethod
811+
def _resolve_download_filename(url, tmpdir):
812+
"""
813+
>>> du = PackageIndex._resolve_download_filename
814+
>>> root = getfixture('tmp_path')
815+
>>> url = 'https://files.pythonhosted.org/packages/a9/5a/0db.../setuptools-78.1.0.tar.gz'
816+
>>> import pathlib
817+
>>> str(pathlib.Path(du(url, root)).relative_to(root))
818+
'setuptools-78.1.0.tar.gz'
819+
"""
813820
name, _fragment = egg_info_for_url(url)
814821
if name:
815822
while '..' in name:
@@ -820,8 +827,13 @@ def _download_url(self, url, tmpdir):
820827
if name.endswith('.egg.zip'):
821828
name = name[:-4] # strip the extra .zip before download
822829

823-
filename = os.path.join(tmpdir, name)
830+
return os.path.join(tmpdir, name)
824831

832+
def _download_url(self, url, tmpdir):
833+
"""
834+
Determine the download filename.
835+
"""
836+
filename = self._resolve_download_filename(url, tmpdir)
825837
return self._download_vcs(url, filename) or self._download_other(url, filename)
826838

827839
@staticmethod

0 commit comments

Comments
 (0)