diff --git a/testing/test_plugin.py b/testing/test_plugin.py index 3fbb5b3..189a1bf 100644 --- a/testing/test_plugin.py +++ b/testing/test_plugin.py @@ -26,8 +26,12 @@ def test_dist_options(testdir): def test_auto_detect_cpus(testdir, monkeypatch): - import multiprocessing - monkeypatch.setattr(multiprocessing, 'cpu_count', lambda: 99) + import os + if 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 diff --git a/xdist/plugin.py b/xdist/plugin.py index c232a5e..7acba85 100644 --- a/xdist/plugin.py +++ b/xdist/plugin.py @@ -4,8 +4,15 @@ import pytest def parse_numprocesses(s): if s == 'auto': - import multiprocessing - return multiprocessing.cpu_count() + try: + from os import cpu_count + except ImportError: + from multiprocessing import cpu_count + try: + n = cpu_count() + except NotImplementedError: + return 1 + return n if n else 1 else: return int(s)