Skip to content

Commit

Permalink
Merge pull request #4057 from jeffreyrack/4051-improve-error-messaging
Browse files Browse the repository at this point in the history
Improve error messaging when invalid syntax is passed to the -m option
  • Loading branch information
RonnyPfannschmidt committed Oct 1, 2018
2 parents d8d7f73 + 7a6d16c commit 5d2d64c
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 1 deletion.
1 change: 1 addition & 0 deletions changelog/4051.trivial.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Imrpove Error messaging when Invalid Python Syntax is passed through the ``-m`` option to limit what marks to run against.
5 changes: 4 additions & 1 deletion src/_pytest/mark/legacy.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,10 @@ def __getitem__(self, subname):

def matchmark(colitem, markexpr):
"""Tries to match on any marker names, attached to the given colitem."""
return eval(markexpr, {}, MarkMapping.from_item(colitem))
try:
return eval(markexpr, {}, MarkMapping.from_item(colitem))
except SyntaxError as e:
raise SyntaxError(str(e) + "\nMarker expression must be valid Python!")


def matchkeyword(colitem, keywordexpr):
Expand Down
12 changes: 12 additions & 0 deletions testing/test_mark.py
Original file line number Diff line number Diff line change
Expand Up @@ -799,6 +799,18 @@ def test_unmarked():
deselected_tests = dlist[0].items
assert len(deselected_tests) == 2

def test_invalid_m_option(self, testdir):
testdir.makepyfile(
"""
def test_a():
pass
"""
)
result = testdir.runpytest("-m bogus/")
result.stdout.fnmatch_lines(
["INTERNALERROR> Marker expression must be valid Python!"]
)

def test_keywords_at_node_level(self, testdir):
testdir.makepyfile(
"""
Expand Down

0 comments on commit 5d2d64c

Please sign in to comment.