Exemplo n.º 1
0
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
Exemplo n.º 2
0
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"
Exemplo n.º 3
0
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"
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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")
Exemplo n.º 7
0
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
Exemplo n.º 8
0
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
Exemplo n.º 9
0
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
Exemplo n.º 10
0
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"
Exemplo n.º 11
0
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
Exemplo n.º 12
0
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