def test_generic_tags(): tags = list(pep425._generic_tags("sillywalk33", (3, 3), "abi", ["plat1", "plat2"])) assert tags == [ pep425.Tag("sillywalk33", "abi", "plat1"), pep425.Tag("sillywalk33", "abi", "plat2"), pep425.Tag("sillywalk33", "none", "plat1"), pep425.Tag("sillywalk33", "none", "plat2"), ]
def test_sys_tags_on_mac_pypy(monkeypatch): if platform.python_implementation() != "PyPy": monkeypatch.setattr(platform, "python_implementation", lambda: "PyPy") monkeypatch.setattr(pep425, "_pypy_interpreter", lambda: "pp360") if platform.system() != "Darwin": monkeypatch.setattr(pep425, "_mac_platforms", lambda: ["macosx_10_5_x86_64"]) interpreter = pep425._pypy_interpreter() abi = pep425._generic_abi() platforms = pep425._mac_platforms() tags = list(pep425.sys_tags()) assert tags[0] == pep425.Tag(interpreter, abi, platforms[0]) assert tags[-1] == pep425.Tag("py{}0".format(sys.version_info[0]), "none", "any")
def test_pypy_tags(monkeypatch): if platform.python_implementation() != "PyPy": monkeypatch.setattr(platform, "python_implementation", lambda: "PyPy") monkeypatch.setattr(pep425, "_pypy_interpreter", lambda: "pp360") interpreter = pep425._pypy_interpreter() tags = list(pep425._pypy_tags((3, 3), interpreter, "pypy3_60", ["plat1", "plat2"])) assert tags == [ pep425.Tag(interpreter, "pypy3_60", "plat1"), pep425.Tag(interpreter, "pypy3_60", "plat2"), pep425.Tag(interpreter, "none", "plat1"), pep425.Tag(interpreter, "none", "plat2"), ]
def test_sys_tags_on_mac_cpython(monkeypatch): if platform.python_implementation() != "CPython": monkeypatch.setattr(platform, "python_implementation", lambda: "CPython") monkeypatch.setattr(pep425, "_cpython_abi", lambda py_version: "cp33m") if platform.system() != "Darwin": monkeypatch.setattr(pep425, "_mac_platforms", lambda: ["macosx_10_5_x86_64"]) abi = pep425._cpython_abi(sys.version_info[:2]) platforms = pep425._mac_platforms() tags = list(pep425.sys_tags()) assert tags[0] == pep425.Tag( "cp{major}{minor}".format(major=sys.version_info[0], minor=sys.version_info[1]), abi, platforms[0], ) assert tags[-1] == pep425.Tag("py{}0".format(sys.version_info[0]), "none", "any")
def test_cpython_tags(): tags = list(pep425._cpython_tags((3, 3), "cp33", "cp33m", ["plat1", "plat2"])) assert tags == [ pep425.Tag("cp33", "cp33m", "plat1"), pep425.Tag("cp33", "cp33m", "plat2"), pep425.Tag("cp33", "abi3", "plat1"), pep425.Tag("cp33", "abi3", "plat2"), pep425.Tag("cp33", "none", "plat1"), pep425.Tag("cp33", "none", "plat2"), pep425.Tag("cp32", "abi3", "plat1"), pep425.Tag("cp32", "abi3", "plat2"), ]
def test_parse_tag_multi_platform(): expected = { pep425.Tag("cp37", "cp37m", platform) for platform in ( "macosx_10_6_intel", "macosx_10_9_intel", "macosx_10_9_x86_64", "macosx_10_10_intel", "macosx_10_10_x86_64", ) } given = pep425.parse_tag( "cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64" ) assert given == expected
def test_parse_wheel_tag_multi_interpreter(example_tag): expected = {example_tag, pep425.Tag("py2", "none", "any")} given = pep425.parse_wheel_tag("pip-18.0-py2.py3-none-any.whl") assert given == expected
def test_Tag_equality(): args = "py3", "none", "any" assert pep425.Tag(*args) == pep425.Tag(*args)
def test_independent_tags(): assert list(pep425._independent_tags("cp33", (3, 3), ["plat1", "plat2"])) == [ pep425.Tag("py33", "none", "plat1"), pep425.Tag("py33", "none", "plat2"), pep425.Tag("py3", "none", "plat1"), pep425.Tag("py3", "none", "plat2"), pep425.Tag("py32", "none", "plat1"), pep425.Tag("py32", "none", "plat2"), pep425.Tag("py31", "none", "plat1"), pep425.Tag("py31", "none", "plat2"), pep425.Tag("py30", "none", "plat1"), pep425.Tag("py30", "none", "plat2"), pep425.Tag("cp33", "none", "any"), pep425.Tag("py33", "none", "any"), pep425.Tag("py3", "none", "any"), pep425.Tag("py32", "none", "any"), pep425.Tag("py31", "none", "any"), pep425.Tag("py30", "none", "any"), ]
def test_Tag_lowercasing(): tag = pep425.Tag("PY3", "None", "ANY") assert tag.interpreter == "py3" assert tag.abi == "none" assert tag.platform == "any"
def example_tag(): return pep425.Tag("py3", "none", "any")