This file is indexed.

/usr/lib/python2.7/dist-packages/xdist/plugin.py is in python-pytest-xdist 1.15.0-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import py
import pytest


def parse_numprocesses(s):
    if s == 'auto':
        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)


def pytest_addoption(parser):
    group = parser.getgroup("xdist", "distributed and subprocess testing")
    group._addoption(
        '-n', dest="numprocesses", metavar="numprocesses",
        action="store",
        type=parse_numprocesses,
        help="shortcut for '--dist=load --tx=NUM*popen', "
             "you can use 'auto' here for auto detection CPUs number on "
             "host system")
    group._addoption('--max-slave-restart', action="store", default=None,
                     help="maximum number of slaves that can be restarted "
                          "when crashed (set to zero to disable this feature)")
    group._addoption(
        '--dist', metavar="distmode",
        action="store", choices=['load', 'each', 'no'],
        type="choice", dest="dist", default="no",
        help=("set mode for distributing tests to exec environments.\n\n"
              "each: send each test to each available environment.\n\n"
              "load: send each test to available environment.\n\n"
              "(default) no: run tests inprocess, don't distribute."))
    group._addoption(
        '--tx', dest="tx", action="append", default=[],
        metavar="xspec",
        help=("add a test execution environment. some examples: "
              "--tx popen//python=python2.5 --tx socket=192.168.1.102:8888 "
              "--tx ssh=user@codespeak.net//chdir=testcache"))
    group._addoption(
        '-d',
        action="store_true", dest="distload", default=False,
        help="load-balance tests.  shortcut for '--dist=load'")
    group.addoption(
        '--rsyncdir', action="append", default=[], metavar="DIR",
        help="add directory for rsyncing to remote tx nodes.")
    group.addoption(
        '--rsyncignore', action="append", default=[], metavar="GLOB",
        help="add expression for ignores when rsyncing to remote tx nodes.")

    parser.addini(
        'rsyncdirs', 'list of (relative) paths to be rsynced for'
        ' remote distributed testing.', type="pathlist")
    parser.addini(
        'rsyncignore', 'list of (relative) glob-style paths to be ignored '
        'for rsyncing.', type="pathlist")
    parser.addini(
        "looponfailroots", type="pathlist",
        help="directories to check for changes", default=[py.path.local()])

# -------------------------------------------------------------------------
# distributed testing hooks
# -------------------------------------------------------------------------


def pytest_addhooks(pluginmanager):
    from xdist import newhooks
    # avoid warnings with pytest-2.8
    method = getattr(pluginmanager, "add_hookspecs", None)
    if method is None:
        method = pluginmanager.addhooks
    method(newhooks)

# -------------------------------------------------------------------------
# distributed testing initialization
# -------------------------------------------------------------------------


@pytest.mark.trylast
def pytest_configure(config):
    if config.getoption("dist") != "no":
        from xdist.dsession import DSession
        session = DSession(config)
        config.pluginmanager.register(session, "dsession")
        tr = config.pluginmanager.getplugin("terminalreporter")
        tr.showfspath = False


@pytest.mark.tryfirst
def pytest_cmdline_main(config):
    if config.option.numprocesses:
        config.option.dist = "load"
        config.option.tx = ['popen'] * config.option.numprocesses
    if config.option.distload:
        config.option.dist = "load"
    val = config.getvalue
    if not val("collectonly"):
        usepdb = config.getoption('usepdb')  # a core option
        if val("dist") != "no":
            if usepdb:
                raise pytest.UsageError(
                    "--pdb incompatible with distributing tests.")

# -------------------------------------------------------------------------
# fixtures
# -------------------------------------------------------------------------


@pytest.fixture(scope="session")
def worker_id(request):
    if hasattr(request.config, 'slaveinput'):
        return request.config.slaveinput['slaveid']
    else:
        return 'master'