mirror of https://github.com/pypa/hatch.git
57 lines
2.1 KiB
Python
57 lines
2.1 KiB
Python
from __future__ import annotations
|
|
|
|
import platform
|
|
|
|
import pytest
|
|
|
|
from hatchling.builders.macos import normalize_macos_version, process_macos_plat_tag
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
('plat', 'arch', 'compat', 'archflags', 'deptarget', 'expected'),
|
|
[
|
|
('macosx_10_9_x86_64', 'x86_64', False, '', '', 'macosx_10_9_x86_64'),
|
|
('macosx_11_9_x86_64', 'x86_64', False, '', '', 'macosx_11_0_x86_64'),
|
|
('macosx_12_0_x86_64', 'x86_64', True, '', '', 'macosx_10_16_x86_64'),
|
|
('macosx_10_9_arm64', 'arm64', False, '', '', 'macosx_11_0_arm64'),
|
|
('macosx_10_9_arm64', 'arm64', False, '-arch x86_64 -arch arm64', '', 'macosx_10_9_universal2'),
|
|
('macosx_10_9_x86_64', 'x86_64', False, '-arch x86_64 -arch arm64', '', 'macosx_10_9_universal2'),
|
|
('macosx_10_9_x86_64', 'x86_64', False, '-arch x86_64 -arch arm64', '12', 'macosx_12_0_universal2'),
|
|
('macosx_10_9_x86_64', 'x86_64', False, '-arch arm64', '12.4', 'macosx_12_0_arm64'),
|
|
('macosx_10_9_x86_64', 'x86_64', False, '-arch arm64', '10.12', 'macosx_11_0_arm64'),
|
|
('macosx_10_9_x86_64', 'x86_64', True, '-arch arm64', '10.12', 'macosx_10_16_arm64'),
|
|
],
|
|
)
|
|
def test_process_macos_plat_tag(
|
|
monkeypatch: pytest.MonkeyPatch,
|
|
*,
|
|
plat: str,
|
|
arch: str,
|
|
compat: bool,
|
|
archflags: str,
|
|
deptarget: str,
|
|
expected: str,
|
|
) -> None:
|
|
monkeypatch.setenv('ARCHFLAGS', archflags)
|
|
monkeypatch.setenv('MACOSX_DEPLOYMENT_TARGET', deptarget)
|
|
monkeypatch.setattr(platform, 'machine', lambda: arch)
|
|
|
|
assert process_macos_plat_tag(plat, compat=compat) == expected
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
('version', 'arm', 'compat', 'expected'),
|
|
[
|
|
('10_9', False, False, '10_9'),
|
|
('10_9', False, True, '10_9'),
|
|
('10_9', True, False, '11_0'),
|
|
('10_9', True, True, '10_9'),
|
|
('11_3', False, False, '11_0'),
|
|
('12_3', True, False, '12_0'),
|
|
('12_3', False, True, '10_16'),
|
|
('12_3', True, True, '10_16'),
|
|
],
|
|
)
|
|
def check_normalization(*, version: str, arm: bool, compat: bool, expected: str) -> None:
|
|
assert normalize_macos_version(version, arm=arm, compat=compat) == expected
|