diff --git a/changelog/549.feature.rst b/changelog/549.feature.rst new file mode 100644 index 0000000..f7eb76f --- /dev/null +++ b/changelog/549.feature.rst @@ -0,0 +1 @@ +Make ``--pdb`` imply ``--dist no``, as the two options cannot really work together at the moment. diff --git a/src/xdist/plugin.py b/src/xdist/plugin.py index 5165126..d547027 100644 --- a/src/xdist/plugin.py +++ b/src/xdist/plugin.py @@ -191,7 +191,11 @@ def pytest_configure(config): def pytest_cmdline_main(config): usepdb = config.getoption("usepdb", False) # a core option if isinstance(config.option.numprocesses, AutoInt): - config.option.numprocesses = 0 if usepdb else int(config.option.numprocesses) + if usepdb: + config.option.numprocesses = 0 + config.option.dist = "no" + else: + config.option.numprocesses = int(config.option.numprocesses) if config.option.numprocesses: if config.option.dist == "no": @@ -203,12 +207,10 @@ def pytest_cmdline_main(config): if config.option.distload: config.option.dist = "load" val = config.getvalue - if not val("collectonly"): - if val("dist") != "no": - if usepdb: - raise pytest.UsageError( - "--pdb is incompatible with distributing tests; try using -n0 or -nauto." - ) # noqa: E501 + if not val("collectonly") and val("dist") != "no" and usepdb: + raise pytest.UsageError( + "--pdb is incompatible with distributing tests; try using -n0 or -nauto." + ) # noqa: E501 # ------------------------------------------------------------------------- diff --git a/testing/test_plugin.py b/testing/test_plugin.py index ca2cc2c..b875208 100644 --- a/testing/test_plugin.py +++ b/testing/test_plugin.py @@ -57,6 +57,7 @@ def test_auto_detect_cpus(testdir, monkeypatch): 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")