@@ -401,10 +401,11 @@ def test_func():
401
401
)
402
402
403
403
@pytest .mark .parametrize ("n" , ["-n0" , "-n1" ])
404
- @pytest .mark .parametrize ("warn_type" , ["pytest" , "builtin" ])
404
+ @pytest .mark .parametrize ("warn_type" , ["pytest" , "builtin" , "invalid" ])
405
405
def test_warnings (self , testdir , n , warn_type ):
406
406
from pkg_resources import parse_version
407
407
408
+ print (n , warn_type )
408
409
if parse_version (pytest .__version__ ) < parse_version ("3.1" ):
409
410
pytest .skip ("pytest warnings requires >= 3.1" )
410
411
@@ -413,12 +414,21 @@ def test_warnings(self, testdir, n, warn_type):
413
414
elif warn_type == "pytest" :
414
415
warn_code = """request.config.warn('', 'this is a warning',
415
416
fslocation=py.path.local())"""
417
+ elif warn_type == "invalid" :
418
+ warn_code = "msg = UserWarning('this is a warning'); msg.args = (); warnings.warn(msg)"
416
419
else :
417
420
assert False
418
421
testdir .makepyfile (
419
422
"""
420
423
import warnings, py, pytest
421
424
425
+ class BadWarning(Warning):
426
+ def __init__(self, param):
427
+ self.param = param
428
+ super(BadWarning, self).__init__()
429
+ def __str__(self):
430
+ return self.param
431
+
422
432
@pytest.mark.filterwarnings('ignore:config.warn has been deprecated')
423
433
def test_func(request):
424
434
{warn_code}
0 commit comments