@@ -158,15 +158,25 @@ def _xfail_if_format_is_uncomparable(extension):
158158
159159def _mark_xfail_if_format_is_uncomparable (extension ):
160160 if isinstance (extension , str ):
161- will_fail = extension not in comparable_formats ()
161+ name = extension
162+ marks = []
163+ elif isinstance (extension , tuple ):
164+ # Extension might be a pytest ParameterSet instead of a plain string.
165+ # Unfortunately, this type is not exposed, so since it's a namedtuple,
166+ # check for a tuple instead.
167+ name = extension .values [0 ]
168+ marks = list (extension .marks )
162169 else :
163170 # Extension might be a pytest marker instead of a plain string.
164- will_fail = extension .args [0 ] not in comparable_formats ()
165- if will_fail :
166- fail_msg = 'Cannot compare %s files on this system' % extension
171+ name = extension .args [0 ]
172+ marks = [extension .mark ]
173+
174+ if name not in comparable_formats ():
175+ fail_msg = 'Cannot compare %s files on this system' % (name , )
167176 import pytest
168- return pytest .mark .xfail (extension , reason = fail_msg , strict = False ,
169- raises = ImageComparisonFailure )
177+ marks += [pytest .mark .xfail (reason = fail_msg , strict = False ,
178+ raises = ImageComparisonFailure )]
179+ return pytest .param (name , marks = marks )
170180 else :
171181 return extension
172182
0 commit comments