def test_wide_unicode(self, unicode_size, maxunicode, version, result, monkeypatch): config = {"Py_DEBUG": 0, "WITH_PYMALLOC": 0, "Py_UNICODE_SIZE": unicode_size} monkeypatch.setattr(sysconfig, "get_config_var", config.__getitem__) monkeypatch.setattr(sys, "maxunicode", maxunicode) base_abi = "cp" + tags._version_nodot(version) expected = [base_abi + "u" if result else base_abi] assert tags._cpython_abis(version) == expected
def test_debug(self, py_debug, gettotalrefcount, result, monkeypatch): config = {"Py_DEBUG": py_debug, "WITH_PYMALLOC": 0, "Py_UNICODE_SIZE": 2} monkeypatch.setattr(sysconfig, "get_config_var", config.__getitem__) if gettotalrefcount: monkeypatch.setattr(sys, "gettotalrefcount", 1, raising=False) expected = ["cp37d" if result else "cp37"] assert tags._cpython_abis((3, 7)) == expected
def test_pymalloc(self, pymalloc, version, result, monkeypatch): config = { "Py_DEBUG": 0, "WITH_PYMALLOC": pymalloc, "Py_UNICODE_SIZE": 2 } monkeypatch.setattr(sysconfig, "get_config_var", config.__getitem__) base_abi = "cp{}{}".format(version[0], version[1]) expected = [base_abi + "m" if result else base_abi] assert tags._cpython_abis(version) == expected
def test_linux_cpython(self, mock_interpreter_name, monkeypatch): if mock_interpreter_name("CPython"): monkeypatch.setattr(tags, "_cpython_abis", lambda *a: ["cp33m"]) if platform.system() != "Linux": monkeypatch.setattr(platform, "system", lambda: "Linux") monkeypatch.setattr(tags, "_linux_platforms", lambda: ["linux_x86_64"]) abis = list(tags._cpython_abis(sys.version_info[:2])) platforms = list(tags._linux_platforms()) result = list(tags.sys_tags()) expected_interpreter = "cp" + tags._version_nodot(sys.version_info[:2]) assert len(abis) == 1 assert result[0] == tags.Tag(expected_interpreter, abis[0], platforms[0]) expected = tags.Tag( "py" + tags._version_nodot((sys.version_info[0], 0)), "none", "any" ) assert result[-1] == expected
def test_mac_cpython(self, mock_interpreter_name, monkeypatch): if mock_interpreter_name("CPython"): monkeypatch.setattr(tags, "_cpython_abis", lambda *a: ["cp33m"]) if platform.system() != "Darwin": monkeypatch.setattr(platform, "system", lambda: "Darwin") monkeypatch.setattr(tags, "mac_platforms", lambda: ["macosx_10_5_x86_64"]) abis = tags._cpython_abis(sys.version_info[:2]) platforms = list(tags.mac_platforms()) result = list(tags.sys_tags()) assert len(abis) == 1 assert result[0] == tags.Tag( "cp" + tags._version_nodot(sys.version_info[:2]), abis[0], platforms[0] ) assert result[-1] == tags.Tag( "py" + tags._version_nodot((sys.version_info[0], 0)), "none", "any" )
def test_windows_cpython(self, mock_interpreter_name, monkeypatch): if mock_interpreter_name("CPython"): monkeypatch.setattr(tags, "_cpython_abis", lambda *a: ["cp33m"]) if platform.system() != "Windows": monkeypatch.setattr(platform, "system", lambda: "Windows") monkeypatch.setattr(tags, "_generic_platforms", lambda: ["win_amd64"]) abis = list(tags._cpython_abis(sys.version_info[:2])) platforms = list(tags._generic_platforms()) result = list(tags.sys_tags()) interpreter = "cp{major}{minor}".format(major=sys.version_info[0], minor=sys.version_info[1]) assert len(abis) == 1 expected = tags.Tag(interpreter, abis[0], platforms[0]) assert result[0] == expected expected = tags.Tag("py{}0".format(sys.version_info[0]), "none", "any") assert result[-1] == expected
def test_sys_tags_linux_cpython(monkeypatch): if platform.python_implementation() != "CPython": monkeypatch.setattr(platform, "python_implementation", lambda: "CPython") monkeypatch.setattr(tags, "_cpython_abis", lambda py_version: ["cp33m"]) if platform.system() != "Linux": monkeypatch.setattr(platform, "system", lambda: "Linux") monkeypatch.setattr(tags, "_linux_platforms", lambda: ["linux_x86_64"]) abis = tags._cpython_abis(sys.version_info[:2]) platforms = tags._linux_platforms() result = list(tags.sys_tags()) expected_interpreter = "cp{major}{minor}".format( major=sys.version_info[0], minor=sys.version_info[1] ) assert len(abis) == 1 assert result[0] == tags.Tag(expected_interpreter, abis[0], platforms[0]) expected = tags.Tag("py{}0".format(sys.version_info[0]), "none", "any") assert result[-1] == expected
def test_sys_tags_on_mac_cpython(monkeypatch): if platform.python_implementation() != "CPython": monkeypatch.setattr(platform, "python_implementation", lambda: "CPython") monkeypatch.setattr(tags, "_cpython_abis", lambda py_version: ["cp33m"]) if platform.system() != "Darwin": monkeypatch.setattr(platform, "system", lambda: "Darwin") monkeypatch.setattr(tags, "_mac_platforms", lambda: ["macosx_10_5_x86_64"]) abis = tags._cpython_abis(sys.version_info[:2]) platforms = tags._mac_platforms() result = list(tags.sys_tags()) assert len(abis) == 1 assert result[0] == tags.Tag( "cp{major}{minor}".format(major=sys.version_info[0], minor=sys.version_info[1]), abis[0], platforms[0], ) assert result[-1] == tags.Tag("py{}0".format(sys.version_info[0]), "none", "any")
def test__debug_cp38(self, debug, expected, monkeypatch): config = {"Py_DEBUG": debug} monkeypatch.setattr(sysconfig, "get_config_var", config.__getitem__) assert tags._cpython_abis((3, 8)) == expected
def test_debug_file_extension(self, monkeypatch): config = {"Py_DEBUG": None} monkeypatch.setattr(sysconfig, "get_config_var", config.__getitem__) monkeypatch.delattr(sys, "gettotalrefcount", raising=False) monkeypatch.setattr(tags, "EXTENSION_SUFFIXES", {"_d.pyd"}) assert tags._cpython_abis((3, 8)) == ["cp38d", "cp38"]