54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
from . import test_projects
|
|
from . import utils
|
|
|
|
pyproject_package_file = """
|
|
[tool.poetry]
|
|
name = "dummy_package"
|
|
version = "0.1.0"
|
|
description = "dummy"
|
|
authors = ["cibuildwheel poetry test"]
|
|
classifiers=[
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Natural Language :: English",
|
|
"Programming Language :: Python :: 2.7",
|
|
"Programming Language :: Python :: 3.6",
|
|
"Programming Language :: Python :: 3.7",
|
|
"Programming Language :: Python :: 3.8",
|
|
]
|
|
license = "MIT"
|
|
[tool.poetry.dependencies]
|
|
python = ">=2.7"
|
|
[tool.poetry.dev-dependencies]
|
|
[build-system]
|
|
requires = ["poetry>=0.12"]
|
|
build-backend = "poetry.masonry.api"
|
|
"""
|
|
|
|
poetry_dummy_project = test_projects.TestProject()
|
|
poetry_dummy_project.files["dummy_package/__init__.py"] = ""
|
|
poetry_dummy_project.files["pyproject.toml"] = pyproject_package_file
|
|
|
|
|
|
def test_poetry_package(tmp_path):
|
|
|
|
# GIVEN a project that only has pyproject.toml
|
|
# managed by poetry
|
|
project_dir = tmp_path / "project"
|
|
poetry_dummy_project.generate(project_dir)
|
|
|
|
# Poetry is installed during wheels built by pip
|
|
# however, one of poetry deps require cryptography
|
|
# which fails to build in outdated pip versions
|
|
# more info: https://github.com/pyca/cryptography/issues/5101
|
|
skip_outdated_pip_images_env = {'CIBW_SKIP': 'cp27-* *-win32 *-manylinux_i686'}
|
|
|
|
# WHEN we attempt to build wheels for multiple platforms
|
|
# for dummy_package package
|
|
actual_wheels = utils.cibuildwheel_run(project_dir, add_env=skip_outdated_pip_images_env)
|
|
|
|
# THEN we should have a dummy_package wheel with version 0.1.0
|
|
expected_wheels = utils.expected_wheels("dummy_package", "0.1.0")
|
|
assert set(actual_wheels) == set(expected_wheels)
|