Skip to content

Commit

Permalink
Merge pull request #3637 from RonnyPfannschmidt/fix-3631
Browse files Browse the repository at this point in the history
fix #3631 - don't store legacy markinfo when its impossible
  • Loading branch information
nicoddemus committed Jun 30, 2018
2 parents 26e1784 + 5bd5b8c commit 2b75a31
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 1 deletion.
1 change: 1 addition & 0 deletions changelog/3631.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
No longer raise AttributeError when legacy marks can't be stored.
2 changes: 1 addition & 1 deletion src/_pytest/mark/structures.py
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ def store_legacy_markinfo(func, mark):
if holder is None:
holder = MarkInfo.for_mark(mark)
setattr(func, mark.name, holder)
else:
elif isinstance(holder, MarkInfo):
holder.add_mark(mark)


Expand Down
13 changes: 13 additions & 0 deletions testing/test_mark.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,19 @@ def f():
mark.hello(f)
assert f.hello

def test_mark_legacy_ignore_fail(self):
def add_attribute(func):
func.foo = 1
return func

@pytest.mark.foo
@add_attribute
def test_fun():
pass

assert test_fun.foo == 1
assert test_fun.pytestmark

@ignore_markinfo
def test_pytest_mark_keywords(self):
mark = Mark()
Expand Down

0 comments on commit 2b75a31

Please sign in to comment.