コード例 #1
0
 def test_linux_platforms_manylinux2014(self, monkeypatch):
     monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_x86_64")
     monkeypatch.setattr(platform, "machine", lambda: "x86_64")
     monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.17", raising=False)
     platforms = list(tags._linux_platforms(is_32bit=False))
     arch = platform.machine()
     expected = [
         "manylinux_2_17_" + arch,
         "manylinux2014_" + arch,
         "manylinux_2_16_" + arch,
         "manylinux_2_15_" + arch,
         "manylinux_2_14_" + arch,
         "manylinux_2_13_" + arch,
         "manylinux_2_12_" + arch,
         "manylinux2010_" + arch,
         "manylinux_2_11_" + arch,
         "manylinux_2_10_" + arch,
         "manylinux_2_9_" + arch,
         "manylinux_2_8_" + arch,
         "manylinux_2_7_" + arch,
         "manylinux_2_6_" + arch,
         "manylinux_2_5_" + arch,
         "manylinux1_" + arch,
         "linux_" + arch,
     ]
     assert platforms == expected
コード例 #2
0
ファイル: test_tags.py プロジェクト: pombredanne/packaging
 def test_linux_platforms_32_64bit_on_64bit_os(
     self, arch, is_32bit, expected, monkeypatch
 ):
     monkeypatch.setattr(distutils.util, "get_platform", lambda: arch)
     monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda *args: False)
     linux_platform = list(tags._linux_platforms(is_32bit=is_32bit))[-1]
     assert linux_platform == expected
コード例 #3
0
    def test_linux_use_manylinux_compatible(
        self, monkeypatch, manylinux_module, machine, major, minor, tf
    ):
        def manylinux_compatible(tag_major, tag_minor, tag_arch):
            if tag_major == 2 and tag_minor == 22:
                return tag_arch == "s390x"
            return False

        monkeypatch.setattr(
            tags._manylinux,
            "_get_glibc_version",
            lambda: (major, minor),
        )
        monkeypatch.setattr(sysconfig, "get_platform", lambda: f"linux_{machine}")
        monkeypatch.setattr(
            manylinux_module,
            "manylinux_compatible",
            manylinux_compatible,
            raising=False,
        )
        platforms = list(tags._linux_platforms(is_32bit=False))
        if tf:
            expected = [f"manylinux_2_22_{machine}"]
        else:
            expected = []
        expected.append(f"linux_{machine}")
        assert platforms == expected
コード例 #4
0
ファイル: test_tags.py プロジェクト: pypa/packaging
def test_linux_platforms_32bit_on_64bit_os(monkeypatch):
    is_64bit_os = distutils.util.get_platform().endswith("_x86_64")
    if platform.system() != "Linux" or not is_64bit_os:
        monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64")
        monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda *args: False)
    linux_platform = tags._linux_platforms(is_32bit=True)[-1]
    assert linux_platform == "linux_i686"
コード例 #5
0
 def test_linux_platforms_manylinux_unsupported(self, monkeypatch):
     monkeypatch.setattr(distutils.util, "get_platform",
                         lambda: "linux_x86_64")
     monkeypatch.setattr(tags, "_is_manylinux_compatible",
                         lambda *args: False)
     linux_platform = list(tags._linux_platforms(is_32bit=False))
     assert linux_platform == ["linux_x86_64"]
コード例 #6
0
 def test_linux_platforms_manylinux2014_i386_abi(self, monkeypatch):
     monkeypatch.setattr(tags._manylinux, "_glibc_version_string", lambda: "2.17")
     monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_x86_64")
     monkeypatch.setattr(
         sys,
         "executable",
         os.path.join(
             os.path.dirname(__file__),
             "manylinux",
             "hello-world-x86_64-i386",
         ),
     )
     platforms = list(tags._linux_platforms(is_32bit=True))
     expected = [
         "manylinux_2_17_i686",
         "manylinux2014_i686",
         "manylinux_2_16_i686",
         "manylinux_2_15_i686",
         "manylinux_2_14_i686",
         "manylinux_2_13_i686",
         "manylinux_2_12_i686",
         "manylinux2010_i686",
         "manylinux_2_11_i686",
         "manylinux_2_10_i686",
         "manylinux_2_9_i686",
         "manylinux_2_8_i686",
         "manylinux_2_7_i686",
         "manylinux_2_6_i686",
         "manylinux_2_5_i686",
         "manylinux1_i686",
         "linux_i686",
     ]
     assert platforms == expected
コード例 #7
0
    def test_linux_use_manylinux_compatible_none(self, monkeypatch, manylinux_module):
        def manylinux_compatible(tag_major, tag_minor, tag_arch):
            if tag_major == 2 and tag_minor < 25:
                return False
            return None

        monkeypatch.setattr(tags._manylinux, "_get_glibc_version", lambda: (2, 30))
        monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_x86_64")
        monkeypatch.setattr(
            manylinux_module,
            "manylinux_compatible",
            manylinux_compatible,
            raising=False,
        )
        platforms = list(tags._linux_platforms(is_32bit=False))
        expected = [
            "manylinux_2_30_x86_64",
            "manylinux_2_29_x86_64",
            "manylinux_2_28_x86_64",
            "manylinux_2_27_x86_64",
            "manylinux_2_26_x86_64",
            "manylinux_2_25_x86_64",
            "linux_x86_64",
        ]
        assert platforms == expected
コード例 #8
0
 def test_linux_platforms_manylinux1(self, monkeypatch):
     monkeypatch.setattr(tags, "_is_manylinux_compatible",
                         lambda name, _: name == "manylinux1")
     if platform.system() != "Linux":
         monkeypatch.setattr(distutils.util, "get_platform",
                             lambda: "linux_x86_64")
     platforms = list(tags._linux_platforms(is_32bit=False))
     assert platforms == ["manylinux1_x86_64", "linux_x86_64"]
コード例 #9
0
 def test_linux_platforms_manylinux2014_armv6l(self, monkeypatch):
     monkeypatch.setattr(tags, "_is_manylinux_compatible",
                         lambda name, _: name == "manylinux2014")
     monkeypatch.setattr(distutils.util, "get_platform",
                         lambda: "linux_armv6l")
     platforms = list(tags._linux_platforms(is_32bit=True))
     expected = ["linux_armv6l"]
     assert platforms == expected
コード例 #10
0
ファイル: test_tags.py プロジェクト: pypa/packaging
def test_linux_platforms_manylinux1(monkeypatch):
    monkeypatch.setattr(
        tags, "_is_manylinux_compatible", lambda name, _: name == "manylinux1"
    )
    if platform.system() != "Linux":
        monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64")
    platforms = tags._linux_platforms(is_32bit=False)
    assert platforms == ["manylinux1_x86_64", "linux_x86_64"]
コード例 #11
0
 def test_linux_platforms_32_64bit_on_64bit_os(
     self, arch, is_32bit, expected, monkeypatch
 ):
     monkeypatch.setattr(sysconfig, "get_platform", lambda: arch)
     monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.20", raising=False)
     monkeypatch.setattr(tags._manylinux, "_is_compatible", lambda *args: False)
     linux_platform = list(tags._linux_platforms(is_32bit=is_32bit))[-1]
     assert linux_platform == expected
コード例 #12
0
def test_linux_platforms_32bit_on_64bit_os(is_64bit_os, is_x86, monkeypatch):
    if platform.system() != "Linux" or not is_64bit_os or not is_x86:
        monkeypatch.setattr(distutils.util, "get_platform",
                            lambda: "linux_x86_64")
        monkeypatch.setattr(tags, "_is_manylinux_compatible",
                            lambda *args: False)
    linux_platform = tags._linux_platforms(is_32bit=True)[-1]
    assert linux_platform == "linux_i686"
コード例 #13
0
def test_linux_platforms_manylinux1(monkeypatch):
    monkeypatch.setattr(tags, "_is_manylinux_compatible",
                        lambda name, _: name == "manylinux1")
    if platform.system() != "Linux":
        monkeypatch.setattr(distutils.util, "get_platform",
                            lambda: "linux_x86_64")
    platforms = tags._linux_platforms(is_32bit=False)
    arch = platform.machine()
    assert platforms == ["manylinux1_" + arch, "linux_" + arch]
コード例 #14
0
ファイル: test_tags.py プロジェクト: yndj/packaging
def test_linux_platforms_manylinux2010(monkeypatch):
    monkeypatch.setattr(tags, "_is_manylinux_compatible",
                        lambda name, _: name == "manylinux2010")
    if platform.system() != "Linux":
        monkeypatch.setattr(distutils.util, "get_platform",
                            lambda: "linux_x86_64")
    platforms = tags._linux_platforms(is_32bit=False)
    expected = ["manylinux2010_x86_64", "manylinux1_x86_64", "linux_x86_64"]
    assert platforms == expected
コード例 #15
0
 def test_linux_platforms_manylinux2014_armv6l(self, monkeypatch):
     monkeypatch.setattr(
         tags._manylinux, "_is_compatible", lambda name, _: name == "manylinux2014"
     )
     monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_armv6l")
     monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.20", raising=False)
     platforms = list(tags._linux_platforms(is_32bit=True))
     expected = ["linux_armv6l"]
     assert platforms == expected
コード例 #16
0
ファイル: test_tags.py プロジェクト: yndj/packaging
def test_linux_platforms_64bit_on_64bit_os(monkeypatch):
    is_64bit_os = distutils.util.get_platform().endswith("_x86_64")
    if platform.system() != "Linux" or not is_64bit_os:
        monkeypatch.setattr(distutils.util, "get_platform",
                            lambda: "linux_x86_64")
        monkeypatch.setattr(tags, "_is_manylinux_compatible",
                            lambda *args: False)
    linux_platform = tags._linux_platforms(is_32bit=False)[-1]
    assert linux_platform == "linux_x86_64"
コード例 #17
0
 def test_linux_platforms_manylinux1(self, monkeypatch):
     monkeypatch.setattr(
         tags._manylinux, "_is_compatible", lambda name, *args: name == "manylinux1"
     )
     monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_x86_64")
     monkeypatch.setattr(platform, "machine", lambda: "x86_64")
     monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.20", raising=False)
     platforms = list(tags._linux_platforms(is_32bit=False))
     arch = platform.machine()
     assert platforms == ["manylinux1_" + arch, "linux_" + arch]
コード例 #18
0
ファイル: test_tags.py プロジェクト: pombredanne/packaging
 def test_linux_platforms_manylinux2010(self, is_x86, monkeypatch):
     monkeypatch.setattr(
         tags, "_is_manylinux_compatible", lambda name, _: name == "manylinux2010"
     )
     if platform.system() != "Linux" or not is_x86:
         monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64")
         monkeypatch.setattr(platform, "machine", lambda: "x86_64")
     platforms = list(tags._linux_platforms(is_32bit=False))
     arch = platform.machine()
     expected = ["manylinux2010_" + arch, "manylinux1_" + arch, "linux_" + arch]
     assert platforms == expected
コード例 #19
0
ファイル: test_tags.py プロジェクト: pombredanne/packaging
 def test_linux_platforms_manylinux2014_armhf_abi(self, monkeypatch):
     monkeypatch.setattr(
         tags, "_is_manylinux_compatible", lambda name, _: name == "manylinux2014"
     )
     monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_armv7l")
     monkeypatch.setattr(
         sys,
         "executable",
         os.path.join(os.path.dirname(__file__), "hello-world-armv7l-armhf"),
     )
     platforms = list(tags._linux_platforms(is_32bit=True))
     expected = ["manylinux2014_armv7l", "linux_armv7l"]
     assert platforms == expected
コード例 #20
0
 def test_linux_platforms_not_manylinux_abi(self, monkeypatch, machine, abi,
                                            alt_machine):
     monkeypatch.setattr(tags, "_is_manylinux_compatible",
                         lambda name, _: True)
     monkeypatch.setattr(distutils.util, "get_platform",
                         lambda: "linux_{}".format(machine))
     monkeypatch.setattr(
         sys,
         "executable",
         os.path.join(os.path.dirname(__file__),
                      "hello-world-{}-{}".format(machine, abi)),
     )
     platforms = list(tags._linux_platforms(is_32bit=True))
     expected = ["linux_{}".format(alt_machine)]
     assert platforms == expected
コード例 #21
0
ファイル: test_tags.py プロジェクト: pypa/packaging
def test_sys_tags_linux_cpython(monkeypatch):
    if platform.python_implementation() != "CPython":
        monkeypatch.setattr(platform, "python_implementation", lambda: "CPython")
        monkeypatch.setattr(tags, "_cpython_abi", lambda py_version: "cp33m")
    if platform.system() != "Linux":
        monkeypatch.setattr(platform, "system", lambda: "Linux")
        monkeypatch.setattr(tags, "_linux_platforms", lambda: ["linux_x86_64"])
    abi = tags._cpython_abi(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 result[0] == tags.Tag(expected_interpreter, abi, platforms[0])
    expected = tags.Tag("py{}0".format(sys.version_info[0]), "none", "any")
    assert result[-1] == expected
コード例 #22
0
 def test_skip_manylinux_2014(self, monkeypatch, manylinux_module):
     monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_ppc64")
     monkeypatch.setattr(tags._manylinux, "_get_glibc_version", lambda: (2, 20))
     monkeypatch.setattr(
         manylinux_module, "manylinux2014_compatible", False, raising=False
     )
     expected = [
         "manylinux_2_20_ppc64",
         "manylinux_2_19_ppc64",
         "manylinux_2_18_ppc64",
         # "manylinux2014_ppc64",  # this one is skipped
         # "manylinux_2_17_ppc64", # this one is also skipped
         "linux_ppc64",
     ]
     platforms = list(tags._linux_platforms())
     assert platforms == expected
コード例 #23
0
 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
コード例 #24
0
ファイル: test_tags.py プロジェクト: yndj/packaging
def test_sys_tags_linux_cpython(monkeypatch):
    if platform.python_implementation() != "CPython":
        monkeypatch.setattr(platform, "python_implementation",
                            lambda: "CPython")
        monkeypatch.setattr(tags, "_cpython_abi", lambda py_version: "cp33m")
    if platform.system() != "Linux":
        monkeypatch.setattr(platform, "system", lambda: "Linux")
        monkeypatch.setattr(tags, "_linux_platforms", lambda: ["linux_x86_64"])
    abi = tags._cpython_abi(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 result[0] == tags.Tag(expected_interpreter, abi, platforms[0])
    expected = tags.Tag("py{}0".format(sys.version_info[0]), "none", "any")
    assert result[-1] == expected
コード例 #25
0
 def test_linux_platforms_not_manylinux_abi(
     self, monkeypatch, manylinux_module, machine, abi, alt_machine
 ):
     monkeypatch.setattr(sysconfig, "get_platform", lambda: f"linux_{machine}")
     monkeypatch.setattr(
         sys,
         "executable",
         os.path.join(
             os.path.dirname(__file__),
             "manylinux",
             f"hello-world-{machine}-{abi}",
         ),
     )
     platforms = list(tags._linux_platforms(is_32bit=True))
     expected = [f"linux_{alt_machine}"]
     assert platforms == expected
コード例 #26
0
 def test_linux_platforms_manylinux2014_armhf_abi(self, monkeypatch):
     monkeypatch.setattr(tags._manylinux, "_glibc_version_string", lambda: "2.30")
     monkeypatch.setattr(
         tags._manylinux,
         "_is_compatible",
         lambda name, *args: name == "manylinux2014",
     )
     monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_armv7l")
     monkeypatch.setattr(
         sys,
         "executable",
         os.path.join(
             os.path.dirname(__file__),
             "manylinux",
             "hello-world-armv7l-armhf",
         ),
     )
     platforms = list(tags._linux_platforms(is_32bit=True))
     expected = ["manylinux2014_armv7l", "linux_armv7l"]
     assert platforms == expected
コード例 #27
0
 def test_linux_platforms_manylinux_glibc3(self, monkeypatch):
     # test for a future glic 3.x version
     monkeypatch.setattr(tags._manylinux, "_glibc_version_string", lambda: "3.2")
     monkeypatch.setattr(tags._manylinux, "_is_compatible", lambda name, *args: True)
     monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_aarch64")
     monkeypatch.setattr(
         sys,
         "executable",
         os.path.join(
             os.path.dirname(__file__),
             "manylinux",
             "hello-world-aarch64",
         ),
     )
     platforms = list(tags._linux_platforms(is_32bit=False))
     expected = (
         ["manylinux_3_2_aarch64", "manylinux_3_1_aarch64", "manylinux_3_0_aarch64"]
         + [f"manylinux_2_{i}_aarch64" for i in range(50, 16, -1)]
         + ["manylinux2014_aarch64", "linux_aarch64"]
     )
     assert platforms == expected
コード例 #28
0
    def test_linux_platforms_musllinux(
        self, monkeypatch, native_arch, cross32_arch, musl_version, cross32
    ):
        fake_executable = str(
            pathlib.Path(__file__)
            .parent.joinpath("musllinux", f"musl-{native_arch}")
            .resolve()
        )
        monkeypatch.setattr(tags._musllinux.sys, "executable", fake_executable)
        monkeypatch.setattr(sysconfig, "get_platform", lambda: f"linux_{native_arch}")
        monkeypatch.setattr(tags._manylinux, "platform_tags", lambda *_: ())

        recorder = pretend.call_recorder(lambda _: musl_version)
        monkeypatch.setattr(tags._musllinux, "_get_musl_version", recorder)

        platforms = list(tags._linux_platforms(is_32bit=cross32))
        target_arch = cross32_arch if cross32 else native_arch
        expected = [
            f"musllinux_{musl_version[0]}_{minor}_{target_arch}"
            for minor in range(musl_version[1], -1, -1)
        ] + [f"linux_{target_arch}"]
        assert platforms == expected

        assert recorder.calls == [pretend.call(fake_executable)]
コード例 #29
0
 def test_linux_platforms_manylinux_unsupported(self, monkeypatch):
     monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_x86_64")
     monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.20", raising=False)
     monkeypatch.setattr(tags._manylinux, "_is_compatible", lambda *args: False)
     linux_platform = list(tags._linux_platforms(is_32bit=False))
     assert linux_platform == ["linux_x86_64"]