diff --git a/_pytest/compat.py b/_pytest/compat.py index b688ae509..5be7f7a2a 100644 --- a/_pytest/compat.py +++ b/_pytest/compat.py @@ -254,6 +254,29 @@ else: return v.encode('ascii', errors) +COLLECT_FAKEMODULE_ATTRIBUTES = ( + 'Collector', + 'Module', + 'Generator', + 'Function', + 'Instance', + 'Session', + 'Item', + 'Class', + 'File', + '_fillfuncargs', +) + + +def _setup_collect_fakemodule(): + from types import ModuleType + import pytest + pytest.collect = ModuleType('pytest.collect') + pytest.collect.__all__ = [] # used for setns + for attr in COLLECT_FAKEMODULE_ATTRIBUTES: + setattr(pytest.collect, attr, getattr(pytest, attr)) + + if _PY2: from py.io import TextIO as CaptureIO else: diff --git a/pytest.py b/pytest.py index c05ed77de..c6146e291 100644 --- a/pytest.py +++ b/pytest.py @@ -47,4 +47,7 @@ from _pytest.mark import MARK_GEN as mark from _pytest.skipping import xfail set_trace = __pytestPDB.set_trace + +from _pytest.compat import _setup_collect_fakemodule _preloadplugins() # to populate pytest.* namespace so help(pytest) works +_setup_collect_fakemodule() \ No newline at end of file