diff --git a/src/_pytest/assertion/rewrite.py b/src/_pytest/assertion/rewrite.py index 2903b8995..9f87f5539 100644 --- a/src/_pytest/assertion/rewrite.py +++ b/src/_pytest/assertion/rewrite.py @@ -60,7 +60,10 @@ class AssertionRewritingHook(object): def __init__(self, config): self.config = config - self.fnpats = config.getini("python_files") + try: + self.fnpats = config.getini("python_files") + except ValueError: + self.fnpats = ["test_*.py", "*_test.py"] self.session = None self.modules = {} self._rewritten_names = set() diff --git a/src/_pytest/config/__init__.py b/src/_pytest/config/__init__.py index 03769b815..e630b199c 100644 --- a/src/_pytest/config/__init__.py +++ b/src/_pytest/config/__init__.py @@ -113,16 +113,16 @@ def directory_arg(path, optname): # Plugins that cannot be disabled via "-p no:X" currently. -essential_plugins = ( +essential_plugins = ( # fmt: off "mark", "main", "runner", - "python", "fixtures", "helpconfig", # Provides -p. -) +) # fmt: on default_plugins = essential_plugins + ( + "python", "terminal", "debugging", "unittest", diff --git a/src/_pytest/fixtures.py b/src/_pytest/fixtures.py index 902904457..0a6e04600 100644 --- a/src/_pytest/fixtures.py +++ b/src/_pytest/fixtures.py @@ -1075,6 +1075,15 @@ def pytestconfig(request): return request.config +def pytest_addoption(parser): + parser.addini( + "usefixtures", + type="args", + default=[], + help="list of default fixtures to be used with this project", + ) + + class FixtureManager(object): """ pytest fixtures definitions and information is stored and managed diff --git a/src/_pytest/python.py b/src/_pytest/python.py index 18d909855..a6edff0af 100644 --- a/src/_pytest/python.py +++ b/src/_pytest/python.py @@ -79,15 +79,10 @@ def pytest_addoption(parser): default=False, help="show fixtures per test", ) - parser.addini( - "usefixtures", - type="args", - default=[], - help="list of default fixtures to be used with this project", - ) parser.addini( "python_files", type="args", + # NOTE: default is also used in AssertionRewritingHook. default=["test_*.py", "*_test.py"], help="glob-style file patterns for Python test module discovery", ) diff --git a/testing/test_config.py b/testing/test_config.py index ecb8fd403..cee3c6403 100644 --- a/testing/test_config.py +++ b/testing/test_config.py @@ -1228,6 +1228,17 @@ def test_config_blocked_default_plugins(testdir, plugin): p = testdir.makepyfile("def test(): pass") result = testdir.runpytest(str(p), "-pno:%s" % plugin) + + if plugin == "python": + assert result.ret == EXIT_USAGEERROR + result.stderr.fnmatch_lines( + [ + "ERROR: not found: */test_config_blocked_default_plugins.py", + "(no name '*/test_config_blocked_default_plugins.py' in any of [])", + ] + ) + return + assert result.ret == EXIT_OK if plugin != "terminal": result.stdout.fnmatch_lines(["* 1 passed in *"])