diff --git a/_py/test/plugin/pytest_skipping.py b/_py/test/plugin/pytest_skipping.py index a0388e847..d6a787cec 100644 --- a/_py/test/plugin/pytest_skipping.py +++ b/_py/test/plugin/pytest_skipping.py @@ -175,7 +175,8 @@ def getexpression(item, keyword): if cls and hasattr(cls.obj, keyword): return getattr(cls.obj, keyword) mod = item.getparent(py.test.collect.Module) - return getattr(mod.obj, keyword, None) + if mod: + return getattr(mod.obj, keyword, None) def evalexpression(item, keyword): expr = getexpression(item, keyword) diff --git a/testing/pytest/plugin/test_pytest_skipping.py b/testing/pytest/plugin/test_pytest_skipping.py index 019fb1e3c..24cc27d2c 100644 --- a/testing/pytest/plugin/test_pytest_skipping.py +++ b/testing/pytest/plugin/test_pytest_skipping.py @@ -110,6 +110,9 @@ def test_getexpression(testdir): assert getexpression(item2, 'just') + item2.parent = None + assert not getexpression(item2, 'nada') + def test_evalexpression_cls_config_example(testdir): from _py.test.plugin.pytest_skipping import evalexpression item, = testdir.getitems("""