summaryrefslogtreecommitdiff
path: root/testing/test_compat.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/test_compat.py')
-rw-r--r--testing/test_compat.py27
1 files changed, 26 insertions, 1 deletions
diff --git a/testing/test_compat.py b/testing/test_compat.py
index 7b2251ef6..c74801c6c 100644
--- a/testing/test_compat.py
+++ b/testing/test_compat.py
@@ -2,7 +2,8 @@ from __future__ import absolute_import, division, print_function
import sys
import pytest
-from _pytest.compat import is_generator, get_real_func
+from _pytest.compat import is_generator, get_real_func, safe_getattr
+from _pytest.outcomes import OutcomeException
def test_is_generator():
@@ -74,3 +75,27 @@ def test_is_generator_async_syntax(testdir):
""")
result = testdir.runpytest()
result.stdout.fnmatch_lines(['*1 passed*'])
+
+
+class ErrorsHelper(object):
+ @property
+ def raise_exception(self):
+ raise Exception('exception should be catched')
+
+ @property
+ def raise_fail(self):
+ pytest.fail('fail should be catched')
+
+
+def test_helper_failures():
+ helper = ErrorsHelper()
+ with pytest.raises(Exception):
+ helper.raise_exception
+ with pytest.raises(OutcomeException):
+ helper.raise_fail
+
+
+def test_safe_getattr():
+ helper = ErrorsHelper()
+ assert safe_getattr(helper, 'raise_exception', 'default') == 'default'
+ assert safe_getattr(helper, 'raise_fail', 'default') == 'default'