merge pfctdayelise/issue463

This commit is contained in:
Anatoly Bubenkov 2015-03-23 20:42:16 +01:00
commit a7d2a82caa
4 changed files with 27 additions and 1 deletions

View File

@ -60,6 +60,8 @@
- allow to override parametrized fixtures with non-parametrized ones and vice versa (bubenkoff).
- fix issue463: raise specific error for 'parameterize' misspelling (pfctdayelise).
2.6.4
----------

View File

@ -1,6 +1,11 @@
""" 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
@ -142,6 +142,10 @@ 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 'parameterize', spelling should be 'parametrize'"
raise MarkerError(msg.format(metafunc.function.__name__))
try:
markers = metafunc.function.parametrize
except AttributeError:

View File

@ -692,6 +692,21 @@ class TestMetafuncFunctional:
reprec = testdir.inline_run()
reprec.assertoutcome(passed=4)
@pytest.mark.issue463
def test_parameterize_misspelling(self, testdir):
testdir.makepyfile("""
import pytest
@pytest.mark.parameterize("x", range(2))
def test_foo(x):
pass
""")
reprec = testdir.inline_run('--collectonly')
failures = reprec.getfailures()
assert len(failures) == 1
expectederror = "MarkerError: test_foo has 'parameterize', spelling should be 'parametrize'"
assert expectederror in failures[0].longrepr.reprcrash.message
class TestMarkersWithParametrization:
pytestmark = pytest.mark.issue308