@@ -73,8 +73,8 @@ def setUp(self):
73
73
clear_warning_registry ()
74
74
75
75
76
- def get_error_message_template (expected , artefact ):
77
- return "{} {} for test '{}'" .format ("Expected" if expected else "Unexpected" , artefact , "%s" )
76
+ def get_error_message_template (expected , artifact ):
77
+ return "{} {} for test '{}'" .format ("Expected" if expected else "Unexpected" , artifact , "%s" )
78
78
79
79
80
80
def run_scenario_in_dir (target_workdir ):
@@ -99,25 +99,27 @@ def run_scenario(self):
99
99
self .skipTest ("This test needs dnspython package." )
100
100
valid = True
101
101
warning = False
102
+ expected_warning = test .get ("warning" , False )
103
+ expected_valid = test .get ("valid" , True )
102
104
103
105
with warnings .catch_warnings (record = True ) as ctx :
104
- warnings .simplefilter ("always" )
106
+ warnings .simplefilter ("ignore" , category = ResourceWarning )
105
107
try :
106
108
options = parse_uri (test ["uri" ], warn = True )
107
109
except Exception :
108
110
valid = False
109
111
else :
110
112
warning = len (ctx ) > 0
113
+ if expected_valid and warning and not expected_warning :
114
+ raise ValueError ("Got unexpected warning(s): " , [str (i ) for i in ctx ])
111
115
112
- expected_valid = test .get ("valid" , True )
113
116
self .assertEqual (
114
117
valid ,
115
118
expected_valid ,
116
119
get_error_message_template (not expected_valid , "error" ) % test ["description" ],
117
120
)
118
121
119
122
if expected_valid :
120
- expected_warning = test .get ("warning" , False )
121
123
self .assertEqual (
122
124
warning ,
123
125
expected_warning ,
0 commit comments