Merge pull request #1520 from omarkohl/invalid_test_module_name
Raise CollectError if import test module fails
This commit is contained in:
@@ -117,7 +117,8 @@ class TestGeneralUsage:
|
||||
result = testdir.runpytest(p)
|
||||
result.stdout.fnmatch_lines([
|
||||
#XXX on jython this fails: "> import import_fails",
|
||||
"E ImportError: No module named *does_not_work*",
|
||||
"ImportError while importing test module*",
|
||||
"'No module named *does_not_work*",
|
||||
])
|
||||
assert result.ret == 1
|
||||
|
||||
|
||||
@@ -5,14 +5,16 @@ from textwrap import dedent
|
||||
import _pytest._code
|
||||
import py
|
||||
import pytest
|
||||
from _pytest.main import EXIT_NOTESTSCOLLECTED
|
||||
from _pytest.main import (
|
||||
Collector,
|
||||
EXIT_NOTESTSCOLLECTED
|
||||
)
|
||||
|
||||
|
||||
class TestModule:
|
||||
def test_failing_import(self, testdir):
|
||||
modcol = testdir.getmodulecol("import alksdjalskdjalkjals")
|
||||
pytest.raises(ImportError, modcol.collect)
|
||||
pytest.raises(ImportError, modcol.collect)
|
||||
pytest.raises(Collector.CollectError, modcol.collect)
|
||||
|
||||
def test_import_duplicate(self, testdir):
|
||||
a = testdir.mkdir("a")
|
||||
@@ -60,6 +62,16 @@ class TestModule:
|
||||
modcol = testdir.getmodulecol("pytest_plugins='xasdlkj',")
|
||||
pytest.raises(ImportError, lambda: modcol.obj)
|
||||
|
||||
def test_invalid_test_module_name(self, testdir):
|
||||
a = testdir.mkdir('a')
|
||||
a.ensure('test_one.part1.py')
|
||||
result = testdir.runpytest("-rw")
|
||||
result.stdout.fnmatch_lines([
|
||||
"ImportError while importing test module*test_one.part1*",
|
||||
"Make sure your test modules/packages have valid Python names.",
|
||||
])
|
||||
|
||||
|
||||
class TestClass:
|
||||
def test_class_with_init_warning(self, testdir):
|
||||
testdir.makepyfile("""
|
||||
|
||||
@@ -176,7 +176,8 @@ class TestPrunetraceback:
|
||||
assert "__import__" not in result.stdout.str(), "too long traceback"
|
||||
result.stdout.fnmatch_lines([
|
||||
"*ERROR collecting*",
|
||||
"*mport*not_exists*"
|
||||
"ImportError while importing test module*",
|
||||
"'No module named *not_exists*",
|
||||
])
|
||||
|
||||
def test_custom_repr_failure(self, testdir):
|
||||
|
||||
@@ -42,7 +42,7 @@ class SessionTests:
|
||||
reprec = testdir.inline_run(tfile)
|
||||
l = reprec.getfailedcollections()
|
||||
assert len(l) == 1
|
||||
out = l[0].longrepr.reprcrash.message
|
||||
out = str(l[0].longrepr)
|
||||
assert out.find('does_not_work') != -1
|
||||
|
||||
def test_raises_output(self, testdir):
|
||||
|
||||
@@ -276,8 +276,8 @@ class TestCollectonly:
|
||||
assert result.ret == 1
|
||||
result.stdout.fnmatch_lines(_pytest._code.Source("""
|
||||
*ERROR*
|
||||
*import Errlk*
|
||||
*ImportError*
|
||||
*No module named *Errlk*
|
||||
*1 error*
|
||||
""").strip())
|
||||
|
||||
@@ -665,8 +665,8 @@ class TestGenericReporting:
|
||||
testdir.makepyfile("import xyz\n")
|
||||
result = testdir.runpytest(*option.args)
|
||||
result.stdout.fnmatch_lines([
|
||||
"? import xyz",
|
||||
"E ImportError: No module named *xyz*",
|
||||
"ImportError while importing*",
|
||||
"'No module named *xyz*",
|
||||
"*1 error*",
|
||||
])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user