def test_auto_detect_cpus(testdir, monkeypatch): import os from xdist.plugin import pytest_cmdline_main as check_options if hasattr(os, "sched_getaffinity"): monkeypatch.setattr(os, "sched_getaffinity", lambda _pid: set(range(99))) elif hasattr(os, "cpu_count"): monkeypatch.setattr(os, "cpu_count", lambda: 99) else: import multiprocessing monkeypatch.setattr(multiprocessing, "cpu_count", lambda: 99) config = testdir.parseconfigure("-n2") assert config.getoption("numprocesses") == 2 config = testdir.parseconfigure("-nauto") assert config.getoption("numprocesses") == 99 config = testdir.parseconfigure("-nauto", "--pdb") check_options(config) assert config.getoption("usepdb") assert config.getoption("numprocesses") == 0 monkeypatch.delattr(os, "sched_getaffinity", raising=False) monkeypatch.setenv("TRAVIS", "true") config = testdir.parseconfigure("-nauto") assert config.getoption("numprocesses") == 2
def test_dist_options(testdir): from xdist.plugin import pytest_cmdline_main as check_options config = testdir.parseconfigure("-n 2") check_options(config) assert config.option.dist == "load" assert config.option.tx == ['popen'] * 2 config = testdir.parseconfigure("-d") check_options(config) assert config.option.dist == "load"
def test_dist_options(testdir): from xdist.plugin import pytest_cmdline_main as check_options config = testdir.parseconfigure("-n 2") check_options(config) assert config.option.dist == "load" assert config.option.tx == ['popen'] * 2 config = testdir.parseconfigure("-d") check_options(config) assert config.option.dist == "load"
def test_hook_auto_num_workers(testdir, monkeypatch): from xdist.plugin import pytest_cmdline_main as check_options testdir.makeconftest(""" def pytest_xdist_auto_num_workers(): return 42 """) config = testdir.parseconfigure("-nauto") check_options(config) assert config.getoption("numprocesses") == 42
def test_auto_detect_cpus_psutil(testdir, monkeypatch): from xdist.plugin import pytest_cmdline_main as check_options psutil = pytest.importorskip("psutil") monkeypatch.setattr(psutil, "cpu_count", lambda logical=True: 42) config = testdir.parseconfigure("-nauto") check_options(config) assert config.getoption("numprocesses") == 42
def test_dsession_with_collect_only(testdir): from xdist.plugin import pytest_cmdline_main as check_options from xdist.plugin import pytest_configure as configure config = testdir.parseconfigure("-n1") check_options(config) configure(config) assert config.pluginmanager.hasplugin("dsession") config = testdir.parseconfigure("-n1", "--collect-only") check_options(config) configure(config) assert not config.pluginmanager.hasplugin("dsession")
def test_hook_auto_num_workers(pytester: pytest.Pytester, monkeypatch: pytest.MonkeyPatch) -> None: from xdist.plugin import pytest_cmdline_main as check_options pytester.makeconftest(""" def pytest_xdist_auto_num_workers(): return 42 """) config = pytester.parseconfigure("-nauto") check_options(config) assert config.getoption("numprocesses") == 42 config = pytester.parseconfigure("-nlogical") check_options(config) assert config.getoption("numprocesses") == 42
def test_auto_detect_cpus_psutil(pytester: pytest.Pytester, monkeypatch: pytest.MonkeyPatch) -> None: from xdist.plugin import pytest_cmdline_main as check_options psutil = pytest.importorskip("psutil") monkeypatch.setattr(psutil, "cpu_count", lambda logical=True: 84 if logical else 42) config = pytester.parseconfigure("-nauto") check_options(config) assert config.getoption("numprocesses") == 42 config = pytester.parseconfigure("-nlogical") check_options(config) assert config.getoption("numprocesses") == 84
def test_auto_detect_cpus(testdir, monkeypatch): import psutil from xdist.plugin import pytest_cmdline_main as check_options monkeypatch.setattr(psutil, "cpu_count", lambda logical=True: 99) config = testdir.parseconfigure("-n2") assert config.getoption("numprocesses") == 2 config = testdir.parseconfigure("-nauto") assert config.getoption("numprocesses") == 99 config = testdir.parseconfigure("-nauto", "--pdb") check_options(config) assert config.getoption("usepdb") assert config.getoption("numprocesses") == 0 assert config.getoption("dist") == "no" monkeypatch.setattr(psutil, "cpu_count", lambda logical=True: None) config = testdir.parseconfigure("-nauto") assert config.getoption("numprocesses") == 1
def test_dist_options(testdir): from xdist.plugin import pytest_cmdline_main as check_options config = testdir.parseconfigure("-n 2") check_options(config) assert config.option.dist == "load" assert config.option.tx == ["popen"] * 2 config = testdir.parseconfigure("--numprocesses", "2") check_options(config) assert config.option.dist == "load" assert config.option.tx == ["popen"] * 2 config = testdir.parseconfigure("--numprocesses", "3", "--maxprocesses", "2") check_options(config) assert config.option.dist == "load" assert config.option.tx == ["popen"] * 2 config = testdir.parseconfigure("-d") check_options(config) assert config.option.dist == "load"
def test_auto_detect_cpus(pytester: pytest.Pytester, monkeypatch: pytest.MonkeyPatch) -> None: import os from xdist.plugin import pytest_cmdline_main as check_options with suppress(ImportError): import psutil monkeypatch.setattr(psutil, "cpu_count", lambda logical=True: None) if hasattr(os, "sched_getaffinity"): monkeypatch.setattr(os, "sched_getaffinity", lambda _pid: set(range(99))) elif hasattr(os, "cpu_count"): monkeypatch.setattr(os, "cpu_count", lambda: 99) else: import multiprocessing monkeypatch.setattr(multiprocessing, "cpu_count", lambda: 99) config = pytester.parseconfigure("-n2") assert config.getoption("numprocesses") == 2 config = pytester.parseconfigure("-nauto") check_options(config) assert config.getoption("numprocesses") == 99 config = pytester.parseconfigure("-nauto", "--pdb") check_options(config) assert config.getoption("usepdb") assert config.getoption("numprocesses") == 0 assert config.getoption("dist") == "no" config = pytester.parseconfigure("-nlogical", "--pdb") check_options(config) assert config.getoption("usepdb") assert config.getoption("numprocesses") == 0 assert config.getoption("dist") == "no" monkeypatch.delattr(os, "sched_getaffinity", raising=False) monkeypatch.setenv("TRAVIS", "true") config = pytester.parseconfigure("-nauto") check_options(config) assert config.getoption("numprocesses") == 2
def test_boxed_with_collect_only(testdir): from xdist.plugin import pytest_cmdline_main as check_options config = testdir.parseconfigure("-n1", "--boxed") check_options(config) assert config.option.forked config = testdir.parseconfigure("-n1", "--collect-only") check_options(config) assert not config.option.forked config = testdir.parseconfigure("-n1", "--boxed", "--collect-only") check_options(config) assert config.option.forked