Raise specific MarkerError rather than generic ValueError

--HG--
branch : issue463
This commit is contained in:
Brianna Laugher 2015-03-23 20:01:58 +01:00
parent deb163d237
commit 43e4fcf6dd
3 changed files with 7 additions and 4 deletions

View File

@ -1,6 +1,9 @@
""" generic mechanism for marking and selecting python functions. """
import py
class MarkerError(Exception):
"""Error in use of a pytest marker/attribute"""
def pytest_namespace():
return {'mark': MarkGenerator()}

View File

@ -4,7 +4,7 @@ import py
import inspect
import sys
import pytest
from _pytest.mark import MarkDecorator
from _pytest.mark import MarkDecorator, MarkerError
from py._code.code import TerminalRepr
import _pytest
@ -144,8 +144,8 @@ def pytest_cmdline_main(config):
def pytest_generate_tests(metafunc):
# this misspelling is common - raise a specific error to alert the user
if hasattr(metafunc.function, 'parameterize'):
msg = "{0} has mark 'parameterize', spelling should be 'parametrize'"
raise ValueError(msg.format(metafunc.function.__name__))
msg = "{0} has 'parameterize', spelling should be 'parametrize'"
raise MarkerError(msg.format(metafunc.function.__name__))
try:
markers = metafunc.function.parametrize
except AttributeError:

View File

@ -704,7 +704,7 @@ class TestMetafuncFunctional:
reprec = testdir.inline_run('--collectonly')
failures = reprec.getfailures()
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