diff --git a/src/poetry/core/masonry/builders/sdist.py b/src/poetry/core/masonry/builders/sdist.py index fca329d56..a7910882c 100644 --- a/src/poetry/core/masonry/builders/sdist.py +++ b/src/poetry/core/masonry/builders/sdist.py @@ -74,7 +74,7 @@ def build( ) try: - tar_dir = f"{self._package.pretty_name}-{self._meta.version}" + tar_dir = f"{name}-{self._meta.version}" files_to_add = self.find_files_to_add(exclude_build=False) diff --git a/tests/masonry/builders/test_complete.py b/tests/masonry/builders/test_complete.py index 2d0f29026..4b753a0fa 100644 --- a/tests/masonry/builders/test_complete.py +++ b/tests/masonry/builders/test_complete.py @@ -432,7 +432,7 @@ def test_module_src() -> None: assert sdist.exists() with tarfile.open(str(sdist), "r") as tar: - assert "module-src-0.1/src/module_src.py" in tar.getnames() + assert "module_src-0.1/src/module_src.py" in tar.getnames() whl = module_path / "dist" / "module_src-0.1-py2.py3-none-any.whl" @@ -456,7 +456,7 @@ def test_package_src() -> None: assert sdist.exists() with tarfile.open(str(sdist), "r") as tar: - assert "package-src-0.1/src/package_src/module.py" in tar.getnames() + assert "package_src-0.1/src/package_src/module.py" in tar.getnames() whl = module_path / "dist" / "package_src-0.1-py2.py3-none-any.whl" @@ -481,8 +481,8 @@ def test_split_source() -> None: assert sdist.exists() with tarfile.open(str(sdist), "r") as tar: - assert "split-source-0.1/lib_a/module_a/__init__.py" in tar.getnames() - assert "split-source-0.1/lib_b/module_b/__init__.py" in tar.getnames() + assert "split_source-0.1/lib_a/module_a/__init__.py" in tar.getnames() + assert "split_source-0.1/lib_b/module_b/__init__.py" in tar.getnames() whl = module_path / "dist" / "split_source-0.1-py3-none-any.whl" @@ -529,23 +529,23 @@ def test_package_with_include(mocker: MockerFixture) -> None: with tarfile.open(str(sdist), "r") as tar: names = tar.getnames() assert len(names) == len(set(names)) - assert "with-include-1.2.3/LICENSE" in names - assert "with-include-1.2.3/README.rst" in names - assert "with-include-1.2.3/extra_dir/__init__.py" in names - assert "with-include-1.2.3/extra_dir/vcs_excluded.txt" in names - assert "with-include-1.2.3/extra_dir/sub_pkg/__init__.py" in names - assert "with-include-1.2.3/extra_dir/sub_pkg/vcs_excluded.txt" not in names - assert "with-include-1.2.3/my_module.py" in names - assert "with-include-1.2.3/notes.txt" in names - assert "with-include-1.2.3/package_with_include/__init__.py" in names - assert "with-include-1.2.3/tests/__init__.py" in names - assert "with-include-1.2.3/pyproject.toml" in names - assert "with-include-1.2.3/setup.py" in names - assert "with-include-1.2.3/PKG-INFO" in names - assert "with-include-1.2.3/for_wheel_only/__init__.py" not in names - assert "with-include-1.2.3/src/src_package/__init__.py" in names - - file = tar.extractfile("with-include-1.2.3/setup.py") + assert "with_include-1.2.3/LICENSE" in names + assert "with_include-1.2.3/README.rst" in names + assert "with_include-1.2.3/extra_dir/__init__.py" in names + assert "with_include-1.2.3/extra_dir/vcs_excluded.txt" in names + assert "with_include-1.2.3/extra_dir/sub_pkg/__init__.py" in names + assert "with_include-1.2.3/extra_dir/sub_pkg/vcs_excluded.txt" not in names + assert "with_include-1.2.3/my_module.py" in names + assert "with_include-1.2.3/notes.txt" in names + assert "with_include-1.2.3/package_with_include/__init__.py" in names + assert "with_include-1.2.3/tests/__init__.py" in names + assert "with_include-1.2.3/pyproject.toml" in names + assert "with_include-1.2.3/setup.py" in names + assert "with_include-1.2.3/PKG-INFO" in names + assert "with_include-1.2.3/for_wheel_only/__init__.py" not in names + assert "with_include-1.2.3/src/src_package/__init__.py" in names + + file = tar.extractfile("with_include-1.2.3/setup.py") assert file setup = file.read() setup_ast = ast.parse(setup) @@ -596,24 +596,24 @@ def test_respect_format_for_explicit_included_files() -> None: with tarfile.open(str(sdist), "r") as tar: names = tar.getnames() assert ( - "exclude-whl-include-sdist-0.1.0/exclude_whl_include_sdist/__init__.py" + "exclude_whl_include_sdist-0.1.0/exclude_whl_include_sdist/__init__.py" in names ) assert ( - "exclude-whl-include-sdist-0.1.0/exclude_whl_include_sdist/compiled/source.c" + "exclude_whl_include_sdist-0.1.0/exclude_whl_include_sdist/compiled/source.c" in names ) assert ( - "exclude-whl-include-sdist-0.1.0/exclude_whl_include_sdist/compiled/source.h" + "exclude_whl_include_sdist-0.1.0/exclude_whl_include_sdist/compiled/source.h" in names ) assert ( - "exclude-whl-include-sdist-0.1.0/exclude_whl_include_sdist/cython_code.pyx" + "exclude_whl_include_sdist-0.1.0/exclude_whl_include_sdist/cython_code.pyx" in names ) - assert "exclude-whl-include-sdist-0.1.0/pyproject.toml" in names - assert "exclude-whl-include-sdist-0.1.0/setup.py" in names - assert "exclude-whl-include-sdist-0.1.0/PKG-INFO" in names + assert "exclude_whl_include_sdist-0.1.0/pyproject.toml" in names + assert "exclude_whl_include_sdist-0.1.0/setup.py" in names + assert "exclude_whl_include_sdist-0.1.0/PKG-INFO" in names whl = module_path / "dist" / "exclude_whl_include_sdist-0.1.0-py3-none-any.whl" diff --git a/tests/masonry/builders/test_sdist.py b/tests/masonry/builders/test_sdist.py index ba56df925..ff6110278 100644 --- a/tests/masonry/builders/test_sdist.py +++ b/tests/masonry/builders/test_sdist.py @@ -260,7 +260,7 @@ def test_package() -> None: assert sdist.exists() with tarfile.open(str(sdist), "r") as tar: - assert "my-package-1.2.3/LICENSE" in tar.getnames() + assert "my_package-1.2.3/LICENSE" in tar.getnames() def test_sdist_reproducibility() -> None: @@ -393,7 +393,7 @@ def test_with_src_module_file() -> None: assert sdist.exists() with tarfile.open(str(sdist), "r") as tar: - assert "module-src-0.1/src/module_src.py" in tar.getnames() + assert "module_src-0.1/src/module_src.py" in tar.getnames() def test_with_src_module_dir() -> None: @@ -418,8 +418,8 @@ def test_with_src_module_dir() -> None: assert sdist.exists() with tarfile.open(str(sdist), "r") as tar: - assert "package-src-0.1/src/package_src/__init__.py" in tar.getnames() - assert "package-src-0.1/src/package_src/module.py" in tar.getnames() + assert "package_src-0.1/src/package_src/__init__.py" in tar.getnames() + assert "package_src-0.1/src/package_src/module.py" in tar.getnames() def test_default_with_excluded_data(mocker: MockerFixture) -> None: @@ -473,18 +473,18 @@ def get_ignored_files(self, folder: Path | None = None) -> list[str]: with tarfile.open(str(sdist), "r") as tar: names = tar.getnames() assert len(names) == len(set(names)) - assert "my-package-1.2.3/LICENSE" in names - assert "my-package-1.2.3/README.rst" in names - assert "my-package-1.2.3/my_package/__init__.py" in names - assert "my-package-1.2.3/my_package/data/data1.txt" in names - assert "my-package-1.2.3/pyproject.toml" in names - assert "my-package-1.2.3/setup.py" in names - assert "my-package-1.2.3/PKG-INFO" in names + assert "my_package-1.2.3/LICENSE" in names + assert "my_package-1.2.3/README.rst" in names + assert "my_package-1.2.3/my_package/__init__.py" in names + assert "my_package-1.2.3/my_package/data/data1.txt" in names + assert "my_package-1.2.3/pyproject.toml" in names + assert "my_package-1.2.3/setup.py" in names + assert "my_package-1.2.3/PKG-INFO" in names # all last modified times should be set to a valid timestamp for tarinfo in tar.getmembers(): if tarinfo.name in [ - "my-package-1.2.3/setup.py", - "my-package-1.2.3/PKG-INFO", + "my_package-1.2.3/setup.py", + "my_package-1.2.3/PKG-INFO", ]: # generated files have timestamp set to 0 assert tarinfo.mtime == 0 @@ -506,23 +506,23 @@ def test_src_excluded_nested_data() -> None: with tarfile.open(str(sdist), "r") as tar: names = tar.getnames() assert len(names) == len(set(names)) - assert "my-package-1.2.3/LICENSE" in names - assert "my-package-1.2.3/README.rst" in names - assert "my-package-1.2.3/pyproject.toml" in names - assert "my-package-1.2.3/setup.py" in names - assert "my-package-1.2.3/PKG-INFO" in names - assert "my-package-1.2.3/my_package/__init__.py" in names - assert "my-package-1.2.3/my_package/data/sub_data/data2.txt" not in names - assert "my-package-1.2.3/my_package/data/sub_data/data3.txt" not in names - assert "my-package-1.2.3/my_package/data/data1.txt" not in names - assert "my-package-1.2.3/my_package/data/data2.txt" in names - assert "my-package-1.2.3/my_package/puplic/publicdata.txt" in names - assert "my-package-1.2.3/my_package/public/item1/itemdata1.txt" not in names + assert "my_package-1.2.3/LICENSE" in names + assert "my_package-1.2.3/README.rst" in names + assert "my_package-1.2.3/pyproject.toml" in names + assert "my_package-1.2.3/setup.py" in names + assert "my_package-1.2.3/PKG-INFO" in names + assert "my_package-1.2.3/my_package/__init__.py" in names + assert "my_package-1.2.3/my_package/data/sub_data/data2.txt" not in names + assert "my_package-1.2.3/my_package/data/sub_data/data3.txt" not in names + assert "my_package-1.2.3/my_package/data/data1.txt" not in names + assert "my_package-1.2.3/my_package/data/data2.txt" in names + assert "my_package-1.2.3/my_package/puplic/publicdata.txt" in names + assert "my_package-1.2.3/my_package/public/item1/itemdata1.txt" not in names assert ( - "my-package-1.2.3/my_package/public/item1/subitem/subitemdata.txt" + "my_package-1.2.3/my_package/public/item1/subitem/subitemdata.txt" not in names ) - assert "my-package-1.2.3/my_package/public/item2/itemdata2.txt" not in names + assert "my_package-1.2.3/my_package/public/item2/itemdata2.txt" not in names def test_proper_python_requires_if_two_digits_precision_version_specified() -> None: @@ -559,8 +559,8 @@ def test_includes() -> None: assert sdist.exists() with tarfile.open(str(sdist), "r") as tar: - assert "with-include-1.2.3/extra_dir/vcs_excluded.txt" in tar.getnames() - assert "with-include-1.2.3/notes.txt" in tar.getnames() + assert "with_include-1.2.3/extra_dir/vcs_excluded.txt" in tar.getnames() + assert "with_include-1.2.3/notes.txt" in tar.getnames() def test_includes_with_inline_table() -> None: @@ -580,10 +580,10 @@ def test_includes_with_inline_table() -> None: assert sdist.exists() with tarfile.open(str(sdist), "r") as tar: - assert "with-include-1.2.3/both.txt" in tar.getnames() - assert "with-include-1.2.3/wheel_only.txt" not in tar.getnames() - assert "with-include-1.2.3/tests/__init__.py" in tar.getnames() - assert "with-include-1.2.3/tests/test_foo/test.py" in tar.getnames() + assert "with_include-1.2.3/both.txt" in tar.getnames() + assert "with_include-1.2.3/wheel_only.txt" not in tar.getnames() + assert "with_include-1.2.3/tests/__init__.py" in tar.getnames() + assert "with_include-1.2.3/tests/test_foo/test.py" in tar.getnames() def test_excluded_subpackage() -> None: @@ -614,9 +614,9 @@ def test_sdist_package_pep_561_stub_only() -> None: with tarfile.open(str(sdist), "r") as tar: names = tar.getnames() - assert "pep-561-stubs-0.1/pkg-stubs/__init__.pyi" in names - assert "pep-561-stubs-0.1/pkg-stubs/module.pyi" in names - assert "pep-561-stubs-0.1/pkg-stubs/subpkg/__init__.pyi" in names + assert "pep_561_stubs-0.1/pkg-stubs/__init__.pyi" in names + assert "pep_561_stubs-0.1/pkg-stubs/module.pyi" in names + assert "pep_561_stubs-0.1/pkg-stubs/subpkg/__init__.pyi" in names def test_sdist_disable_setup_py() -> None: @@ -632,10 +632,10 @@ def test_sdist_disable_setup_py() -> None: with tarfile.open(str(sdist), "r") as tar: assert set(tar.getnames()) == { - "my-package-1.2.3/README.rst", - "my-package-1.2.3/pyproject.toml", - "my-package-1.2.3/PKG-INFO", - "my-package-1.2.3/my_package/__init__.py", + "my_package-1.2.3/README.rst", + "my_package-1.2.3/pyproject.toml", + "my_package-1.2.3/PKG-INFO", + "my_package-1.2.3/my_package/__init__.py", } diff --git a/tests/testutils.py b/tests/testutils.py index f29f6004e..d43b4abf9 100644 --- a/tests/testutils.py +++ b/tests/testutils.py @@ -75,7 +75,8 @@ def validate_wheel_contents( def validate_sdist_contents( name: str, version: str, path: str, files: list[str] ) -> None: + escaped_name = name.replace("-", "_") with tarfile.open(path) as tar: namelist = tar.getnames() for filename in files: - assert f"{name}-{version}/{filename}" in namelist + assert f"{escaped_name}-{version}/{filename}" in namelist