mirror of
https://github.com/pypiserver/pypiserver
synced 2024-11-09 16:45:51 +01:00
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
|
from pathlib import Path
|
||
|
|
||
|
import pytest
|
||
|
|
||
|
from pypiserver.backend import listdir
|
||
|
|
||
|
|
||
|
def create_path(root: Path, path: Path):
|
||
|
if path.is_absolute():
|
||
|
raise ValueError(
|
||
|
"Only test using relative paths"
|
||
|
" to prevent leaking outside test environment"
|
||
|
)
|
||
|
fullpath = root / path
|
||
|
if not fullpath.parent.exists():
|
||
|
fullpath.parent.mkdir(parents=True)
|
||
|
fullpath.touch()
|
||
|
|
||
|
|
||
|
valid_paths = ["direct-in-root.zip", "some/nested/pkg.zip"]
|
||
|
|
||
|
|
||
|
@pytest.mark.parametrize("path_name", valid_paths)
|
||
|
def test_listdir_generates_pkgfile_for_valid_package(tmp_path, path_name):
|
||
|
path = Path(path_name)
|
||
|
create_path(tmp_path, path)
|
||
|
assert len(list(listdir(tmp_path))) == 1
|
||
|
|
||
|
|
||
|
invalid_paths = [
|
||
|
".hidden-pkg.zip",
|
||
|
".hidden/dir/pkg.zip",
|
||
|
"in/between/.hidden/pkg.zip",
|
||
|
"invalid-wheel.whl",
|
||
|
]
|
||
|
|
||
|
|
||
|
@pytest.mark.parametrize("path_name", invalid_paths)
|
||
|
def test_listdir_doesnt_generate_pkgfile_for_invalid_file(tmp_path, path_name):
|
||
|
path = Path(path_name)
|
||
|
create_path(tmp_path, path)
|
||
|
assert not list(listdir(tmp_path))
|