Add test case for proper build isolation
If there's not a proper build isolation then, the wheel for `cp27mu` will pick up the `spam.so` built for `cp27m` resulting in an import error.
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
import textwrap
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from . import utils
|
||||||
|
from . import test_projects
|
||||||
|
|
||||||
|
project_with_unicode = test_projects.new_c_project(
|
||||||
|
spam_c_function_add=textwrap.dedent(r'''
|
||||||
|
{
|
||||||
|
Py_XDECREF(PyUnicode_FromStringAndSize("foo", 4));
|
||||||
|
}
|
||||||
|
'''),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test(tmp_path):
|
||||||
|
if utils.platform != 'linux':
|
||||||
|
pytest.skip('the docker test is only relevant to the linux build')
|
||||||
|
|
||||||
|
project_dir = tmp_path / 'project'
|
||||||
|
project_with_unicode.generate(project_dir)
|
||||||
|
|
||||||
|
# build the wheels
|
||||||
|
actual_wheels = utils.cibuildwheel_run(project_dir, add_env={
|
||||||
|
'CIBW_TEST_COMMAND': 'python -c "import spam"'
|
||||||
|
})
|
||||||
|
|
||||||
|
# check that the expected wheels are produced
|
||||||
|
expected_wheels = utils.expected_wheels('spam', '0.1.0')
|
||||||
|
assert set(actual_wheels) == set(expected_wheels)
|
||||||
Reference in New Issue
Block a user