mirror of https://github.com/pypa/hatch.git
125 lines
3.3 KiB
Python
125 lines
3.3 KiB
Python
from hatchling.build import build_editable, build_sdist, build_wheel
|
|
|
|
|
|
def test_sdist(hatch, helpers, temp_dir, config_file):
|
|
config_file.model.template.plugins['default']['src-layout'] = False
|
|
config_file.save()
|
|
|
|
project_name = 'My.App'
|
|
|
|
with temp_dir.as_cwd():
|
|
result = hatch('new', project_name)
|
|
|
|
assert result.exit_code == 0, result.output
|
|
|
|
project_path = temp_dir / 'my-app'
|
|
project_config = project_path / 'pyproject.toml'
|
|
project_config.write_text(
|
|
helpers.dedent(
|
|
"""
|
|
[project]
|
|
name = 'my__app'
|
|
dynamic = [ 'version' ]
|
|
|
|
[tool.hatch.version]
|
|
path = 'my_app/__about__.py'
|
|
|
|
[tool.hatch.build.targets.sdist]
|
|
versions = '9000'
|
|
"""
|
|
)
|
|
)
|
|
|
|
build_path = project_path / 'dist'
|
|
build_path.mkdir()
|
|
|
|
with project_path.as_cwd():
|
|
expected_artifact = build_sdist(str(build_path))
|
|
|
|
build_artifacts = list(build_path.iterdir())
|
|
assert len(build_artifacts) == 1
|
|
assert expected_artifact == str(build_artifacts[0].name)
|
|
assert expected_artifact.endswith('.tar.gz')
|
|
|
|
|
|
def test_wheel(hatch, helpers, temp_dir, config_file):
|
|
config_file.model.template.plugins['default']['src-layout'] = False
|
|
config_file.save()
|
|
|
|
project_name = 'My.App'
|
|
|
|
with temp_dir.as_cwd():
|
|
result = hatch('new', project_name)
|
|
|
|
assert result.exit_code == 0, result.output
|
|
|
|
project_path = temp_dir / 'my-app'
|
|
project_config = project_path / 'pyproject.toml'
|
|
project_config.write_text(
|
|
helpers.dedent(
|
|
"""
|
|
[project]
|
|
name = 'my__app'
|
|
dynamic = [ 'version' ]
|
|
|
|
[tool.hatch.version]
|
|
path = 'my_app/__about__.py'
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
versions = '9000'
|
|
"""
|
|
)
|
|
)
|
|
|
|
build_path = project_path / 'dist'
|
|
build_path.mkdir()
|
|
|
|
with project_path.as_cwd():
|
|
expected_artifact = build_wheel(str(build_path))
|
|
|
|
build_artifacts = list(build_path.iterdir())
|
|
assert len(build_artifacts) == 1
|
|
assert expected_artifact == str(build_artifacts[0].name)
|
|
assert expected_artifact.endswith('.whl')
|
|
|
|
|
|
def test_editable(hatch, helpers, temp_dir, config_file):
|
|
config_file.model.template.plugins['default']['src-layout'] = False
|
|
config_file.save()
|
|
|
|
project_name = 'My.App'
|
|
|
|
with temp_dir.as_cwd():
|
|
result = hatch('new', project_name)
|
|
|
|
assert result.exit_code == 0, result.output
|
|
|
|
project_path = temp_dir / 'my-app'
|
|
project_config = project_path / 'pyproject.toml'
|
|
project_config.write_text(
|
|
helpers.dedent(
|
|
"""
|
|
[project]
|
|
name = 'my__app'
|
|
dynamic = [ 'version' ]
|
|
|
|
[tool.hatch.version]
|
|
path = 'my_app/__about__.py'
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
versions = '9000'
|
|
"""
|
|
)
|
|
)
|
|
|
|
build_path = project_path / 'dist'
|
|
build_path.mkdir()
|
|
|
|
with project_path.as_cwd():
|
|
expected_artifact = build_editable(str(build_path), None)
|
|
|
|
build_artifacts = list(build_path.iterdir())
|
|
assert len(build_artifacts) == 1
|
|
assert expected_artifact == str(build_artifacts[0].name)
|
|
assert expected_artifact.endswith('.whl')
|