Skip to content

Commit 557ae1b

Browse files
committed
Raise exception if abi is unrecognized, and add test
1 parent c67e2a7 commit 557ae1b

2 files changed

Lines changed: 47 additions & 1 deletion

File tree

extension_helpers/_setup_helpers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ def get_extensions(srcdir="."):
145145
version_info, version_hex = abi_to_versions(abi)
146146

147147
if version_info is None:
148-
log.warn("Unrecognized abi version for limited API: {abi}")
148+
raise ValueError(f"Unrecognized abi version for limited API: {abi}")
149149

150150
log.info(
151151
f"Targeting PEP 384 limited API supporting Python >= {version_info[0], version_info[1]}"

extension_helpers/tests/test_setup_helpers.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,3 +547,49 @@ def test_limited_api(tmp_path, config, limited_api, extension_type):
547547

548548
assert len(wheels) == 1
549549
assert ("abi3" in wheels[0]) == (limited_api is not None)
550+
551+
552+
def test_limited_api_invalid_abi(tmp_path, capsys):
553+
554+
package = _extension_test_package(
555+
tmp_path, extension_type="c", include_numpy=True, include_setup_py=False
556+
)
557+
558+
(package / "setup.cfg").write_text(
559+
dedent(
560+
"""\
561+
[metadata]
562+
name = helpers_test_package
563+
version = 0.1
564+
565+
[options]
566+
packages = find:
567+
568+
[extension-helpers]
569+
use_extension_helpers = true
570+
571+
[bdist_wheel]
572+
py_limited_api=invalid
573+
"""
574+
)
575+
)
576+
577+
(package / "pyproject.toml").write_text(
578+
dedent(
579+
"""
580+
[build-system]
581+
requires = ["setuptools>=43.0.0",
582+
"wheel"]
583+
build-backend = 'setuptools.build_meta'
584+
"""
585+
)
586+
)
587+
588+
with chdir(package):
589+
result = subprocess.run(
590+
[sys.executable, "-m", "build", "--wheel", "--no-isolation"], stderr=subprocess.PIPE
591+
)
592+
593+
assert result.stderr.endswith(
594+
b"ValueError: Unrecognized abi version for limited API: invalid\n"
595+
)

0 commit comments

Comments
 (0)