* Revert to running tests from from a temp dir when test-sources is unset
* Fix placeholders error message, add test for it
* Add back {project} placeholders to CIBW_TEST_COMMAND in tests & docs
* Update test/test_before_test.py
---------
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
37 lines
1.5 KiB
Python
37 lines
1.5 KiB
Python
# this file is copied to the testing cwd, to raise the below error message if
|
|
# pytest/unittest is run from there.
|
|
|
|
import sys
|
|
import unittest
|
|
from typing import NoReturn
|
|
|
|
|
|
class TestStringMethods(unittest.TestCase):
|
|
def test_fail(self) -> NoReturn:
|
|
if sys.platform == "ios":
|
|
msg = (
|
|
"You tried to run tests from the testbed app's working "
|
|
"directory, without specifying `test-sources`. "
|
|
"On iOS, you must copy your test files to the testbed app by "
|
|
"setting the `test-sources` option in your cibuildwheel "
|
|
"configuration."
|
|
)
|
|
else:
|
|
msg = (
|
|
"cibuildwheel executes tests from a different working directory to "
|
|
"your project. This ensures only your wheel is imported, preventing "
|
|
"Python from accessing files that haven't been packaged into the "
|
|
"wheel. "
|
|
"\n\n"
|
|
"Please specify a path to your tests when invoking pytest "
|
|
"using the {project} placeholder, e.g. `pytest {project}` or "
|
|
"`pytest {project}/tests`. cibuildwheel will replace {project} with "
|
|
"the path to your project. "
|
|
"\n\n"
|
|
"Alternatively, you can specify your test files using the "
|
|
"`test-sources` option, and cibuildwheel will copy them to the "
|
|
"working directory for testing."
|
|
)
|
|
|
|
self.fail(msg)
|