Skip to content

Commit b9410de

Browse files
dimblebyneersighted
authored andcommitted
Fix sdist build
Directory used in tarball should match filename
1 parent 269f940 commit b9410de

File tree

4 files changed

+71
-70
lines changed

4 files changed

+71
-70
lines changed

src/poetry/core/masonry/builders/sdist.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def build(
7474
)
7575

7676
try:
77-
tar_dir = f"{self._package.pretty_name}-{self._meta.version}"
77+
tar_dir = f"{name}-{self._meta.version}"
7878

7979
files_to_add = self.find_files_to_add(exclude_build=False)
8080

tests/masonry/builders/test_complete.py

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ def test_module_src() -> None:
432432
assert sdist.exists()
433433

434434
with tarfile.open(str(sdist), "r") as tar:
435-
assert "module-src-0.1/src/module_src.py" in tar.getnames()
435+
assert "module_src-0.1/src/module_src.py" in tar.getnames()
436436

437437
whl = module_path / "dist" / "module_src-0.1-py2.py3-none-any.whl"
438438

@@ -456,7 +456,7 @@ def test_package_src() -> None:
456456
assert sdist.exists()
457457

458458
with tarfile.open(str(sdist), "r") as tar:
459-
assert "package-src-0.1/src/package_src/module.py" in tar.getnames()
459+
assert "package_src-0.1/src/package_src/module.py" in tar.getnames()
460460

461461
whl = module_path / "dist" / "package_src-0.1-py2.py3-none-any.whl"
462462

@@ -481,8 +481,8 @@ def test_split_source() -> None:
481481
assert sdist.exists()
482482

483483
with tarfile.open(str(sdist), "r") as tar:
484-
assert "split-source-0.1/lib_a/module_a/__init__.py" in tar.getnames()
485-
assert "split-source-0.1/lib_b/module_b/__init__.py" in tar.getnames()
484+
assert "split_source-0.1/lib_a/module_a/__init__.py" in tar.getnames()
485+
assert "split_source-0.1/lib_b/module_b/__init__.py" in tar.getnames()
486486

487487
whl = module_path / "dist" / "split_source-0.1-py3-none-any.whl"
488488

@@ -529,23 +529,23 @@ def test_package_with_include(mocker: MockerFixture) -> None:
529529
with tarfile.open(str(sdist), "r") as tar:
530530
names = tar.getnames()
531531
assert len(names) == len(set(names))
532-
assert "with-include-1.2.3/LICENSE" in names
533-
assert "with-include-1.2.3/README.rst" in names
534-
assert "with-include-1.2.3/extra_dir/__init__.py" in names
535-
assert "with-include-1.2.3/extra_dir/vcs_excluded.txt" in names
536-
assert "with-include-1.2.3/extra_dir/sub_pkg/__init__.py" in names
537-
assert "with-include-1.2.3/extra_dir/sub_pkg/vcs_excluded.txt" not in names
538-
assert "with-include-1.2.3/my_module.py" in names
539-
assert "with-include-1.2.3/notes.txt" in names
540-
assert "with-include-1.2.3/package_with_include/__init__.py" in names
541-
assert "with-include-1.2.3/tests/__init__.py" in names
542-
assert "with-include-1.2.3/pyproject.toml" in names
543-
assert "with-include-1.2.3/setup.py" in names
544-
assert "with-include-1.2.3/PKG-INFO" in names
545-
assert "with-include-1.2.3/for_wheel_only/__init__.py" not in names
546-
assert "with-include-1.2.3/src/src_package/__init__.py" in names
547-
548-
file = tar.extractfile("with-include-1.2.3/setup.py")
532+
assert "with_include-1.2.3/LICENSE" in names
533+
assert "with_include-1.2.3/README.rst" in names
534+
assert "with_include-1.2.3/extra_dir/__init__.py" in names
535+
assert "with_include-1.2.3/extra_dir/vcs_excluded.txt" in names
536+
assert "with_include-1.2.3/extra_dir/sub_pkg/__init__.py" in names
537+
assert "with_include-1.2.3/extra_dir/sub_pkg/vcs_excluded.txt" not in names
538+
assert "with_include-1.2.3/my_module.py" in names
539+
assert "with_include-1.2.3/notes.txt" in names
540+
assert "with_include-1.2.3/package_with_include/__init__.py" in names
541+
assert "with_include-1.2.3/tests/__init__.py" in names
542+
assert "with_include-1.2.3/pyproject.toml" in names
543+
assert "with_include-1.2.3/setup.py" in names
544+
assert "with_include-1.2.3/PKG-INFO" in names
545+
assert "with_include-1.2.3/for_wheel_only/__init__.py" not in names
546+
assert "with_include-1.2.3/src/src_package/__init__.py" in names
547+
548+
file = tar.extractfile("with_include-1.2.3/setup.py")
549549
assert file
550550
setup = file.read()
551551
setup_ast = ast.parse(setup)
@@ -596,24 +596,24 @@ def test_respect_format_for_explicit_included_files() -> None:
596596
with tarfile.open(str(sdist), "r") as tar:
597597
names = tar.getnames()
598598
assert (
599-
"exclude-whl-include-sdist-0.1.0/exclude_whl_include_sdist/__init__.py"
599+
"exclude_whl_include_sdist-0.1.0/exclude_whl_include_sdist/__init__.py"
600600
in names
601601
)
602602
assert (
603-
"exclude-whl-include-sdist-0.1.0/exclude_whl_include_sdist/compiled/source.c"
603+
"exclude_whl_include_sdist-0.1.0/exclude_whl_include_sdist/compiled/source.c"
604604
in names
605605
)
606606
assert (
607-
"exclude-whl-include-sdist-0.1.0/exclude_whl_include_sdist/compiled/source.h"
607+
"exclude_whl_include_sdist-0.1.0/exclude_whl_include_sdist/compiled/source.h"
608608
in names
609609
)
610610
assert (
611-
"exclude-whl-include-sdist-0.1.0/exclude_whl_include_sdist/cython_code.pyx"
611+
"exclude_whl_include_sdist-0.1.0/exclude_whl_include_sdist/cython_code.pyx"
612612
in names
613613
)
614-
assert "exclude-whl-include-sdist-0.1.0/pyproject.toml" in names
615-
assert "exclude-whl-include-sdist-0.1.0/setup.py" in names
616-
assert "exclude-whl-include-sdist-0.1.0/PKG-INFO" in names
614+
assert "exclude_whl_include_sdist-0.1.0/pyproject.toml" in names
615+
assert "exclude_whl_include_sdist-0.1.0/setup.py" in names
616+
assert "exclude_whl_include_sdist-0.1.0/PKG-INFO" in names
617617

618618
whl = module_path / "dist" / "exclude_whl_include_sdist-0.1.0-py3-none-any.whl"
619619

tests/masonry/builders/test_sdist.py

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ def test_package() -> None:
260260
assert sdist.exists()
261261

262262
with tarfile.open(str(sdist), "r") as tar:
263-
assert "my-package-1.2.3/LICENSE" in tar.getnames()
263+
assert "my_package-1.2.3/LICENSE" in tar.getnames()
264264

265265

266266
def test_sdist_reproducibility() -> None:
@@ -393,7 +393,7 @@ def test_with_src_module_file() -> None:
393393
assert sdist.exists()
394394

395395
with tarfile.open(str(sdist), "r") as tar:
396-
assert "module-src-0.1/src/module_src.py" in tar.getnames()
396+
assert "module_src-0.1/src/module_src.py" in tar.getnames()
397397

398398

399399
def test_with_src_module_dir() -> None:
@@ -418,8 +418,8 @@ def test_with_src_module_dir() -> None:
418418
assert sdist.exists()
419419

420420
with tarfile.open(str(sdist), "r") as tar:
421-
assert "package-src-0.1/src/package_src/__init__.py" in tar.getnames()
422-
assert "package-src-0.1/src/package_src/module.py" in tar.getnames()
421+
assert "package_src-0.1/src/package_src/__init__.py" in tar.getnames()
422+
assert "package_src-0.1/src/package_src/module.py" in tar.getnames()
423423

424424

425425
def test_default_with_excluded_data(mocker: MockerFixture) -> None:
@@ -473,18 +473,18 @@ def get_ignored_files(self, folder: Path | None = None) -> list[str]:
473473
with tarfile.open(str(sdist), "r") as tar:
474474
names = tar.getnames()
475475
assert len(names) == len(set(names))
476-
assert "my-package-1.2.3/LICENSE" in names
477-
assert "my-package-1.2.3/README.rst" in names
478-
assert "my-package-1.2.3/my_package/__init__.py" in names
479-
assert "my-package-1.2.3/my_package/data/data1.txt" in names
480-
assert "my-package-1.2.3/pyproject.toml" in names
481-
assert "my-package-1.2.3/setup.py" in names
482-
assert "my-package-1.2.3/PKG-INFO" in names
476+
assert "my_package-1.2.3/LICENSE" in names
477+
assert "my_package-1.2.3/README.rst" in names
478+
assert "my_package-1.2.3/my_package/__init__.py" in names
479+
assert "my_package-1.2.3/my_package/data/data1.txt" in names
480+
assert "my_package-1.2.3/pyproject.toml" in names
481+
assert "my_package-1.2.3/setup.py" in names
482+
assert "my_package-1.2.3/PKG-INFO" in names
483483
# all last modified times should be set to a valid timestamp
484484
for tarinfo in tar.getmembers():
485485
if tarinfo.name in [
486-
"my-package-1.2.3/setup.py",
487-
"my-package-1.2.3/PKG-INFO",
486+
"my_package-1.2.3/setup.py",
487+
"my_package-1.2.3/PKG-INFO",
488488
]:
489489
# generated files have timestamp set to 0
490490
assert tarinfo.mtime == 0
@@ -506,23 +506,23 @@ def test_src_excluded_nested_data() -> None:
506506
with tarfile.open(str(sdist), "r") as tar:
507507
names = tar.getnames()
508508
assert len(names) == len(set(names))
509-
assert "my-package-1.2.3/LICENSE" in names
510-
assert "my-package-1.2.3/README.rst" in names
511-
assert "my-package-1.2.3/pyproject.toml" in names
512-
assert "my-package-1.2.3/setup.py" in names
513-
assert "my-package-1.2.3/PKG-INFO" in names
514-
assert "my-package-1.2.3/my_package/__init__.py" in names
515-
assert "my-package-1.2.3/my_package/data/sub_data/data2.txt" not in names
516-
assert "my-package-1.2.3/my_package/data/sub_data/data3.txt" not in names
517-
assert "my-package-1.2.3/my_package/data/data1.txt" not in names
518-
assert "my-package-1.2.3/my_package/data/data2.txt" in names
519-
assert "my-package-1.2.3/my_package/puplic/publicdata.txt" in names
520-
assert "my-package-1.2.3/my_package/public/item1/itemdata1.txt" not in names
509+
assert "my_package-1.2.3/LICENSE" in names
510+
assert "my_package-1.2.3/README.rst" in names
511+
assert "my_package-1.2.3/pyproject.toml" in names
512+
assert "my_package-1.2.3/setup.py" in names
513+
assert "my_package-1.2.3/PKG-INFO" in names
514+
assert "my_package-1.2.3/my_package/__init__.py" in names
515+
assert "my_package-1.2.3/my_package/data/sub_data/data2.txt" not in names
516+
assert "my_package-1.2.3/my_package/data/sub_data/data3.txt" not in names
517+
assert "my_package-1.2.3/my_package/data/data1.txt" not in names
518+
assert "my_package-1.2.3/my_package/data/data2.txt" in names
519+
assert "my_package-1.2.3/my_package/puplic/publicdata.txt" in names
520+
assert "my_package-1.2.3/my_package/public/item1/itemdata1.txt" not in names
521521
assert (
522-
"my-package-1.2.3/my_package/public/item1/subitem/subitemdata.txt"
522+
"my_package-1.2.3/my_package/public/item1/subitem/subitemdata.txt"
523523
not in names
524524
)
525-
assert "my-package-1.2.3/my_package/public/item2/itemdata2.txt" not in names
525+
assert "my_package-1.2.3/my_package/public/item2/itemdata2.txt" not in names
526526

527527

528528
def test_proper_python_requires_if_two_digits_precision_version_specified() -> None:
@@ -559,8 +559,8 @@ def test_includes() -> None:
559559
assert sdist.exists()
560560

561561
with tarfile.open(str(sdist), "r") as tar:
562-
assert "with-include-1.2.3/extra_dir/vcs_excluded.txt" in tar.getnames()
563-
assert "with-include-1.2.3/notes.txt" in tar.getnames()
562+
assert "with_include-1.2.3/extra_dir/vcs_excluded.txt" in tar.getnames()
563+
assert "with_include-1.2.3/notes.txt" in tar.getnames()
564564

565565

566566
def test_includes_with_inline_table() -> None:
@@ -580,10 +580,10 @@ def test_includes_with_inline_table() -> None:
580580
assert sdist.exists()
581581

582582
with tarfile.open(str(sdist), "r") as tar:
583-
assert "with-include-1.2.3/both.txt" in tar.getnames()
584-
assert "with-include-1.2.3/wheel_only.txt" not in tar.getnames()
585-
assert "with-include-1.2.3/tests/__init__.py" in tar.getnames()
586-
assert "with-include-1.2.3/tests/test_foo/test.py" in tar.getnames()
583+
assert "with_include-1.2.3/both.txt" in tar.getnames()
584+
assert "with_include-1.2.3/wheel_only.txt" not in tar.getnames()
585+
assert "with_include-1.2.3/tests/__init__.py" in tar.getnames()
586+
assert "with_include-1.2.3/tests/test_foo/test.py" in tar.getnames()
587587

588588

589589
def test_excluded_subpackage() -> None:
@@ -614,9 +614,9 @@ def test_sdist_package_pep_561_stub_only() -> None:
614614

615615
with tarfile.open(str(sdist), "r") as tar:
616616
names = tar.getnames()
617-
assert "pep-561-stubs-0.1/pkg-stubs/__init__.pyi" in names
618-
assert "pep-561-stubs-0.1/pkg-stubs/module.pyi" in names
619-
assert "pep-561-stubs-0.1/pkg-stubs/subpkg/__init__.pyi" in names
617+
assert "pep_561_stubs-0.1/pkg-stubs/__init__.pyi" in names
618+
assert "pep_561_stubs-0.1/pkg-stubs/module.pyi" in names
619+
assert "pep_561_stubs-0.1/pkg-stubs/subpkg/__init__.pyi" in names
620620

621621

622622
def test_sdist_disable_setup_py() -> None:
@@ -632,10 +632,10 @@ def test_sdist_disable_setup_py() -> None:
632632

633633
with tarfile.open(str(sdist), "r") as tar:
634634
assert set(tar.getnames()) == {
635-
"my-package-1.2.3/README.rst",
636-
"my-package-1.2.3/pyproject.toml",
637-
"my-package-1.2.3/PKG-INFO",
638-
"my-package-1.2.3/my_package/__init__.py",
635+
"my_package-1.2.3/README.rst",
636+
"my_package-1.2.3/pyproject.toml",
637+
"my_package-1.2.3/PKG-INFO",
638+
"my_package-1.2.3/my_package/__init__.py",
639639
}
640640

641641

tests/testutils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ def validate_wheel_contents(
7575
def validate_sdist_contents(
7676
name: str, version: str, path: str, files: list[str]
7777
) -> None:
78+
escaped_name = name.replace("-", "_")
7879
with tarfile.open(path) as tar:
7980
namelist = tar.getnames()
8081
for filename in files:
81-
assert f"{name}-{version}/{filename}" in namelist
82+
assert f"{escaped_name}-{version}/{filename}" in namelist

0 commit comments

Comments
 (0)