import py
import subprocess
import sys
import pytest
import _pytest

MODSET = [
    x for x in py.path.local(_pytest.__file__).dirpath().visit('*.py')
    if x.purebasename != '__init__'
]


@pytest.mark.parametrize('modfile', MODSET, ids=lambda x: x.purebasename)
def test_fileimport(modfile):
    # this test ensures all internal packages can import
    # without needing the pytest namespace being set
    # this is critical for the initialization of xdist

    res = subprocess.call([
        sys.executable,
        '-c', 'import sys, py; py.path.local(sys.argv[1]).pyimport()',
        modfile.strpath,
    ])
    if res:
        pytest.fail("command result %s" % res)
