Raise specific MarkerError rather than generic ValueError
--HG-- branch : issue463
This commit is contained in:
parent
deb163d237
commit
43e4fcf6dd
|
@ -1,6 +1,9 @@
|
||||||
""" generic mechanism for marking and selecting python functions. """
|
""" generic mechanism for marking and selecting python functions. """
|
||||||
import py
|
import py
|
||||||
|
|
||||||
|
class MarkerError(Exception):
|
||||||
|
"""Error in use of a pytest marker/attribute"""
|
||||||
|
|
||||||
|
|
||||||
def pytest_namespace():
|
def pytest_namespace():
|
||||||
return {'mark': MarkGenerator()}
|
return {'mark': MarkGenerator()}
|
||||||
|
|
|
@ -4,7 +4,7 @@ import py
|
||||||
import inspect
|
import inspect
|
||||||
import sys
|
import sys
|
||||||
import pytest
|
import pytest
|
||||||
from _pytest.mark import MarkDecorator
|
from _pytest.mark import MarkDecorator, MarkerError
|
||||||
from py._code.code import TerminalRepr
|
from py._code.code import TerminalRepr
|
||||||
|
|
||||||
import _pytest
|
import _pytest
|
||||||
|
@ -144,8 +144,8 @@ def pytest_cmdline_main(config):
|
||||||
def pytest_generate_tests(metafunc):
|
def pytest_generate_tests(metafunc):
|
||||||
# this misspelling is common - raise a specific error to alert the user
|
# this misspelling is common - raise a specific error to alert the user
|
||||||
if hasattr(metafunc.function, 'parameterize'):
|
if hasattr(metafunc.function, 'parameterize'):
|
||||||
msg = "{0} has mark 'parameterize', spelling should be 'parametrize'"
|
msg = "{0} has 'parameterize', spelling should be 'parametrize'"
|
||||||
raise ValueError(msg.format(metafunc.function.__name__))
|
raise MarkerError(msg.format(metafunc.function.__name__))
|
||||||
try:
|
try:
|
||||||
markers = metafunc.function.parametrize
|
markers = metafunc.function.parametrize
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
|
|
|
@ -704,7 +704,7 @@ class TestMetafuncFunctional:
|
||||||
reprec = testdir.inline_run('--collectonly')
|
reprec = testdir.inline_run('--collectonly')
|
||||||
failures = reprec.getfailures()
|
failures = reprec.getfailures()
|
||||||
assert len(failures) == 1
|
assert len(failures) == 1
|
||||||
expectederror = "ValueError: test_foo has mark 'parameterize', spelling should be 'parametrize'"
|
expectederror = "MarkerError: test_foo has 'parameterize', spelling should be 'parametrize'"
|
||||||
assert expectederror in failures[0].longrepr.reprcrash.message
|
assert expectederror in failures[0].longrepr.reprcrash.message
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue